This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

v8.S dwarf2 eh frame issues again :(



Dwarf2 unwinds from libjava/testsuite/libjava.lang/invokethrow.java
fail to work unless I make the change at the end of thie email to the
.eh_frame information added recently to libffi/src/sparc/v8.S

I don't understand the .eh_frame format at all, basically what I did
was compile a dummy "extern int bar(void); int foo(void) { bar(); }"
with -g -fexceptions and copied the .eh_frame section code into v8.S
and then the test started working.

Either it is a bug in binutils eh frame optimizations, the .eh_frame
specification currently in v8.S, or the runtime unwinder itself has an
.eh_frame decoding bug of some sort.

--- v8.S	Wed Apr 10 19:57:34 2002
+++ v8.S.NEW	Fri Apr 19 10:26:03 2002
@@ -106,36 +106,32 @@
 
 	.section	".eh_frame",#alloc,#write
 .LLframe1:
-	.uaword	.LLECIE1-.LLSCIE1	! Length of Common Information Entry
+	.uaword	.LLECIE1-.LLSCIE1
 .LLSCIE1:
-	.uaword	0x0	! CIE Identifier Tag
-	.byte	0x1	! CIE Version
-	.ascii "zR\0"	! CIE Augmentation
-	.byte	0x1	! uleb128 0x1; CIE Code Alignment Factor
-	.byte	0x80-WS	! sleb128 -WS; CIE Data Alignment Factor
-	.byte	0xf	! CIE RA Column
-	.byte	0x1	! uleb128 0x1; Augmentation size
-	.byte	0x50	! FDE Encoding (aligned absolute)
-	.byte	0xc	! DW_CFA_def_cfa
-	.byte	0xe	! uleb128 0xe
-	.byte	0x0	! uleb128 0x0
-	.align	WS
+	.uaword	0x0
+	.byte	0x1
+	.asciz	""
+	.byte   0x1
+	.byte   0x80-WS
+	.byte	0xf
+	.byte	0xc
+	.byte   0xe
+	.byte   0x0
+	.align  WS
 .LLECIE1:
 .LLSFDE1:
-	.uaword	.LLEFDE1-.LLASFDE1	! FDE Length
+	.uaword	.LLEFDE1-.LLASFDE1
 .LLASFDE1:
-	.uaword	.LLASFDE1-.LLframe1	! FDE CIE offset
-	.align	WS
+	.uaword	.LLASFDE1-.LLframe1
 	.nword	.LLFB1
-	.uanword .LLFE1-.LLFB1	! FDE address range
-	.byte	0x0	! uleb128 0x0; Augmentation size
-	.byte	0x4	! DW_CFA_advance_loc4
+	.uanword .LLFE1-.LLFB1
+	.byte	0x4
 	.uaword	.LLCFI0-.LLFB1
-	.byte	0xd	! DW_CFA_def_cfa_register
-	.byte	0x1e	! uleb128 0x1e
-	.byte	0x2d	! DW_CFA_GNU_window_save
-	.byte	0x9	! DW_CFA_register
-	.byte	0xf	! uleb128 0xf
-	.byte	0x1f	! uleb128 0x1f
-	.align	WS
+	.byte	0xd
+	.byte   0x1e
+	.byte	0x2d
+	.byte	0x9
+	.byte   0xf
+	.byte   0x1f
+	.align 4
 .LLEFDE1:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]