diff --git a/src/powerpc/darwin.S b/src/powerpc/darwin.S index 4f987dc..54fb75d 100644 --- a/src/powerpc/darwin.S +++ b/src/powerpc/darwin.S @@ -317,14 +317,10 @@ _ffi_call_AIX: /* EH stuff. */ #define EH_DATA_ALIGN_FACT MODE_CHOICE(0x7c,0x78) - - .static_data - .align LOG2_GPR_BYTES -LLFB0$non_lazy_ptr: - .g_long Lstartcode +#define EH_FRAME_LABEL MODE_CHOICE(EH_frame1,EH_frame1) .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support -EH_frame1: +EH_FRAME_LABEL: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry LSCIE1: @@ -335,7 +331,7 @@ LSCIE1: .byte EH_DATA_ALIGN_FACT ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size - .byte 0x10 ; FDE Encoding (indirect pcrel) + .byte 0x10 ; FDE Encoding (pcrel) .byte 0xc ; DW_CFA_def_cfa .byte 0x1 ; uleb128 0x1 .byte 0x0 ; uleb128 0x0 @@ -348,8 +344,8 @@ LSFDE1: .set L$set$1,LEFDE1-LASFDE1 .long L$set$1 ; FDE Length LASFDE1: - .long LASFDE1-EH_frame1 ; FDE CIE offset - .g_long LLFB0$non_lazy_ptr-. ; FDE initial location + .long LASFDE1-EH_FRAME_LABEL ; FDE CIE offset + .g_long Lstartcode-. ; FDE initial location .set L$set$3,LFE1-Lstartcode .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size diff --git a/src/powerpc/darwin_closure.S b/src/powerpc/darwin_closure.S index 86d8d6d..5f7e112 100644 --- a/src/powerpc/darwin_closure.S +++ b/src/powerpc/darwin_closure.S @@ -466,14 +466,10 @@ Lendcode: /* 176, 400 */ #define EH_FRAME_OFFSETA MODE_CHOICE(176,0x90) #define EH_FRAME_OFFSETB MODE_CHOICE(1,3) - - .static_data - .align LOG2_GPR_BYTES -LLFB1$non_lazy_ptr: - .g_long Lstartcode +#define EH_FRAME_LABEL MODE_CHOICE(EH_frame1,EH_frame1) .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support -EH_frame1: +EH_FRAME_LABEL: .set L$set$0,LECIE1-LSCIE1 .long L$set$0 ; Length of Common Information Entry LSCIE1: @@ -484,7 +480,7 @@ LSCIE1: .byte EH_DATA_ALIGN_FACT ; sleb128 -4; CIE Data Alignment Factor .byte 0x41 ; CIE RA Column .byte 0x1 ; uleb128 0x1; Augmentation size - .byte 0x10 ; FDE Encoding (indirect pcrel) + .byte 0x10 ; FDE Encoding (pcrel) .byte 0xc ; DW_CFA_def_cfa .byte 0x1 ; uleb128 0x1 .byte 0x0 ; uleb128 0x0 @@ -497,8 +493,8 @@ LSFDE1: .long L$set$1 ; FDE Length LASFDE1: - .long LASFDE1-EH_frame1 ; FDE CIE offset - .g_long LLFB1$non_lazy_ptr-. ; FDE initial location + .long LASFDE1-EH_FRAME_LABEL ; FDE CIE offset + .g_long Lstartcode-. ; FDE initial location .set L$set$3,LFE1-Lstartcode .g_long L$set$3 ; FDE address range .byte 0x0 ; uleb128 0x0; Augmentation size --- a/testsuite/libffi.call/nested_struct5.c 2014-01-23 16:15:02.000000000 -0800 +++ b/testsuite/libffi.call/nested_struct5.c 2014-01-23 16:23:36.000000000 -0800 @@ -6,7 +6,7 @@ PR: none. Originator: 20051010 */ -/* { dg-do run } */ +/* { dg-xfail-if "gcc PR34311" { powerpc-apple-darwin9* } { "*" } { "" } } */ #include "ffitest.h" typedef struct A {