[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.