From: Alex Dowad Date: Tue, 13 Oct 2015 21:58:43 +0000 (-0400) Subject: fix misinterpretation of indexed memory operand in i386 CFI generation X-Git-Tag: v1.1.12~14 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8cfdfa9c8fd84d4090bba54eb616a2c9361a076f;p=oweals%2Fmusl.git 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. --- 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()) }