aboutsummaryrefslogtreecommitdiff
path: root/src/arch/sparc64/bits.zig
diff options
context:
space:
mode:
authorKoakuma <koachan@protonmail.com>2022-05-06 23:16:07 +0700
committerKoakuma <koachan@protonmail.com>2022-05-16 23:17:11 +0700
commite057ff249648bdcd8cf2e9be62b40a2379de03e9 (patch)
tree832e5602be2becc2ba2ca7eaa1b1f6b23d6653e4 /src/arch/sparc64/bits.zig
parent8f8853cd4ff48237770d9eeb4ea4f83979e77b5b (diff)
downloadzig-e057ff249648bdcd8cf2e9be62b40a2379de03e9.tar.gz
zig-e057ff249648bdcd8cf2e9be62b40a2379de03e9.zip
stage2: sparc64: Implement SPARCv9 bpr
Diffstat (limited to 'src/arch/sparc64/bits.zig')
-rw-r--r--src/arch/sparc64/bits.zig4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/sparc64/bits.zig b/src/arch/sparc64/bits.zig
index b6d61900ce..cb7fe36810 100644
--- a/src/arch/sparc64/bits.zig
+++ b/src/arch/sparc64/bits.zig
@@ -1145,6 +1145,10 @@ pub const Instruction = union(enum) {
return format2c(0b001, .{ .icond = cond }, annul, pt, ccr, disp);
}
+ pub fn bpr(cond: RCondition, annul: bool, pt: bool, rs1: Register, disp: i18) Instruction {
+ return format2d(0b011, cond, annul, pt, rs1, disp);
+ }
+
pub fn jmpl(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
return switch (s2) {
Register => format3a(0b10, 0b11_1000, rs1, rs2, rd),