This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [arm] Use EABI unwind library
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Paul Brook <paul at codesourcery dot com>
- Cc: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org, Richard Earnshaw <rearnsha at arm dot com>
- Date: Tue, 21 Sep 2004 20:14:37 -0700
- Subject: Re: [arm] Use EABI unwind library
- Organization: CodeSourcery, LLC
- References: <200409220346.19550.paul@codesourcery.com>
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