# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 8c27368b12ad74529ee06d96b8eb6fcc52bc02ff
# Parent db44b783fe09f22ededdbd383d853364387da918
Rename and clean up 'error_code' path in entry.S.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
diff -r db44b783fe09 -r 8c27368b12ad xen/arch/x86/x86_32/entry.S
--- a/xen/arch/x86/x86_32/entry.S Thu Apr 6 16:25:24 2006
+++ b/xen/arch/x86/x86_32/entry.S Thu Apr 6 16:32:47 2006
@@ -119,7 +119,7 @@
movl $DBLFLT1,%eax
pushl %eax # EIP
pushl %esi # error_code/entry_vector
- jmp error_code
+ jmp handle_exception
DBLFLT1:GET_CURRENT(%ebx)
jmp test_all_events
failsafe_callback:
@@ -381,14 +381,6 @@
jmp __domain_crash_synchronous
ALIGN
-process_guest_exception_and_events:
- leal VCPU_trap_bounce(%ebx),%edx
- testb $TBF_EXCEPTION,TRAPBOUNCE_flags(%edx)
- jz test_all_events
- call create_bounce_frame
- jmp test_all_events
-
- ALIGN
ENTRY(ret_from_intr)
GET_CURRENT(%ebx)
movl UREGS_eflags(%esp),%eax
@@ -400,7 +392,7 @@
ENTRY(divide_error)
pushl $TRAP_divide_error<<16
ALIGN
-error_code:
+handle_exception:
FIXUP_RING0_GUEST_STACK
SAVE_ALL_NOSEGREGS(a)
SET_XEN_SEGMENTS(a)
@@ -419,7 +411,11 @@
movb UREGS_cs(%esp),%al
testl $(3|X86_EFLAGS_VM),%eax
jz restore_all_xen
- jmp process_guest_exception_and_events
+ leal VCPU_trap_bounce(%ebx),%edx
+ testb $TBF_EXCEPTION,TRAPBOUNCE_flags(%edx)
+ jz test_all_events
+ call create_bounce_frame
+ jmp test_all_events
exception_with_ints_disabled:
movl UREGS_eflags(%esp),%eax
@@ -452,71 +448,71 @@
ENTRY(coprocessor_error)
pushl $TRAP_copro_error<<16
- jmp error_code
+ jmp handle_exception
ENTRY(simd_coprocessor_error)
pushl $TRAP_simd_error<<16
- jmp error_code
+ jmp handle_exception
ENTRY(device_not_available)
pushl $TRAP_no_device<<16
- jmp error_code
+ jmp handle_exception
ENTRY(debug)
pushl $TRAP_debug<<16
- jmp error_code
+ jmp handle_exception
ENTRY(int3)
pushl $TRAP_int3<<16
- jmp error_code
+ jmp handle_exception
ENTRY(overflow)
pushl $TRAP_overflow<<16
- jmp error_code
+ jmp handle_exception
ENTRY(bounds)
pushl $TRAP_bounds<<16
- jmp error_code
+ jmp handle_exception
ENTRY(invalid_op)
pushl $TRAP_invalid_op<<16
- jmp error_code
+ jmp handle_exception
ENTRY(coprocessor_segment_overrun)
pushl $TRAP_copro_seg<<16
- jmp error_code
+ jmp handle_exception
ENTRY(invalid_TSS)
- movw $TRAP_invalid_tss,2(%esp)
- jmp error_code
+ movw $TRAP_invalid_tss,2(%esp)
+ jmp handle_exception
ENTRY(segment_not_present)
- movw $TRAP_no_segment,2(%esp)
- jmp error_code
+ movw $TRAP_no_segment,2(%esp)
+ jmp handle_exception
ENTRY(stack_segment)
- movw $TRAP_stack_error,2(%esp)
- jmp error_code
+ movw $TRAP_stack_error,2(%esp)
+ jmp handle_exception
ENTRY(general_protection)
- movw $TRAP_gp_fault,2(%esp)
- jmp error_code
+ movw $TRAP_gp_fault,2(%esp)
+ jmp handle_exception
ENTRY(alignment_check)
- movw $TRAP_alignment_check,2(%esp)
- jmp error_code
+ movw $TRAP_alignment_check,2(%esp)
+ jmp handle_exception
ENTRY(page_fault)
- movw $TRAP_page_fault,2(%esp)
- jmp error_code
+ movw $TRAP_page_fault,2(%esp)
+ jmp handle_exception
ENTRY(machine_check)
pushl $TRAP_machine_check<<16
- jmp error_code
+ jmp handle_exception
ENTRY(spurious_interrupt_bug)
pushl $TRAP_spurious_int<<16
- jmp error_code
+ jmp handle_exception
ENTRY(nmi)
#ifdef CONFIG_X86_SUPERVISOR_MODE_KERNEL
diff -r db44b783fe09 -r 8c27368b12ad xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S Thu Apr 6 16:25:24 2006
+++ b/xen/arch/x86/x86_64/entry.S Thu Apr 6 16:32:47 2006
@@ -68,7 +68,7 @@
leaq DBLFLT1(%rip),%rax
pushq %rax # RIP
pushq %rsi # error_code/entry_vector
- jmp error_code
+ jmp handle_exception
DBLFLT1:GET_CURRENT(%rbx)
jmp test_all_events
failsafe_callback:
@@ -320,15 +320,6 @@
jmp __domain_crash_synchronous
ALIGN
-/* %rbx: struct vcpu */
-process_guest_exception_and_events:
- leaq VCPU_trap_bounce(%rbx),%rdx
- testb $TBF_EXCEPTION,TRAPBOUNCE_flags(%rdx)
- jz test_all_events
- call create_bounce_frame
- jmp test_all_events
-
- ALIGN
/* No special register assumptions. */
ENTRY(ret_from_intr)
GET_CURRENT(%rbx)
@@ -338,7 +329,7 @@
ALIGN
/* No special register assumptions. */
-error_code:
+handle_exception:
SAVE_ALL
testb $X86_EFLAGS_IF>>8,UREGS_eflags+1(%rsp)
jz exception_with_ints_disabled
@@ -351,7 +342,11 @@
callq *(%rdx,%rax,8)
testb $3,UREGS_cs(%rsp)
jz restore_all_xen
- jmp process_guest_exception_and_events
+ leaq VCPU_trap_bounce(%rbx),%rdx
+ testb $TBF_EXCEPTION,TRAPBOUNCE_flags(%rdx)
+ jz test_all_events
+ call create_bounce_frame
+ jmp test_all_events
/* No special register assumptions. */
exception_with_ints_disabled:
@@ -384,90 +379,90 @@
ENTRY(divide_error)
pushq $0
movl $TRAP_divide_error,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(coprocessor_error)
pushq $0
movl $TRAP_copro_error,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(simd_coprocessor_error)
pushq $0
movl $TRAP_simd_error,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(device_not_available)
pushq $0
movl $TRAP_no_device,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(debug)
pushq $0
movl $TRAP_debug,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(int3)
pushq $0
movl $TRAP_int3,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(overflow)
pushq $0
movl $TRAP_overflow,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(bounds)
pushq $0
movl $TRAP_bounds,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(invalid_op)
pushq $0
movl $TRAP_invalid_op,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(coprocessor_segment_overrun)
pushq $0
movl $TRAP_copro_seg,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(invalid_TSS)
movl $TRAP_invalid_tss,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(segment_not_present)
movl $TRAP_no_segment,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(stack_segment)
movl $TRAP_stack_error,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(general_protection)
movl $TRAP_gp_fault,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(alignment_check)
movl $TRAP_alignment_check,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(page_fault)
movl $TRAP_page_fault,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(machine_check)
pushq $0
movl $TRAP_machine_check,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(spurious_interrupt_bug)
pushq $0
movl $TRAP_spurious_int,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(double_fault)
movl $TRAP_double_fault,4(%rsp)
- jmp error_code
+ jmp handle_exception
ENTRY(nmi)
pushq $0
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|