// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build ignore
// +build ignore
package main
reg: regInfo{
inputs: []regMask{buildReg("R1"), buildReg("R0")},
outputs: []regMask{buildReg("R0"), buildReg("R1")},
- clobbers: buildReg("R2 R3 R14"),
+ clobbers: buildReg("R2 R3 R12 R14"), // R14 is LR, R12 is linker trampoline scratch register
},
clobberFlags: true,
typ: "(UInt32,UInt32)",
argLength: 3,
reg: regInfo{
inputs: []regMask{buildReg("R1"), buildReg("R0")},
- clobbers: buildReg("R1 R14"),
+ clobbers: buildReg("R1 R12 R14"), // R14 is LR, R12 is linker trampoline scratch register
},
faultOnNilArg0: true,
},
argLength: 3,
reg: regInfo{
inputs: []regMask{buildReg("R2"), buildReg("R1")},
- clobbers: buildReg("R0 R1 R2 R14"),
+ clobbers: buildReg("R0 R1 R2 R12 R14"), // R14 is LR, R12 is linker trampoline scratch register
},
faultOnNilArg0: true,
faultOnNilArg1: true,
// LoweredWB invokes runtime.gcWriteBarrier. arg0=destptr, arg1=srcptr, arg2=mem, aux=runtime.gcWriteBarrier
// It saves all GP registers if necessary,
- // but clobbers R14 (LR) because it's a call.
- {name: "LoweredWB", argLength: 3, reg: regInfo{inputs: []regMask{buildReg("R2"), buildReg("R3")}, clobbers: (callerSave &^ gpg) | buildReg("R14")}, clobberFlags: true, aux: "Sym", symEffect: "None"},
+ // but clobbers R14 (LR) because it's a call, and R12 which is linker trampoline scratch register.
+ {name: "LoweredWB", argLength: 3, reg: regInfo{inputs: []regMask{buildReg("R2"), buildReg("R3")}, clobbers: (callerSave &^ gpg) | buildReg("R12 R14")}, clobberFlags: true, aux: "Sym", symEffect: "None"},
}
blocks := []blockData{
{0, 2}, // R1
{1, 1}, // R0
},
- clobbers: 16396, // R2 R3 R14
+ clobbers: 20492, // R2 R3 R12 R14
outputs: []outputInfo{
{0, 1}, // R0
{1, 2}, // R1
{0, 2}, // R1
{1, 1}, // R0
},
- clobbers: 16386, // R1 R14
+ clobbers: 20482, // R1 R12 R14
},
},
{
{0, 4}, // R2
{1, 2}, // R1
},
- clobbers: 16391, // R0 R1 R2 R14
+ clobbers: 20487, // R0 R1 R2 R12 R14
},
},
{
{0, 4}, // R2
{1, 8}, // R3
},
- clobbers: 4294918144, // R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
+ clobbers: 4294922240, // R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
},
},