aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/arch/x86/x86_32/entry.S13
-rw-r--r--xen/arch/x86/x86_64/entry.S10
2 files changed, 10 insertions, 13 deletions
diff --git a/xen/arch/x86/x86_32/entry.S b/xen/arch/x86/x86_32/entry.S
index 2d7901fa17..c36a9939e1 100644
--- a/xen/arch/x86/x86_32/entry.S
+++ b/xen/arch/x86/x86_32/entry.S
@@ -426,9 +426,8 @@ ENTRY(ret_from_intr)
jnz test_all_events
jmp restore_all_xen
-ENTRY(divide_error)
- pushl $TRAP_divide_error<<16
- ALIGN
+ENTRY(page_fault)
+ movw $TRAP_page_fault,2(%esp)
handle_exception:
FIXUP_RING0_GUEST_STACK
SAVE_ALL(1f,2f)
@@ -501,6 +500,10 @@ ENTRY(device_not_available)
pushl $TRAP_no_device<<16
jmp handle_exception
+ENTRY(divide_error)
+ pushl $TRAP_divide_error<<16
+ jmp handle_exception
+
ENTRY(debug)
pushl $TRAP_debug<<16
jmp handle_exception
@@ -545,10 +548,6 @@ ENTRY(alignment_check)
movw $TRAP_alignment_check,2(%esp)
jmp handle_exception
-ENTRY(page_fault)
- movw $TRAP_page_fault,2(%esp)
- jmp handle_exception
-
ENTRY(spurious_interrupt_bug)
pushl $TRAP_spurious_int<<16
jmp handle_exception
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
index 4d49c4331c..fa51287a87 100644
--- a/xen/arch/x86/x86_64/entry.S
+++ b/xen/arch/x86/x86_64/entry.S
@@ -461,9 +461,11 @@ ENTRY(ret_from_intr)
jz test_all_events
jmp compat_test_all_events
- ALIGN
+ENTRY(page_fault)
+ movl $TRAP_page_fault,4(%rsp)
/* No special register assumptions. */
-ENTRY(handle_exception)
+ .globl handle_exception
+handle_exception:
SAVE_ALL
handle_exception_saved:
testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
@@ -585,10 +587,6 @@ ENTRY(alignment_check)
movl $TRAP_alignment_check,4(%rsp)
jmp handle_exception
-ENTRY(page_fault)
- movl $TRAP_page_fault,4(%rsp)
- jmp handle_exception
-
ENTRY(spurious_interrupt_bug)
pushq $0
movl $TRAP_spurious_int,4(%rsp)