mirror of
https://github.com/FranLMSP/rultra64.git
synced 2026-01-01 07:51:34 -05:00
First commit - define CPU, COP0 and COP1 registers
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target
|
||||
7
Cargo.lock
generated
Normal file
7
Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "rultra64"
|
||||
version = "0.1.0"
|
||||
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
@@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "rultra64"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
3
src/bin/main.rs
Normal file
3
src/bin/main.rs
Normal file
@@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
||||
1
src/lib.rs
Normal file
1
src/lib.rs
Normal file
@@ -0,0 +1 @@
|
||||
pub mod registers;
|
||||
77
src/registers.rs
Normal file
77
src/registers.rs
Normal file
@@ -0,0 +1,77 @@
|
||||
pub struct Register<T: PartialOrd + Copy>(T);
|
||||
|
||||
pub struct CPURegisters {
|
||||
zero: Register<u64>,
|
||||
at: Register<u64>,
|
||||
v0: Register<u64>,
|
||||
v1: Register<u64>,
|
||||
a0: Register<u64>,
|
||||
a1: Register<u64>,
|
||||
a2: Register<u64>,
|
||||
a3: Register<u64>,
|
||||
t0: Register<u64>,
|
||||
t1: Register<u64>,
|
||||
t2: Register<u64>,
|
||||
t3: Register<u64>,
|
||||
t4: Register<u64>,
|
||||
t5: Register<u64>,
|
||||
t6: Register<u64>,
|
||||
t7: Register<u64>,
|
||||
s0: Register<u64>,
|
||||
s1: Register<u64>,
|
||||
s2: Register<u64>,
|
||||
s3: Register<u64>,
|
||||
s4: Register<u64>,
|
||||
s5: Register<u64>,
|
||||
s6: Register<u64>,
|
||||
s7: Register<u64>,
|
||||
t8: Register<u64>,
|
||||
t9: Register<u64>,
|
||||
k0: Register<u64>,
|
||||
k1: Register<u64>,
|
||||
gp: Register<u64>,
|
||||
sp: Register<u64>,
|
||||
s8: Register<u64>,
|
||||
ra: Register<u64>,
|
||||
|
||||
program_counter: Register<u64>,
|
||||
}
|
||||
|
||||
pub struct COP0Registers {
|
||||
index: Register<u32>,
|
||||
random: Register<u32>,
|
||||
entry_lo_0: Register<u64>,
|
||||
entry_lo_1: Register<u64>,
|
||||
context: Register<u64>,
|
||||
page_mask: Register<u32>,
|
||||
wired: Register<u32>,
|
||||
r7: Register<u64>,
|
||||
bad_v_addr: Register<u64>,
|
||||
count: Register<u32>,
|
||||
entry_hi: Register<u64>,
|
||||
compare: Register<u32>,
|
||||
status: Register<u32>,
|
||||
cause: Register<u32>,
|
||||
epc: Register<u64>,
|
||||
prid: Register<u32>,
|
||||
config: Register<u32>,
|
||||
ll_addr: Register<u32>,
|
||||
watch_lo: Register<u32>,
|
||||
watch_hi: Register<u32>,
|
||||
x_context: Register<u64>,
|
||||
r21: Register<u64>,
|
||||
r22: Register<u64>,
|
||||
r23: Register<u64>,
|
||||
r24: Register<u64>,
|
||||
r25: Register<u64>,
|
||||
parity_error: Register<u32>,
|
||||
cache_error: Register<u32>,
|
||||
tag_lo: Register<u32>,
|
||||
tag_hi: Register<u32>,
|
||||
error_epc: Register<u64>,
|
||||
r31: Register<u64>,
|
||||
}
|
||||
|
||||
pub struct COP1Registers {
|
||||
registers: [Register<f32>; 32],
|
||||
}
|
||||
Reference in New Issue
Block a user