acpi_wakecode.S (231787) | acpi_wakecode.S (236772) |
---|---|
1/*- 2 * Copyright (c) 2001 Takanori Watanabe <takawata@jp.freebsd.org> 3 * Copyright (c) 2001 Mitsuru IWASAKI <iwasaki@jp.freebsd.org> 4 * Copyright (c) 2003 Peter Wemm 5 * Copyright (c) 2008-2012 Jung-uk Kim <jkim@FreeBSD.org> 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * | 1/*- 2 * Copyright (c) 2001 Takanori Watanabe <takawata@jp.freebsd.org> 3 * Copyright (c) 2001 Mitsuru IWASAKI <iwasaki@jp.freebsd.org> 4 * Copyright (c) 2003 Peter Wemm 5 * Copyright (c) 2008-2012 Jung-uk Kim <jkim@FreeBSD.org> 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 12 unchanged lines hidden (view full) --- 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * |
29 * $FreeBSD: head/sys/amd64/acpica/acpi_wakecode.S 231787 2012-02-15 22:10:33Z jkim $ | 29 * $FreeBSD: head/sys/amd64/acpica/acpi_wakecode.S 236772 2012-06-09 00:37:26Z iwasaki $ |
30 */ 31 32#include <machine/asmacros.h> 33#include <machine/ppireg.h> 34#include <machine/specialreg.h> 35#include <machine/timerreg.h> 36 37#include "assym.s" --- 176 unchanged lines hidden (view full) --- 214 * so use an indirect jump. 215 */ 216 ALIGN_TEXT 217 .code64 218wakeup_64: 219 mov $bootdata64 - bootgdt, %eax 220 mov %ax, %ds 221 | 30 */ 31 32#include <machine/asmacros.h> 33#include <machine/ppireg.h> 34#include <machine/specialreg.h> 35#include <machine/timerreg.h> 36 37#include "assym.s" --- 176 unchanged lines hidden (view full) --- 214 * so use an indirect jump. 215 */ 216 ALIGN_TEXT 217 .code64 218wakeup_64: 219 mov $bootdata64 - bootgdt, %eax 220 mov %ax, %ds 221 |
222 /* Restore arguments and return. */ 223 movq wakeup_kpml4 - wakeup_start(%rbx), %rdi 224 movq wakeup_ctx - wakeup_start(%rbx), %rsi 225 movq wakeup_retaddr - wakeup_start(%rbx), %rax | 222 /* Restore arguments. */ 223 movq wakeup_cr3 - wakeup_start(%rbx), %rsi 224 movq wakeup_pcb - wakeup_start(%rbx), %rdi 225 movq wakeup_ret - wakeup_start(%rbx), %rax 226 227 /* Restore GDT. */ 228 lgdt wakeup_gdt - wakeup_start(%rbx) 229 230 /* Jump to return address. */ |
226 jmp *%rax 227 228 .data 229 230resume_beep: 231 .byte 0 232reset_video: 233 .byte 0 --- 29 unchanged lines hidden (view full) --- 263wakeup_pagetables: 264 .long 0 265 266bootgdtdesc: 267 .word bootgdtend - bootgdt /* Length */ 268 .long bootgdt - wakeup_start /* Offset plus %ds << 4 */ 269 270 ALIGN_DATA | 231 jmp *%rax 232 233 .data 234 235resume_beep: 236 .byte 0 237reset_video: 238 .byte 0 --- 29 unchanged lines hidden (view full) --- 268wakeup_pagetables: 269 .long 0 270 271bootgdtdesc: 272 .word bootgdtend - bootgdt /* Length */ 273 .long bootgdt - wakeup_start /* Offset plus %ds << 4 */ 274 275 ALIGN_DATA |
271wakeup_retaddr: | 276wakeup_cr4: /* not used */ |
272 .quad 0 | 277 .quad 0 |
273wakeup_kpml4: | 278wakeup_cr3: |
274 .quad 0 | 279 .quad 0 |
275 276wakeup_ctx: 277 .quad 0 | |
278wakeup_pcb: 279 .quad 0 | 280wakeup_pcb: 281 .quad 0 |
280wakeup_fpusave: | 282wakeup_ret: |
281 .quad 0 282wakeup_gdt: 283 .word 0 284 .quad 0 | 283 .quad 0 284wakeup_gdt: 285 .word 0 286 .quad 0 |
285 286 ALIGN_DATA 287wakeup_efer: 288 .quad 0 289wakeup_star: 290 .quad 0 291wakeup_lstar: 292 .quad 0 293wakeup_cstar: 294 .quad 0 295wakeup_sfmask: 296 .quad 0 297wakeup_xsmask: 298 .quad 0 299wakeup_cpu: 300 .long 0 | |
301dummy: | 287dummy: |