feat: Get ZBA working on Zig's new stage2/stage3 compiler

This commit is contained in:
Rekai Nyangadzayi Musuka 2022-08-21 12:28:02 -05:00
parent 3c3c0d32dd
commit 2ab8769b7a
3 changed files with 5 additions and 5 deletions

@ -1 +1 @@
Subproject commit 401c50ff3d0b83ad4bd89caf580ce1bd90fb5618 Subproject commit d66925011971fbe221fc2a7f7cb4cd8c181d9ba3

View File

@ -14,7 +14,7 @@ fn PtrCastPreserveCV(comptime T: type, comptime PtrToT: type, comptime NewT: typ
fn BitType(comptime FieldType: type, comptime ValueType: type, comptime shamt: usize) type { fn BitType(comptime FieldType: type, comptime ValueType: type, comptime shamt: usize) type {
const self_bit: FieldType = (1 << shamt); const self_bit: FieldType = (1 << shamt);
return struct { return extern struct {
bits: Bitfield(FieldType, shamt, 1), bits: Bitfield(FieldType, shamt, 1),
pub fn set(self: anytype) void { pub fn set(self: anytype) void {
@ -63,7 +63,7 @@ pub fn Bitfield(comptime FieldType: type, comptime shamt: usize, comptime num_bi
const ValueType = std.meta.Int(.unsigned, num_bits); const ValueType = std.meta.Int(.unsigned, num_bits);
return struct { return extern struct {
dummy: FieldType, dummy: FieldType,
fn field(self: anytype) PtrCastPreserveCV(@This(), @TypeOf(self), FieldType) { fn field(self: anytype) PtrCastPreserveCV(@This(), @TypeOf(self), FieldType) {

View File

@ -12,7 +12,7 @@ const File = std.fs.File;
// ARM Instructions // ARM Instructions
pub const arm = struct { pub const arm = struct {
pub const InstrFn = fn (*Arm7tdmi, *Bus, u32) void; pub const InstrFn = *const fn (*Arm7tdmi, *Bus, u32) void;
const lut: [0x1000]InstrFn = populate(); const lut: [0x1000]InstrFn = populate();
const processing = @import("cpu/arm/data_processing.zig").dataProcessing; const processing = @import("cpu/arm/data_processing.zig").dataProcessing;
@ -110,7 +110,7 @@ pub const arm = struct {
// THUMB Instructions // THUMB Instructions
pub const thumb = struct { pub const thumb = struct {
pub const InstrFn = fn (*Arm7tdmi, *Bus, u16) void; pub const InstrFn = *const fn (*Arm7tdmi, *Bus, u16) void;
const lut: [0x400]InstrFn = populate(); const lut: [0x400]InstrFn = populate();
const processing = @import("cpu/thumb/data_processing.zig"); const processing = @import("cpu/thumb/data_processing.zig");