Skip to content

Commit 38146e3

Browse files
authored
x86 / Win64 ABI: fix inconsistency on callee-save XMM registers (#584)
`is_callee_save` was treating registers X6 and X7 as caller-save, while they are callee-save on Win64.
1 parent 0ef26da commit 38146e3

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

‎x86/Conventions1.v‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ Definition is_callee_save (r: mreg) : bool :=
3131
match r with
3232
| AX | CX | DX => false
3333
| BX | BP => true
34-
| SI | DI => negb Archi.ptr64 || Archi.win64 (**r callee-save in ELF 64 bits *)
34+
| SI | DI => negb Archi.ptr64 || Archi.win64 (**r caller-save in ELF 64 bits *)
3535
| R8 | R9 | R10 | R11 => false
3636
| R12 | R13 | R14 | R15 => true
37-
| X0 | X1 | X2 | X3 | X4 | X5 | X6 | X7 => false
38-
| X8 | X9 | X10 | X11 | X12 | X13 | X14 | X15 => Archi.win64
37+
| X0 | X1 | X2 | X3 | X4 | X5 => false
38+
| X6 | X7 | X8 | X9 | X10 | X11 | X12 | X13 | X14 | X15 => Archi.win64
3939
| FP0 => false
4040
end.
4141

0 commit comments

Comments
 (0)