Unwinder info in libffi for PPC

Andrew Haley aph@cambridge.redhat.com
Thu May 31 11:33:00 GMT 2001


The final thing we need to make PPC Java work in gcc 3.0, I hope.
OK?
Andrew.
2001年05月31日 Andrew Haley <aph@cambridge.redhat.com>
 * src/powerpc/sysv.S: Add unwind info.
 * src/powerpc/ppc_closure.S: Likewise.
Index: src/powerpc//ppc_closure.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/powerpc/ppc_closure.S,v
retrieving revision 1.1.2.1
diff -p -2 -c -r1.1.2.1 ppc_closure.S
*** ppc_closure.S	2001年03月24日 03:10:30	1.1.2.1
--- ppc_closure.S	2001年05月31日 18:28:55
***************
*** 5,11 ****
--- 5,14 ----
 
 ENTRY(ffi_closure_SYSV)
+ .LFB1:
 	stwu %r1,-144(%r1)
+ .LCFI0:
 	mflr %r0
 	stw %r31,140(%r1)
+ .LCFI1:
 	stw %r0,148(%r1)
 
*************** ENTRY(ffi_closure_SYSV)
*** 68,71 ****
--- 71,75 ----
 	mtctr %r3
 	bctr # jump to it
+ .LFE1:
 	.align 2
 .L60:
*************** ENTRY(ffi_closure_SYSV)
*** 144,147 ****
--- 148,185 ----
 END(ffi_closure_SYSV)
 
+ 	.section	".eh_frame","aw"
+ __FRAME_BEGIN__:
+ 	.4byte	.LECIE1-.LSCIE1	 # Length of Common Information Entry
+ .LSCIE1:
+ 	.4byte	0x0	 # CIE Identifier Tag
+ 	.byte	0x1	 # CIE Version
+ 	.ascii "0円"	 # CIE Augmentation
+ 	.byte	0x1	 # uleb128 0x1; CIE Code Alignment Factor
+ 	.byte	0x7c	 # sleb128 -4; CIE Data Alignment Factor
+ 	.byte	0x41	 # CIE RA Column
+ 	.byte	0xc	 # DW_CFA_def_cfa
+ 	.byte	0x1	 # uleb128 0x1
+ 	.byte	0x0	 # uleb128 0x0
+ 	.align 2
+ .LECIE1:
+ .LSFDE1:
+ 	.4byte	.LEFDE1-.LASFDE1	 # FDE Length
+ .LASFDE1:
+ 	.4byte	.LASFDE1-__FRAME_BEGIN__	 # FDE CIE offset
+ 	.4byte	.LFB1	 # FDE initial location
+ 	.4byte	.LFE1-.LFB1	 # FDE address range
+ 	.byte	0x4	 # DW_CFA_advance_loc4
+ 	.4byte	.LCFI0-.LFB1
+ 	.byte	0xe	 # DW_CFA_def_cfa_offset
+ 	.byte	144,1	 # uleb128 144
+ 	.byte	0x4	 # DW_CFA_advance_loc4
+ 	.4byte	.LCFI1-.LCFI0
+ 	.byte	0x2f	 # DW_CFA_GNU_negative_offset_extended
+ 	.byte	0x41	 # uleb128 0x41
+ 	.byte	0x1	 # uleb128 0x1
+ 	.align 2
+ .LEFDE1:
 
Index: src/powerpc//sysv.S
===================================================================
RCS file: /cvs/gcc/gcc/libffi/src/powerpc/sysv.S,v
retrieving revision 1.1.1.1
diff -p -2 -c -r1.1.1.1 sysv.S
*** sysv.S	1999年08月08日 13:27:19	1.1.1.1
--- sysv.S	2001年05月31日 18:28:55
***************
*** 32,38 ****
--- 32,40 ----
 	.globl ffi_prep_args
 ENTRY(ffi_call_SYSV)
+ .LFB1:
 	/* Save the old stack pointer as AP. */
 	mr	%r8,%r1
 
+ .LCFI0:
 	/* Allocate the stack space we need. */
 	stwux	%r1,%r1,%r4
*************** ENTRY(ffi_call_SYSV)
*** 40,47 ****
--- 42,54 ----
 	mflr	%r9
 	stw	%r28,-16(%r8)
+ .LCFI1:
 	stw	%r29,-12(%r8)
+ .LCFI2:
 	stw	%r30, -8(%r8)
+ .LCFI3:
 	stw	%r31, -4(%r8)
+ .LCFI4:
 	stw	%r9, 4(%r8)
+ .LCFI5:
 
 	/* Save arguments over call... */
*************** ENTRY(ffi_call_SYSV)
*** 50,53 ****
--- 57,61 ----
 	mr	%r29,%r7	/* function address, */
 	mr	%r28,%r8	/* our AP. */
+ .LCFI6:
 
 	/* Call ffi_prep_args. */
*************** L(float_return_value):
*** 117,119 ****
--- 125,173 ----
 	stfs	%f1,0(%r30)
 	b	L(done_return_value)
+ .LFE1:
 END(ffi_call_SYSV)
+ 
+ .section ".eh_frame","aw"
+ __FRAME_BEGIN__:
+ .4byte .LECIE1-.LSCIE1 /* Length of Common Information Entry */
+ .LSCIE1:
+ .4byte 0x0 /* CIE Identifier Tag */
+ .byte 0x1 /* CIE Version */
+ .ascii "0円" /* CIE Augmentation */
+ .byte 0x1 /* uleb128 0x1; CIE Code Alignment Factor */
+ .byte 0x7c /* sleb128 -4; CIE Data Alignment Factor */
+ .byte 0x41 /* CIE RA Column */
+ .byte 0xc /* DW_CFA_def_cfa */
+ .byte 0x1 /* uleb128 0x1 */
+ .byte 0x0 /* uleb128 0x0 */
+ .align 2
+ .LECIE1:
+ .LSFDE1:
+ .4byte .LEFDE1-.LASFDE1 /* FDE Length */
+ .LASFDE1:
+ .4byte .LASFDE1-__FRAME_BEGIN__ /* FDE CIE offset */
+ .4byte .LFB1 /* FDE initial location */
+ .4byte .LFE1-.LFB1 /* FDE address range */
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .4byte .LCFI0-.LFB1
+ .byte 0xd /* DW_CFA_def_cfa_register */
+ .byte 0x08 /* uleb128 0x08 */
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .4byte .LCFI5-.LCFI0
+ .byte 0x2f /* DW_CFA_GNU_negative_offset_extended */
+ .byte 0x41 /* uleb128 0x41 */
+ .byte 0x1 /* uleb128 0x1 */
+ .byte 0x9f /* DW_CFA_offset, column 0x1f */
+ .byte 0x1 /* uleb128 0x1 */
+ .byte 0x9e /* DW_CFA_offset, column 0x1e */
+ .byte 0x2 /* uleb128 0x2 */
+ .byte 0x9d /* DW_CFA_offset, column 0x1d */
+ .byte 0x3 /* uleb128 0x3 */
+ .byte 0x9c /* DW_CFA_offset, column 0x1c */
+ .byte 0x4 /* uleb128 0x4 */
+ .byte 0x4 /* DW_CFA_advance_loc4 */
+ .4byte .LCFI6-.LCFI5
+ .byte 0xd /* DW_CFA_def_cfa_register */
+ .byte 0x1c /* uleb128 0x1c */
+ .align 2
+ .LEFDE1:


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /