aboutsummaryrefslogtreecommitdiffstats
path: root/x86
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2016-11-08 15:03:55 +0100
committerXavier Leroy <xavier.leroy@inria.fr>2016-11-08 15:03:55 +0100
commit9baff1c0652a4234dd1e41a5d63eb3ff707dfc66 (patch)
tree7b643c6632c949d6c3aef43973d22b2e7f07eccd /x86
parent55edd9487813518d67566002d88cc7394cc0c61a (diff)
downloadcompcert-kvx-9baff1c0652a4234dd1e41a5d63eb3ff707dfc66.tar.gz
compcert-kvx-9baff1c0652a4234dd1e41a5d63eb3ff707dfc66.zip
x86: mark register rax as destroyed by calls
Calls to variadic or unprototyped functions set this register to reflect the number of arguments passed in XMM registers. Thus we must make sure that rax is not used to hold the pointer to the function being called. (Report by Michael Schmidt.)
Diffstat (limited to 'x86')
-rw-r--r--x86/Machregs.v2
1 files changed, 1 insertions, 1 deletions
diff --git a/x86/Machregs.v b/x86/Machregs.v
index 741081a6..04be0cd6 100644
--- a/x86/Machregs.v
+++ b/x86/Machregs.v
@@ -196,7 +196,7 @@ Definition destroyed_by_setstack (ty: typ): list mreg :=
end.
Definition destroyed_at_indirect_call: list mreg :=
- nil.
+ AX :: nil.
Definition temp_for_parent_frame: mreg :=
AX.