dwarf2 unwinder patch

Alan Modra amodra@bigpond.net.au
Thu Jan 27 07:17:00 GMT 2005


I'm applying this as obvious.  Immediately below the place I'm patching,
we have
	  {
	    /* Binary operations.  */
	    _Unwind_Word first, second;
	    if ((stack_elt -= 2) < 0)
	      abort ();
	    second = stack[stack_elt];
	    first = stack[stack_elt + 1];

	    switch (op)
	      {
and cases handling shl, shr, shra, and xor.  I wanted to use three of
them in the powerpc64 vdso signal trampoline eh_frame description.  Now
I guess I'll have to avoid these ops, otherwise we have a backwards
compatibility problem.

	* unwind-dw2.c (execute_stack_op): Add missing cases for
	DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.

Index: gcc/unwind-dw2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/unwind-dw2.c,v
retrieving revision 1.50
diff -u -p -r1.50 unwind-dw2.c
--- gcc/unwind-dw2.c	10 Nov 2004 06:33:27 -0000	1.50
+++ gcc/unwind-dw2.c	27 Jan 2005 06:30:47 -0000
@@ -626,6 +626,10 @@ execute_stack_op (const unsigned char *o
 	case DW_OP_mul:
 	case DW_OP_or:
 	case DW_OP_plus:
+	case DW_OP_shl:
+	case DW_OP_shr:
+	case DW_OP_shra:
+	case DW_OP_xor:
 	case DW_OP_le:
 	case DW_OP_ge:
 	case DW_OP_eq:

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Gcc-patches mailing list