feat(v5te): implement clz

This commit is contained in:
Rekai Nyangadzayi Musuka 2023-09-06 22:55:18 -05:00
parent ea3db88bec
commit 44b59512c0
1 changed files with 4 additions and 0 deletions

View File

@ -19,6 +19,8 @@ pub const arm = struct {
const cop = @import("cpu/arm/coprocessor.zig");
const clz = @import("cpu/arm/misc_instructions.zig").clz;
/// Determine index into ARM InstrFn LUT
pub fn idx(opcode: u32) u12 {
// FIXME: omit these?
@ -40,6 +42,8 @@ pub const arm = struct {
handler.* = switch (@as(u2, i >> 10)) {
0b00 => if (i == 0x121) blk: {
break :blk branchExchange(InstrFn);
} else if (i == 0x161) blk: {
break :blk clz(InstrFn);
} else if (i & 0xFCF == 0x009) blk: {
const A = i >> 5 & 1 == 1;
const S = i >> 4 & 1 == 1;