[arm] Use EABI unwind library

Mark Mitchell mark@codesourcery.com
Wed Sep 22 03:14:00 GMT 2004


Paul Brook wrote:

>Bootstrapped and tested on i686, and tested with cross to arm-none-elf and 
>arm-none-eabi.
>  
>
Excellent!

>Ok for csl-arm-branch?
>  
>
Given that Richard Earnshaw is on vacation, I think you should just go 
ahead on the csl-arm-branch.

>Do we also want this for mainline?
>  
>
I'm pretty uncomfortable with putting this on the mainline.  I know that 
we need this for full EABI compatibility in 4.0 -- but I think this is 
not Stage 3 material, due to the changes to gcc/except.c and the V3 
bits, even though I see that those are pretty minimal.  Let's queue this 
for 4.1.  (Our internal Wiki has a list of ARM patches queued for 4.1 -- 
presently empty.)  If Richard E. wants to lobby for this in 4.0 after he 
comes back from vacation, he can try to convince Richard Henderson (EH) 
and Benjamin Koznik (V3); I'd feel differently if those folks wanted to 
go ahead with this patch as well, but I feel tremendously uncomfortable 
approving this directly.

Nits:

+static void
+output_ttype (tree type, int tt_format, int tt_format_size)

Needs a comment.

+      if (fnspec_ttable_indirect)
+    {
+      dw2_asm_output_data (1, VARRAY_UCHAR (cfun->eh->ehspec_data, i),
+                   (i ? NULL : "Exception specification table"));
+    }

Spurious braces.

+static bool
+arm_output_ttype (rtx x)

Needs a comment.

+/* Store a virtial register to memory.  */

s|virtial|virtual

That shows up in at least one other place.

+static inline bool
+__is_gxx_exception_class (_Unwind_Exception_Class c)
+{
+  /* TODO: Take advantage of the fact that c will always be word 
aligned.  */
+  return c[0] == 'G'
+     || c[1] == 'N'
+     || c[2] == 'U'
+     || c[3] == 'C'
+     || c[4] == 'C'
+     || c[5] == '+'
+     || c[6] == '+'
+     || c[7] == '\0';
+}

Shouldn't those be "&&"?

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Libstdc++ mailing list