From b33ebc016378d7eddeec789f5019b123c16b8596 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Thu, 25 Jan 2007 07:13:44 +0000 Subject: [PATCH] * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap. From-SVN: r121166 --- gcc/ChangeLog | 4 ++++ gcc/unwind-dw2.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 532d7ec8fa55..a073cc884f6e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-01-24 Geoffrey Keating + + * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap. + 2007-01-24 Jakub Jelinek PR middle-end/27416 diff --git a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c index 30d1652c1166..62c9d0913158 100644 --- a/gcc/unwind-dw2.c +++ b/gcc/unwind-dw2.c @@ -628,6 +628,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;