mirror of
https://github.com/ziglang/zig.git
synced 2025-12-30 18:13:19 +00:00
Add missing clobbers to context switching
This only shows in release mode, the compiler tries to preserve some value in rdi, but that gets replaced inside the fiber. This would not happen in the C calling convention, but in these normal Zig functions, it can happen.
This commit is contained in:
parent
7d478114ec
commit
fcac8617b4
@ -644,6 +644,7 @@ inline fn contextSwitch(message: *const SwitchMessage) *const SwitchMessage {
|
||||
: [received_message] "={x1}" (-> *const @FieldType(SwitchMessage, "contexts")),
|
||||
: [message_to_send] "{x1}" (&message.contexts),
|
||||
: .{
|
||||
.x0 = true,
|
||||
.x1 = true,
|
||||
.x2 = true,
|
||||
.x3 = true,
|
||||
@ -745,6 +746,7 @@ inline fn contextSwitch(message: *const SwitchMessage) *const SwitchMessage {
|
||||
.rdx = true,
|
||||
.rbx = true,
|
||||
.rsi = true,
|
||||
.rdi = true,
|
||||
.r8 = true,
|
||||
.r9 = true,
|
||||
.r10 = true,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user