| ... | @@ -444,7 +444,7 @@ pub const SysV = struct { | ... | @@ -444,7 +444,7 @@ pub const SysV = struct { |
| 444 | /// These registers need to be preserved (saved on the stack) and restored by the caller before | 444 | /// These registers need to be preserved (saved on the stack) and restored by the caller before |
| 445 | /// the caller relinquishes control to a subroutine via call instruction (or similar). | 445 | /// the caller relinquishes control to a subroutine via call instruction (or similar). |
| 446 | /// In other words, these registers are free to use by the callee. | 446 | /// In other words, these registers are free to use by the callee. |
| 447 | pub const caller_preserved_regs = [_]Register{ .rax, .rcx, .rdx, .rsi, .rdi, .r8, .r9, .r10, .r11 }; | 447 | pub const caller_preserved_regs = [_]Register{ .rax, .rcx, .rdx, .rsi, .rdi, .r8, .r9, .r10, .r11 } ++ sse_avx_regs; |
| 448 | | 448 | |
| 449 | pub const c_abi_int_param_regs = [_]Register{ .rdi, .rsi, .rdx, .rcx, .r8, .r9 }; | 449 | pub const c_abi_int_param_regs = [_]Register{ .rdi, .rsi, .rdx, .rcx, .r8, .r9 }; |
| 450 | pub const c_abi_int_return_regs = [_]Register{ .rax, .rdx }; | 450 | pub const c_abi_int_return_regs = [_]Register{ .rax, .rdx }; |
| ... | @@ -457,7 +457,7 @@ pub const Win64 = struct { | ... | @@ -457,7 +457,7 @@ pub const Win64 = struct { |
| 457 | /// These registers need to be preserved (saved on the stack) and restored by the caller before | 457 | /// These registers need to be preserved (saved on the stack) and restored by the caller before |
| 458 | /// the caller relinquishes control to a subroutine via call instruction (or similar). | 458 | /// the caller relinquishes control to a subroutine via call instruction (or similar). |
| 459 | /// In other words, these registers are free to use by the callee. | 459 | /// In other words, these registers are free to use by the callee. |
| 460 | pub const caller_preserved_regs = [_]Register{ .rax, .rcx, .rdx, .r8, .r9, .r10, .r11 }; | 460 | pub const caller_preserved_regs = [_]Register{ .rax, .rcx, .rdx, .r8, .r9, .r10, .r11 } ++ sse_avx_regs; |
| 461 | | 461 | |
| 462 | pub const c_abi_int_param_regs = [_]Register{ .rcx, .rdx, .r8, .r9 }; | 462 | pub const c_abi_int_param_regs = [_]Register{ .rcx, .rdx, .r8, .r9 }; |
| 463 | pub const c_abi_int_return_regs = [_]Register{.rax}; | 463 | pub const c_abi_int_return_regs = [_]Register{.rax}; |