mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-06 23:02:10 +03:00
fix instruction matching errors in i386 CFI generation
fdiv and fmul instructions were wrongly matched by the rules for integer div and mul instructions, leading to incorrect conclusions about register values being clobbered.
This commit is contained in:
parent
0650a05947
commit
dc97951402
@ -188,9 +188,9 @@ function trashed(register) {
|
||||
/(add|addl|sub|subl|and|or|xor|lea|sal|sar|shl|shr) %e(ax|bx|cx|dx|si|di|bp),/ {
|
||||
trashed(get_reg1())
|
||||
}
|
||||
/i?mul [^,]*$/ { trashed("eax"); trashed("edx") }
|
||||
/i?mul %e(ax|bx|cx|dx|si|di|bp),/ { trashed(get_reg1()) }
|
||||
/i?div/ { trashed("eax"); trashed("edx") }
|
||||
/^i?mul [^,]*$/ { trashed("eax"); trashed("edx") }
|
||||
/^i?mul %e(ax|bx|cx|dx|si|di|bp),/ { trashed(get_reg1()) }
|
||||
/^i?div/ { trashed("eax"); trashed("edx") }
|
||||
/(dec|inc|not|neg|pop) %e(ax|bx|cx|dx|si|di|bp)/ { trashed(get_reg()) }
|
||||
/cpuid/ { trashed("eax"); trashed("ebx"); trashed("ecx"); trashed("edx") }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user