diff options
author | Geoffrey Keating <geoffk@apple.com> | 2007-01-25 07:08:33 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2007-01-25 07:08:33 +0000 |
commit | 9dc5c4f5eb37ebb2a627a741fa25a08ac49e91ab (patch) | |
tree | a39f622bf461e27f41c20e714f4c32292dc22db9 | |
parent | 01ffa370154d0d553874a5fa4e8e54852a8b93e7 (diff) | |
download | gcc-9dc5c4f5eb37ebb2a627a741fa25a08ac49e91ab.zip gcc-9dc5c4f5eb37ebb2a627a741fa25a08ac49e91ab.tar.gz gcc-9dc5c4f5eb37ebb2a627a741fa25a08ac49e91ab.tar.bz2 |
* unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
From-SVN: r121165
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/unwind-dw2.c | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8f1cdd..2996d35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-01-24 Geoffrey Keating <geoffk@apple.com> + + * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap. + 2007-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> PR middle-end/30447 diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c index b40b16f..a4fad20 100644 --- a/gcc/unwind-dw2.c +++ b/gcc/unwind-dw2.c @@ -636,6 +636,16 @@ execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end, result = stack[stack_elt - 2]; break; + case DW_OP_swap: + { + _Unwind_Word t; + gcc_assert (stack_elt >= 2); + t = stack[stack_elt - 1]; + stack[stack_elt - 1] = stack[stack_elt - 2]; + stack[stack_elt - 2] = t; + goto no_push; + } + case DW_OP_rot: { _Unwind_Word t1, t2, t3; |