diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2016-11-08 15:03:55 +0100 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2016-11-08 15:03:55 +0100 |
commit | 9baff1c0652a4234dd1e41a5d63eb3ff707dfc66 (patch) | |
tree | 7b643c6632c949d6c3aef43973d22b2e7f07eccd | |
parent | 55edd9487813518d67566002d88cc7394cc0c61a (diff) | |
download | compcert-9baff1c0652a4234dd1e41a5d63eb3ff707dfc66.tar.gz compcert-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.)
-rw-r--r-- | x86/Machregs.v | 2 |
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. |