From 8cfdfa9c8fd84d4090bba54eb616a2c9361a076f Mon Sep 17 00:00:00 2001 From: Alex Dowad Date: Tue, 13 Oct 2015 17:58:43 -0400 Subject: [PATCH] fix misinterpretation of indexed memory operand in i386 CFI generation a register used as an index in the memory destination of a mov instruction was wrongly interpreted as the destination of the mov. --- tools/add-cfi.i386.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/add-cfi.i386.awk b/tools/add-cfi.i386.awk index 231d67ed..bd7932f1 100644 --- a/tools/add-cfi.i386.awk +++ b/tools/add-cfi.i386.awk @@ -184,7 +184,7 @@ function trashed(register) { } # this does NOT exhaustively check for all possible instructions which could # overwrite a register value inherited from the caller (just the common ones) -/mov.*,%e(ax|bx|cx|dx|si|di|bp)/ { trashed(get_reg2()) } +/mov.*,%e(ax|bx|cx|dx|si|di|bp)$/ { trashed(get_reg2()) } /(add|addl|sub|subl|and|or|xor|lea|sal|sar|shl|shr).*,%e(ax|bx|cx|dx|si|di|bp)$/ { trashed(get_reg2()) } -- 2.25.1