authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-07-09 14:46:11+07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-09-14 16:57:31-07:00
log844d3a5a74778ba76d5dc05c0dd747e7f8b85d4d
tree442647cb5829c8e9f6b75279b9358c650931e228
parent2263bba6cd544c31a6f5e1223503facb3d6c07e7

stage2: sparc64: Fix SPARCv9 shift opcodes encoding


1 files changed, 12 insertions(+), 12 deletions(-)

src/arch/sparc64/bits.zig+12-12
......@@ -1339,48 +1339,48 @@ pub const Instruction = union(enum) {
13391339
13401340 pub fn sll(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13411341 return switch (s2) {
1342 Register => format3k(0b11, 0b10_0101, .shift32, rs1, rs2, rd),
1343 u5 => format3l(0b11, 0b10_0101, rs1, rs2, rd),
1342 Register => format3k(0b10, 0b10_0101, .shift32, rs1, rs2, rd),
1343 u5 => format3l(0b10, 0b10_0101, rs1, rs2, rd),
13441344 else => unreachable,
13451345 };
13461346 }
13471347
13481348 pub fn srl(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13491349 return switch (s2) {
1350 Register => format3k(0b11, 0b10_0110, .shift32, rs1, rs2, rd),
1351 u5 => format3l(0b11, 0b10_0110, rs1, rs2, rd),
1350 Register => format3k(0b10, 0b10_0110, .shift32, rs1, rs2, rd),
1351 u5 => format3l(0b10, 0b10_0110, rs1, rs2, rd),
13521352 else => unreachable,
13531353 };
13541354 }
13551355
13561356 pub fn sra(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13571357 return switch (s2) {
1358 Register => format3k(0b11, 0b10_0111, .shift32, rs1, rs2, rd),
1359 u5 => format3l(0b11, 0b10_0111, rs1, rs2, rd),
1358 Register => format3k(0b10, 0b10_0111, .shift32, rs1, rs2, rd),
1359 u5 => format3l(0b10, 0b10_0111, rs1, rs2, rd),
13601360 else => unreachable,
13611361 };
13621362 }
13631363
13641364 pub fn sllx(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13651365 return switch (s2) {
1366 Register => format3k(0b11, 0b10_0101, .shift64, rs1, rs2, rd),
1367 u6 => format3m(0b11, 0b10_0101, rs1, rs2, rd),
1366 Register => format3k(0b10, 0b10_0101, .shift64, rs1, rs2, rd),
1367 u6 => format3m(0b10, 0b10_0101, rs1, rs2, rd),
13681368 else => unreachable,
13691369 };
13701370 }
13711371
13721372 pub fn srlx(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13731373 return switch (s2) {
1374 Register => format3k(0b11, 0b10_0110, .shift64, rs1, rs2, rd),
1375 u6 => format3m(0b11, 0b10_0110, rs1, rs2, rd),
1374 Register => format3k(0b10, 0b10_0110, .shift64, rs1, rs2, rd),
1375 u6 => format3m(0b10, 0b10_0110, rs1, rs2, rd),
13761376 else => unreachable,
13771377 };
13781378 }
13791379
13801380 pub fn srax(comptime s2: type, rs1: Register, rs2: s2, rd: Register) Instruction {
13811381 return switch (s2) {
1382 Register => format3k(0b11, 0b10_0111, .shift64, rs1, rs2, rd),
1383 u6 => format3m(0b11, 0b10_0111, rs1, rs2, rd),
1382 Register => format3k(0b10, 0b10_0111, .shift64, rs1, rs2, rd),
1383 u6 => format3m(0b10, 0b10_0111, rs1, rs2, rd),
13841384 else => unreachable,
13851385 };
13861386 }