File tree Expand file tree Collapse file tree 1 file changed +4
-0
lines changed
internal/engine/wazevo/backend/isa/amd64 Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -1918,6 +1918,9 @@ func (m *machine) lowerCall(si *ssa.Instruction) {
1918
1918
for i := regalloc .RealReg (0 ); i < 16 ; i ++ {
1919
1919
m .insert (m .allocateInstr ().asDefineUninitializedReg (regInfo .RealRegToVReg [xmm0 + i ]))
1920
1920
}
1921
+ // Since Go 1.24 it may also use DX, which is not reserved for the function call's 3 args.
1922
+ // https://github.com/golang/go/blob/go1.24.0/src/runtime/memmove_amd64.s#L123
1923
+ m .insert (m .allocateInstr ().asDefineUninitializedReg (regInfo .RealRegToVReg [rdx ]))
1921
1924
}
1922
1925
1923
1926
if isDirectCall {
@@ -1933,6 +1936,7 @@ func (m *machine) lowerCall(si *ssa.Instruction) {
1933
1936
for i := regalloc .RealReg (0 ); i < 16 ; i ++ {
1934
1937
m .insert (m .allocateInstr ().asNopUseReg (regInfo .RealRegToVReg [xmm0 + i ]))
1935
1938
}
1939
+ m .insert (m .allocateInstr ().asNopUseReg (regInfo .RealRegToVReg [rdx ]))
1936
1940
}
1937
1941
1938
1942
var index int
You can’t perform that action at this time.
0 commit comments