chore: remove unnecessary @as calls

This commit is contained in:
2022-02-05 21:01:39 -04:00
parent aa6f3c7a92
commit 2842345111
9 changed files with 41 additions and 43 deletions

View File

@@ -10,9 +10,9 @@ pub fn format14(comptime L: bool, comptime R: bool) InstrFn {
// POP
address = cpu.r[13];
var i: usize = 0;
var i: u4 = 0;
while (i < 8) : (i += 1) {
if ((opcode >> @truncate(u3, i)) & 1 == 1) {
if ((opcode >> i) & 1 == 1) {
cpu.r[i] = bus.read32(address);
address += 4;
}
@@ -31,11 +31,11 @@ pub fn format14(comptime L: bool, comptime R: bool) InstrFn {
address -= 4;
}
var i: usize = 8;
var i: u4 = 8;
while (i > 0) : (i -= 1) {
const j = i - 1;
if ((opcode >> @truncate(u3, j)) & 1 == 1) {
if ((opcode >> j) & 1 == 1) {
bus.write32(address, cpu.r[j]);
address -= 4;
}

View File

@@ -47,7 +47,7 @@ pub fn format19(comptime is_low: bool) InstrFn {
cpu.r[14] = old_pc | 1;
} else {
// Instruction 1
cpu.r[14] = (cpu.r[15] + 2) +% (u32SignExtend(11, @as(u32, offset)) << 12);
cpu.r[14] = (cpu.r[15] + 2) +% (u32SignExtend(11, offset) << 12);
}
}
}.inner;

View File

@@ -60,14 +60,14 @@ pub fn format2(comptime I: bool, is_sub: bool, rn: u3) InstrFn {
if (is_sub) {
// SUB
cpu.r[rd] = if (I) blk: {
break :blk sub(true, cpu, cpu.r[rs], @as(u32, rn));
break :blk sub(true, cpu, cpu.r[rs], rn);
} else blk: {
break :blk sub(true, cpu, cpu.r[rs], cpu.r[rn]);
};
} else {
// ADD
cpu.r[rd] = if (I) blk: {
break :blk add(true, cpu, cpu.r[rs], @as(u32, rn));
break :blk add(true, cpu, cpu.r[rs], rn);
} else blk: {
break :blk add(true, cpu, cpu.r[rs], cpu.r[rn]);
};

View File

@@ -36,12 +36,12 @@ pub fn format78(comptime op: u2, comptime T: bool) InstrFn {
},
0b01 => {
// LDSB
cpu.r[rd] = u32SignExtend(8, @as(u32, bus.read8(address)));
cpu.r[rd] = u32SignExtend(8, bus.read8(address));
},
0b10 => {
// LDRH
const value = bus.read16(address & 0xFFFF_FFFE);
cpu.r[rd] = std.math.rotr(u32, @as(u32, value), 8 * (address & 1));
cpu.r[rd] = std.math.rotr(u32, value, 8 * (address & 1));
},
0b11 => {
// LDRSH
@@ -123,7 +123,7 @@ pub fn format10(comptime L: bool, comptime offset: u5) InstrFn {
if (L) {
// LDRH
const value = bus.read16(address & 0xFFFF_FFFE);
cpu.r[rd] = std.math.rotr(u32, @as(u32, value), 8 * (address & 1));
cpu.r[rd] = std.math.rotr(u32, value, 8 * (address & 1));
} else {
// STRH
bus.write16(address & 0xFFFF_FFFE, @truncate(u16, cpu.r[rd]));