gcc/ChangeLog:
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Nov 2002 16:57:49 +0000 (16:57 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 15 Nov 2002 16:57:49 +0000 (16:57 +0000)
* config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.

libffi/ChangeLog:
* src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59134 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.h
libffi/ChangeLog
libffi/src/s390/sysv.S

index c43ef69..5461363 100644 (file)
@@ -1,3 +1,7 @@
+2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+
 Fri Nov 15 14:54:19 CET 2002  Jan Hubicka  <jh@suse.cz>
 
        * i386-protos.h (x86_function_profiler): New function
index 268ee2f..2372158 100644 (file)
@@ -497,6 +497,12 @@ extern int current_function_outgoing_args_size;
   gen_rtx_MEM (Pmode, plus_constant (arg_pointer_rtx, \
                                      TARGET_64BIT? -48 : -40))
 
+/* Select a format to encode pointers in exception handling data.  */
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)                         \
+  (flag_pic                                                                \
+    ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4 \
+   : DW_EH_PE_absptr)
+
 
 /* Frame registers.  */
 
index 40ba2a5..c36ff7f 100644 (file)
@@ -1,3 +1,7 @@
+2002-11-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * src/s390/sysv.S (.eh_frame section): Adapt to pcrel FDE encoding.
+
 2002-11-11  DJ Delorie  <dj@redhat.com>
 
        * configure.in: Look for common files in the right place.
index 50e94f5..7d6f449 100644 (file)
@@ -152,10 +152,12 @@ ffi_closure_SYSV:
 .LSCIE1:
        .4byte  0x0     # CIE Identifier Tag
        .byte   0x1     # CIE Version
-       .ascii "\0"     # CIE Augmentation
+       .ascii "zR\0"   # CIE Augmentation
        .uleb128 0x1    # CIE Code Alignment Factor
        .sleb128 -4     # CIE Data Alignment Factor
        .byte   0xe     # CIE RA Column
+       .uleb128 0x1    # Augmentation size
+       .byte   0x1b    # FDE Encoding (pcrel sdata4)
        .byte   0xc     # DW_CFA_def_cfa
        .uleb128 0xf
        .uleb128 0x60
@@ -165,8 +167,9 @@ ffi_closure_SYSV:
        .4byte  .LEFDE1-.LASFDE1        # FDE Length
 .LASFDE1:
        .4byte  .LASFDE1-.Lframe1       # FDE CIE offset
-       .4byte  .LFB1   # FDE initial location
+       .4byte  .LFB1-. # FDE initial location
        .4byte  .LFE1-.LFB1     # FDE address range
+       .uleb128 0x0    # Augmentation size
        .byte   0x4     # DW_CFA_advance_loc4
        .4byte  .LCFI0-.LFB1
        .byte   0x8f    # DW_CFA_offset, column 0xf
@@ -203,8 +206,9 @@ ffi_closure_SYSV:
        .4byte  .LEFDE2-.LASFDE2        # FDE Length
 .LASFDE2:
        .4byte  .LASFDE2-.Lframe1       # FDE CIE offset
-       .4byte  .LFB2   # FDE initial location
+       .4byte  .LFB2-. # FDE initial location
        .4byte  .LFE2-.LFB2     # FDE address range
+       .uleb128 0x0    # Augmentation size
        .byte   0x4     # DW_CFA_advance_loc4
        .4byte  .LCFI10-.LFB2
        .byte   0x8f    # DW_CFA_offset, column 0xf
@@ -347,10 +351,12 @@ ffi_closure_SYSV:
 .LSCIE1:
        .4byte  0x0     # CIE Identifier Tag
        .byte   0x1     # CIE Version
-       .ascii "\0"     # CIE Augmentation
+       .ascii "zR\0"   # CIE Augmentation
        .uleb128 0x1    # CIE Code Alignment Factor
        .sleb128 -8     # CIE Data Alignment Factor
        .byte   0xe     # CIE RA Column
+       .uleb128 0x1    # Augmentation size
+       .byte   0x1b    # FDE Encoding (pcrel sdata4)
        .byte   0xc     # DW_CFA_def_cfa
        .uleb128 0xf
        .uleb128 0xa0
@@ -360,8 +366,9 @@ ffi_closure_SYSV:
        .4byte  .LEFDE1-.LASFDE1        # FDE Length
 .LASFDE1:
        .4byte  .LASFDE1-.Lframe1       # FDE CIE offset
-       .8byte  .LFB1   # FDE initial location
-       .8byte  .LFE1-.LFB1     # FDE address range
+       .4byte  .LFB1-. # FDE initial location
+       .4byte  .LFE1-.LFB1     # FDE address range
+       .uleb128 0x0    # Augmentation size
        .byte   0x4     # DW_CFA_advance_loc4
        .4byte  .LCFI0-.LFB1
        .byte   0x8f    # DW_CFA_offset, column 0xf
@@ -398,8 +405,9 @@ ffi_closure_SYSV:
        .4byte  .LEFDE2-.LASFDE2        # FDE Length
 .LASFDE2:
        .4byte  .LASFDE2-.Lframe1       # FDE CIE offset
-       .8byte  .LFB2   # FDE initial location
-       .8byte  .LFE2-.LFB2     # FDE address range
+       .4byte  .LFB2-. # FDE initial location
+       .4byte  .LFE2-.LFB2     # FDE address range
+       .uleb128 0x0    # Augmentation size
        .byte   0x4     # DW_CFA_advance_loc4
        .4byte  .LCFI10-.LFB2
        .byte   0x8f    # DW_CFA_offset, column 0xf