+2003-04-14 Ulrich Drepper <drepper@redhat.com>
+
+ * string/strxfrm.c (STRXFRM): Terminate rulearr at correct
+ position. Reported by jreiser@BitWagon.com.
+
2003-04-13 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/unwind-dw2-fde.c: Update from recent gcc version.
.section .eh_frame,"a",@progbits
.LSTARTFRAME:
- .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
+ .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
.LSTARTCIE:
- .long 0 # CIE ID.
- .byte 1 # Version number.
+ .long 0 # CIE ID.
+ .byte 1 # Version number.
#ifdef SHARED
- .string "zR" # NUL-terminated augmentation string.
+ .string "zR" # NUL-terminated augmentation
+ # string.
#else
- .ascii "\0" # NUL-terminated augmentation string.
+ .ascii "\0" # NUL-terminated augmentation
+ # string.
#endif
- .uleb128 1 # Code alignment factor.
- .sleb128 -4 # Data alignment factor.
- .byte 8 # Return address register column.
+ .uleb128 1 # Code alignment factor.
+ .sleb128 -4 # Data alignment factor.
+ .byte 8 # Return address register
+ # column.
#ifdef SHARED
- .uleb128 1 # Augmentation value length.
- .byte 0x1b # Encoding: DW_EH_PE_pcrel
- # + DW_EH_PE_sdata4.
+ .uleb128 1 # Augmentation value length.
+ .byte 0x1b # Encoding: DW_EH_PE_pcrel
+ # + DW_EH_PE_sdata4.
#endif
- .byte 0x0c # DW_CFA_def_cfa
+ .byte 0x0c # DW_CFA_def_cfa
.uleb128 4
.uleb128 4
- .byte 0x88 # DW_CFA_offset, column 0x8
+ .byte 0x88 # DW_CFA_offset, column 0x8
.uleb128 1
.align 4
.LENDCIE:
- .long .LENDFDE-.LSTARTFDE # Length of the FDE.
+ .long .LENDFDE-.LSTARTFDE # Length of the FDE.
.LSTARTFDE:
- .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
+ .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
#ifdef SHARED
- .long .LSTARTCODE-. # PC-relative start address of the code
+ .long .LSTARTCODE-. # PC-relative start address
+ # of the code
#else
- .long .LSTARTCODE # Start address of the code.
+ .long .LSTARTCODE # Start address of the code.
#endif
- .long .LENDCODE-.LSTARTCODE # Length of the code.
+ .long .LENDCODE-.LSTARTCODE # Length of the code.
#ifdef SHARED
- .uleb128 0 # No augmentation data.
+ .uleb128 0 # No augmentation data.
#endif
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_ebp-.LSTARTCODE
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpush_ebp-.LSTARTCODE # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_edi-.Lpush_ebp
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x85 # DW_CFA_offset %ebp
+ .uleb128 2
+ .byte 0x40+ .Lpush_edi-.Lpush_ebp # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 12
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_esi-.Lpush_edi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x87 # DW_CFA_offset %edi
+ .uleb128 3
+ .byte 0x40+.Lpush_esi-.Lpush_edi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_ebx-.Lpush_esi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x86 # DW_CFA_offset %esi
+ .uleb128 4
+ .byte 0x40+.Lpush_ebx-.Lpush_esi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush4-.Lpush_ebx
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x83 # DW_CFA_offset %ebx
+ .uleb128 5
+ .byte 0x40+.Lpush4-.Lpush_ebx # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 24
- .byte 4 # DW_CFA_advance_loc4
- .long .Lsubl-.Lpush4
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lsubl-.Lpush4 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 64
- .byte 4 # DW_CFA_advance_loc4
- .long .Laddl-.Lsubl
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Laddl-.Lsubl # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_ebx-.Laddl
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpop_ebx-.Laddl # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_esi-.Lpop_ebx
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc3 # DW_CFA_restore %ebx
+ .byte 0x40+.Lpop_esi-.Lpop_ebx # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 12
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_edi-.Lpop_esi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc6 # DW_CFA_restore %esi
+ .byte 0x40+.Lpop_edi-.Lpop_esi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_ebp-.Lpop_edi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc7 # DW_CFA_restore %edi
+ .byte 0x40+.Lpop_ebp-.Lpop_edi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 4
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl1-.Lpop_edi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc5 # DW_CFA_restore %ebp
+ .byte 0x40+.LSbl1-.Lpop_edi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl2-.LSbl1
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.LSbl2-.LSbl1 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 64
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl3-.LSbl2
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x85 # DW_CFA_offset %ebp
+ .uleb128 2
+ .byte 0x87 # DW_CFA_offset %edi
+ .uleb128 3
+ .byte 0x86 # DW_CFA_offset %esi
+ .uleb128 4
+ .byte 0x83 # DW_CFA_offset %ebx
+ .uleb128 5
+ .byte 0x40+.LSbl3-.LSbl2 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 24
#if defined __NR_clock_gettime && !defined __ASSUME_POSIX_TIMERS
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl4-.LSbl3
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.LSbl4-.LSbl3 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 64
#endif
.align 4
.LSTARTFRAME:
.long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
.LSTARTCIE:
- .long 0 # CIE ID.
- .byte 1 # Version number.
+ .long 0 # CIE ID.
+ .byte 1 # Version number.
#ifdef SHARED
- .string "zR" # NUL-terminated augmentation string.
+ .string "zR" # NUL-terminated augmentation
+ # string.
#else
- .ascii "\0" # NUL-terminated augmentation string.
+ .ascii "\0" # NUL-terminated augmentation
+ # string.
#endif
- .uleb128 1 # Code alignment factor.
- .sleb128 -4 # Data alignment factor.
- .byte 8 # Return address register column.
+ .uleb128 1 # Code alignment factor.
+ .sleb128 -4 # Data alignment factor.
+ .byte 8 # Return address register
+ # column.
#ifdef SHARED
- .uleb128 1 # Augmentation value length.
- .byte 0x1b # Encoding: DW_EH_PE_pcrel
- # + DW_EH_PE_sdata4.
+ .uleb128 1 # Augmentation value length.
+ .byte 0x1b # Encoding: DW_EH_PE_pcrel
+ # + DW_EH_PE_sdata4.
#endif
- .byte 0x0c # DW_CFA_def_cfa
+ .byte 0x0c # DW_CFA_def_cfa
.uleb128 4
.uleb128 4
- .byte 0x88 # DW_CFA_offset, column 0x8
+ .byte 0x88 # DW_CFA_offset, column 0x8
.uleb128 1
.align 4
.LENDCIE:
- .long .LENDFDE-.LSTARTFDE # Length of the FDE.
+ .long .LENDFDE-.LSTARTFDE # Length of the FDE.
.LSTARTFDE:
- .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
+ .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
#ifdef SHARED
- .long .LSTARTCODE-. # PC-relative start address of the code
+ .long .LSTARTCODE-. # PC-relative start address
+ # of the code.
#else
- .long .LSTARTCODE # Start address of the code.
+ .long .LSTARTCODE # Start address of the code.
#endif
- .long .LENDCODE-.LSTARTCODE # Length of the code.
+ .long .LENDCODE-.LSTARTCODE # Length of the code.
#ifdef SHARED
- .uleb128 0 # No augmentation data.
+ .uleb128 0 # No augmentation data.
#endif
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_edi-.LSTARTCODE
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpush_edi-.LSTARTCODE # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_esi-.Lpush_edi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x87 # DW_CFA_offset %edi
+ .uleb128 2
+ .byte 0x40+.Lpush_esi-.Lpush_edi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 12
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_ebx-.Lpush_esi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x86 # DW_CFA_offset %esi
+ .uleb128 3
+ .byte 0x40+.Lpush_ebx-.Lpush_esi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush4-.Lpush_ebx
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x83 # DW_CFA_offset %ebx
+ .uleb128 4
+ .byte 0x40+.Lpush4-.Lpush_ebx # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
- .byte 4 # DW_CFA_advance_loc4
- .long .Lsubl-.Lpush4
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lsubl-.Lpush4 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 52
- .byte 4 # DW_CFA_advance_loc4
- .long .Laddl-.Lsubl
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Laddl-.Lsubl # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_ebx-.Laddl
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+ .Lpop_ebx-.Laddl # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 12
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_esi-.Lpop_ebx
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc3 # DW_CFA_restore %ebx
+ .byte 0x40+.Lpop_esi-.Lpop_ebx # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_edi-.Lpop_esi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc6 # DW_CFA_restore %esi
+ .byte 0x40+.Lpop_edi-.Lpop_esi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 4
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl1-.Lpop_edi
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xc7 # DW_CFA_restore %edi
+ .byte 0x40+.LSbl1-.Lpop_edi # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl2-.LSbl1
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x87 # DW_CFA_offset %edi
+ .uleb128 2
+ .byte 0x86 # DW_CFA_offset %esi
+ .uleb128 3
+ .byte 0x83 # DW_CFA_offset %ebx
+ .uleb128 4
+ .byte 0x40+.LSbl2-.LSbl1 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 52
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl3-.LSbl2
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.LSbl3-.LSbl2 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 20
.align 4
.LENDFDE:
.long 0; \
/* Version number. */ \
.byte 1; \
- /* NUL-terminated augmentation string. Note "z" means there is an \
- augmentation value later on. */ \
- .string "zR"; \
+ /* NUL-terminated augmentation string. */ \
+ AUGMENTATION_STRING; \
/* Code alignment factor. */ \
.uleb128 1; \
/* Data alignment factor. */ \
.sleb128 -4; \
/* Return address register column. */ \
.byte 8; \
- /* Augmentation value length. */ \
- .uleb128 1; \
- /* Encoding: DW_EH_PE_pcrel + DW_EH_PE_sdata4. */ \
- .byte 0x1b; \
+ /* Optional augmentation parameter. */ \
+ AUGMENTATION_PARAM \
/* Start of the table initialization. */ \
.byte 0xc; /* DW_CFA_def_cfa */ \
.uleb128 4; \
L(STARTFDE): \
/* CIE pointer. */ \
.long L(STARTFDE)-L(STARTFRAME); \
- /* PC-relative start address of the code. */ \
- .long L(name##START)-.; \
+ /* Start address of the code. */ \
+ START_SYMBOL_REF (name); \
/* Length of the code. */ \
.long L(name##END)-L(name##START); \
- /* No augmentation data. */ \
- .uleb128 0; \
+ /* Augmentation data. */ \
+ AUGMENTATION_PARAM_FDE \
/* The rest of the code depends on the number of parameters the syscall \
takes. */ \
EH_FRAME_##args(name); \
L(ENDFDE): \
.previous
+#ifdef SHARED
+/* NUL-terminated augmentation string. Note "z" means there is an
+ augmentation value later on. */
+# define AUGMENTATION_STRING .string "zR"
+# define AUGMENTATION_PARAM \
+ /* Augmentation value length. */ \
+ .uleb128 1; \
+ /* Encoding: DW_EH_PE_pcrel + DW_EH_PE_sdata4. */ \
+ .byte 0x1b;
+# define AUGMENTATION_PARAM_FDE \
+ /* No augmentation data. */ \
+ .uleb128 0;
+# define START_SYMBOL_REF(name) \
+ /* PC-relative start address of the code. */ \
+ .long L(name##START)-.
+#else
+/* No augmentation. */
+# define AUGMENTATION_STRING .ascii "\0"
+# define AUGMENTATION_PARAM /* nothing */
+# define AUGMENTATION_PARAM_FDE /* nothing */
+# define START_SYMBOL_REF(name) \
+ /* Absolute start address of the code. */ \
+ .long L(name##START)
+#endif
+
/* Callframe description for syscalls without parameters. This is very
simple. The only place the stack pointer is changed is when the old
cancellation state value is saved. */
.section .eh_frame,"a",@progbits
.LSTARTFRAME:
- .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
+ .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
.LSTARTCIE:
- .long 0 # CIE ID.
- .byte 1 # Version number.
+ .long 0 # CIE ID.
+ .byte 1 # Version number.
#ifdef SHARED
- .string "zR" # NUL-terminated augmentation string.
+ .string "zR" # NUL-terminated augmentation
+ # string.
#else
- .ascii "\0" # NUL-terminated augmentation string.
+ .ascii "\0" # NUL-terminated augmentation
+ # string.
#endif
- .uleb128 1 # Code alignment factor.
- .sleb128 -8 # Data alignment factor.
- .byte 16 # Return address register column.
+ .uleb128 1 # Code alignment factor.
+ .sleb128 -8 # Data alignment factor.
+ .byte 16 # Return address register
+ # column.
#ifdef SHARED
- .uleb128 1 # Augmentation value length.
- .byte 0x1b # Encoding: DW_EH_PE_pcrel
- # + DW_EH_PE_sdata4.
+ .uleb128 1 # Augmentation value length.
+ .byte 0x1b # Encoding: DW_EH_PE_pcrel
+ # + DW_EH_PE_sdata4.
#endif
- .byte 0x0c # DW_CFA_def_cfa
+ .byte 0x0c # DW_CFA_def_cfa
.uleb128 7
.uleb128 8
- .byte 0x90 # DW_CFA_offset, column 0x8
+ .byte 0x90 # DW_CFA_offset, column 0x8
.uleb128 1
.align 8
.LENDCIE:
- .long .LENDFDE-.LSTARTFDE # Length of the FDE.
+ .long .LENDFDE-.LSTARTFDE # Length of the FDE.
.LSTARTFDE:
- .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
+ .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
#ifdef SHARED
- .long .LSTARTCODE-. # PC-relative start address of the code
+ .long .LSTARTCODE-. # PC-relative start address
+ # of the code
#else
- .long .LSTARTCODE # Start address of the code.
+ .long .LSTARTCODE # Start address of the code.
#endif
- .long .LENDCODE-.LSTARTCODE # Length of the code.
+ .long .LENDCODE-.LSTARTCODE # Length of the code.
#ifdef SHARED
- .uleb128 0 # No augmentation data.
+ .uleb128 0 # No augmentation data.
#endif
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_r12-.LSTARTCODE
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpush_r12-.LSTARTCODE # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_r13-.Lpush_r12
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x8c # DW_CFA_offset %r12
+ .uleb128 2
+ .byte 0x40+.Lpush_r13-.Lpush_r12 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 24
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_r14-.Lpush_r13
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x8d # DW_CFA_offset %r13
+ .uleb128 3
+ .byte 0x40+.Lpush_r14-.Lpush_r13 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 32
- .byte 4 # DW_CFA_advance_loc4
- .long .Lsubq-.Lpush_r14
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x84 # DW_CFA_offset %r14
+ .uleb128 4
+ .byte 0x40+.Lsubq-.Lpush_r14 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 112
- .byte 4 # DW_CFA_advance_loc4
- .long .Laddq-.Lsubq
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Laddq-.Lsubq # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 32
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_r14-.Laddq
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpop_r14-.Laddq # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 24
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_r13-.Lpop_r14
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xce # DW_CFA_restore %r14
+ .byte 0x40+.Lpop_r13-.Lpop_r14 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_r12-.Lpop_r13
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xcd # DW_CFA_restore %r13
+ .byte 0x40+.Lpop_r12-.Lpop_r13 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl1-.Lpop_r12
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xcc # DW_CFA_restore %r12
+ .byte 0x40+.LSbl1-.Lpop_r12 # DW_CFA_advance_loc4
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 112
+ .byte 0x8c # DW_CFA_offset %r12
+ .uleb128 2
+ .byte 0x8d # DW_CFA_offset %r13
+ .uleb128 3
+ .byte 0x84 # DW_CFA_offset %r14
+ .uleb128 4
.align 8
.LENDFDE:
.section .eh_frame,"a",@progbits
.LSTARTFRAME:
- .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
+ .long L(ENDCIE)-L(STARTCIE) # Length of the CIE.
.LSTARTCIE:
- .long 0 # CIE ID.
- .byte 1 # Version number.
+ .long 0 # CIE ID.
+ .byte 1 # Version number.
#ifdef SHARED
- .string "zR" # NUL-terminated augmentation string.
+ .string "zR" # NUL-terminated augmentation
+ # string.
#else
- .ascii "\0" # NUL-terminated augmentation string.
+ .ascii "\0" # NUL-terminated augmentation
+ # string.
#endif
- .uleb128 1 # Code alignment factor.
- .sleb128 -8 # Data alignment factor.
- .byte 16 # Return address register column.
+ .uleb128 1 # Code alignment factor.
+ .sleb128 -8 # Data alignment factor.
+ .byte 16 # Return address register
+ # column.
#ifdef SHARED
- .uleb128 1 # Augmentation value length.
- .byte 0x1b # Encoding: DW_EH_PE_pcrel
- # + DW_EH_PE_sdata4.
+ .uleb128 1 # Augmentation value length.
+ .byte 0x1b # Encoding: DW_EH_PE_pcrel
+ # + DW_EH_PE_sdata4.
#endif
- .byte 0x0c # DW_CFA_def_cfa
+ .byte 0x0c # DW_CFA_def_cfa
.uleb128 7
.uleb128 8
- .byte 0x90 # DW_CFA_offset, column 0x8
+ .byte 0x90 # DW_CFA_offset, column 0x8
.uleb128 1
.align 8
.LENDCIE:
- .long .LENDFDE-.LSTARTFDE # Length of the FDE.
+ .long .LENDFDE-.LSTARTFDE # Length of the FDE.
.LSTARTFDE:
- .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
+ .long .LSTARTFDE-.LSTARTFRAME # CIE pointer.
#ifdef SHARED
- .long .LSTARTCODE-. # PC-relative start address of the code
+ .long .LSTARTCODE-. # PC-relative start address
+ # of the code
#else
- .long .LSTARTCODE # Start address of the code.
+ .long .LSTARTCODE # Start address of the code.
#endif
- .long .LENDCODE-.LSTARTCODE # Length of the code.
+ .long .LENDCODE-.LSTARTCODE # Length of the code.
#ifdef SHARED
- .uleb128 0 # No augmentation data.
+ .uleb128 0 # No augmentation data.
#endif
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpush_r12-.LSTARTCODE
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpush_r12-.LSTARTCODE # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lsubq-.Lpush_r12
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x8c # DW_CFA_offset %r12
+ .uleb128 2
+ .byte 0x40+.Lsubq-.Lpush_r12 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 80
- .byte 4 # DW_CFA_advance_loc4
- .long .Laddq-.Lsubq
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Laddq-.Lsubq # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 16
- .byte 4 # DW_CFA_advance_loc4
- .long .Lpop_r12-.Laddq
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0x40+.Lpop_r12-.Laddq # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 8
- .byte 4 # DW_CFA_advance_loc4
- .long .LSbl1-.Lpop_r12
- .byte 14 # DW_CFA_def_cfa_offset
+ .byte 0xcc # DW_CFA_restore %r12
+ .byte 0x40+.LSbl1-.Lpop_r12 # DW_CFA_advance_loc+N
+ .byte 14 # DW_CFA_def_cfa_offset
.uleb128 80
+ .byte 0x8c # DW_CFA_offset %r12
+ .uleb128 2
.align 8
.LENDFDE:
-/* Copyright (C) 1995-1999,2000,2001,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
idxarr = (int32_t *) alloca (srclen * sizeof (int32_t));
rulearr = (unsigned char *) alloca (srclen + 1);
}
- /* This element is only read, the value never used but to determine
- another value which then is ignored. */
- rulearr[srclen] = '\0';
idxmax = 0;
do
}
while (*usrc != L('\0'));
+ /* This element is only read, the value never used but to determine
+ another value which then is ignored. */
+ rulearr[idxmax] = '\0';
+
/* Now the passes over the weights. We now use the indeces we found
before. */
needed = 0;