[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Revert 14730:07d3208c0ca3b6e746745d2bc08f7aa12ed39269.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1175770682 -3600 # Node ID 4de01232447731f73171ec574ea4f94b83aec7f2 # Parent 602d061ff51f50d7b46bd5ca78c4b70fbe809d20 Revert 14730:07d3208c0ca3b6e746745d2bc08f7aa12ed39269. Breaks the x86/64 build with (at least) gcc 3.4.4. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S | 60 ++++++++------------ 1 files changed, 24 insertions(+), 36 deletions(-) diff -r 602d061ff51f -r 4de012324477 linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S Thu Apr 05 10:43:50 2007 +0100 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/entry-xen.S Thu Apr 05 11:58:02 2007 +0100 @@ -201,20 +201,6 @@ END(ret_from_fork) END(ret_from_fork) /* - * initial frame state for interrupts and exceptions - */ - .macro _frame ref - CFI_STARTPROC simple - CFI_SIGNAL_FRAME - CFI_DEF_CFA rsp,SS+8-\ref - /*CFI_REL_OFFSET ss,SS-\ref*/ - CFI_REL_OFFSET rsp,RSP-\ref - /*CFI_REL_OFFSET rflags,EFLAGS-\ref*/ - /*CFI_REL_OFFSET cs,CS-\ref*/ - CFI_REL_OFFSET rip,RIP-\ref - .endm - -/* * System call entry. Upto 6 arguments in registers are supported. * * SYSCALL does not save anything on the stack and does not change the @@ -246,7 +232,10 @@ END(ret_from_fork) */ ENTRY(system_call) - _frame (RIP-0x10) + CFI_STARTPROC simple + CFI_DEF_CFA rsp,PDA_STACKOFFSET + CFI_REGISTER rip,rcx + /*CFI_REGISTER rflags,r11*/ SAVE_ARGS -8,0 movq %rax,ORIG_RAX-ARGOFFSET(%rsp) /* @@ -284,7 +273,9 @@ sysret_check: */ TRACE_IRQS_ON XEN_UNBLOCK_EVENTS(%rsi) + CFI_REGISTER rip,rcx RESTORE_ARGS 0,8,0 + /*CFI_REGISTER rflags,r11*/ HYPERVISOR_IRET VGCF_IN_SYSCALL /* Handle reschedules */ @@ -514,16 +505,24 @@ ENTRY(stub_rt_sigreturn) CFI_ENDPROC END(stub_rt_sigreturn) +/* + * initial frame state for interrupts and exceptions + */ + .macro _frame ref + CFI_STARTPROC simple + CFI_DEF_CFA rsp,SS+8-\ref + /*CFI_REL_OFFSET ss,SS-\ref*/ + CFI_REL_OFFSET rsp,RSP-\ref + /*CFI_REL_OFFSET rflags,EFLAGS-\ref*/ + /*CFI_REL_OFFSET cs,CS-\ref*/ + CFI_REL_OFFSET rip,RIP-\ref + .endm + /* initial frame state for interrupts (and exceptions without error code) */ -#define INTR_FRAME _frame (RIP-0x10); \ - CFI_REL_OFFSET rcx,0; \ - CFI_REL_OFFSET r11,8 - +#define INTR_FRAME _frame RIP /* initial frame state for exceptions with error code (and interrupts with vector already pushed) */ -#define XCPT_FRAME _frame (RIP-0x18); \ - CFI_REL_OFFSET rcx,0; \ - CFI_REL_OFFSET r11,8 +#define XCPT_FRAME _frame ORIG_RAX /* * Interrupt exit. @@ -600,9 +599,8 @@ retint_kernel: #endif CFI_ENDPROC -END(retint_check) - -#ifndef CONFIG_XEN +END(common_interrupt) + /* * APIC interrupts. */ @@ -615,6 +613,7 @@ END(retint_check) CFI_ENDPROC .endm +#ifndef CONFIG_XEN ENTRY(thermal_interrupt) apicinterrupt THERMAL_APIC_VECTOR,smp_thermal_interrupt END(thermal_interrupt) @@ -669,16 +668,12 @@ END(spurious_interrupt) .macro zeroentry sym INTR_FRAME movq (%rsp),%rcx - CFI_RESTORE rcx movq 8(%rsp),%r11 - CFI_RESTORE r11 addq $0x10,%rsp /* skip rcx and r11 */ - CFI_ADJUST_CFA_OFFSET -0x10 pushq $0 /* push error code/oldrax */ CFI_ADJUST_CFA_OFFSET 8 pushq %rax /* push real oldrax to the rdi slot */ CFI_ADJUST_CFA_OFFSET 8 - CFI_REL_OFFSET rax,0 leaq \sym(%rip),%rax jmp error_entry CFI_ENDPROC @@ -687,14 +682,10 @@ END(spurious_interrupt) .macro errorentry sym XCPT_FRAME movq (%rsp),%rcx - CFI_RESTORE rcx movq 8(%rsp),%r11 - CFI_RESTORE r11 addq $0x10,%rsp /* rsp points to the error code */ - CFI_ADJUST_CFA_OFFSET -0x10 pushq %rax CFI_ADJUST_CFA_OFFSET 8 - CFI_REL_OFFSET rax,0 leaq \sym(%rip),%rax jmp error_entry CFI_ENDPROC @@ -808,7 +799,6 @@ paranoid_schedule\trace: */ ENTRY(error_entry) _frame RDI - CFI_REL_OFFSET rax,0 /* rdi slot contains rax, oldrax contains error code */ cld subq $14*8,%rsp @@ -816,7 +806,6 @@ ENTRY(error_entry) movq %rsi,13*8(%rsp) CFI_REL_OFFSET rsi,RSI movq 14*8(%rsp),%rsi /* load rax from rdi slot */ - CFI_REGISTER rax,rsi movq %rdx,12*8(%rsp) CFI_REL_OFFSET rdx,RDX movq %rcx,11*8(%rsp) @@ -850,7 +839,6 @@ ENTRY(error_entry) #endif error_call_handler: movq %rdi, RDI(%rsp) - CFI_REL_OFFSET rdi,RDI movq %rsp,%rdi movq ORIG_RAX(%rsp),%rsi # get error code movq $-1,ORIG_RAX(%rsp) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |