Paul Holden
|
4fe6b601ca
|
Implement LLD using setRegU64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
ac1fc58674
|
Implement generateOR and generateNOR using 64 bit instructions.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
4e5faed89d
|
Implement MFHI, MFLO, MTHI, MTLO using 64 bit moves.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
50e197da2d
|
Rename sourceBits etc to sBits.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
36b21e458d
|
Reorder methods.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
e6c142df87
|
Tidy cpu1 64 bit reg handling.
* rename _i64_bigint to S64/U64.
* load bigints directly
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
b716262709
|
Rename store_i64_bigint to storeU64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
f837124293
|
Rename load_i32, load_f32, load_f64. Remove load_i64_number.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
0193cff714
|
Rename store_f32 and store_f64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
57777532fb
|
store_64_hi_lo is unused.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
8f2fce8b15
|
Implement store_i64_bigint by directly writing to BigUint64Array.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
3a0b92368c
|
Implement LD and LDC1 using load_u64_bigint.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
32e2b51ad1
|
Fix cpu1 regnames.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
813dfc1cb1
|
Remove store_i64_number (unused).
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
5b19ee49b5
|
Rename store_i32 to storeS32.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
86f2e3aa31
|
Add regS64 and regU64. Zero the entire register.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
b978987fd8
|
Rename CPU1 registers.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
c8a7c63873
|
Implement branches using BigInt.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
f9c5221f27
|
Use camelCase for naming locals.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
1fc193b592
|
Tidy SDC1.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
cab7e12a11
|
Use BigIntArray to store results from DIV, DIVU, DDIV, DDIVU.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
89d6ffebe8
|
Store DMULT/DMULTU results using BigIntArray.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
cedba906d5
|
Add BigInt64Arrays for multlo/multhi and write results from MULT and MULTU without shifts.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
6e1b1c1db5
|
Rename multHi/multLo for consistency with other naming.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
700a90c780
|
Implement SLT using BigInt.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
7aab0895db
|
Implement SLTIU using BigInt.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
7559b4e34c
|
Implement XORI using BigInt.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
62175a6920
|
Implement ANDI using BigInt.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
ebac030546
|
Implement ORI using BigInt.
I don't think the s==t optimisation is worth the extra complexity.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
09b3d994b5
|
Implement AND, OR, XOR, NOR using BigInt.
It's simpler and benchmarks show this is faster: https://www.measurethat.net/Benchmarks/Show/26326/0/and-for-vr4300
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
a1a7b7b0be
|
Rename setGPR_s64_lo_hi to setRegS64LoHi.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
d79e489c3f
|
Rename setGPR_s32_lo to setRegS32Lo.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
588cf43e82
|
Rename setGPR_s32_signed to setRegS32Extend.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
ca4c5c98d6
|
Rename setGPR_s32_unsigned to setRegU32Extend.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
0c129a13c2
|
Tidy
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
52a28469b2
|
Rename genSrcRegHi to genSrcRegS32Hi.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
05cd851892
|
Rename genSrcRegLo to genSrcRegS32Lo.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
8ed22f39d8
|
Rename getGPR_s32_signed to getRegS32Lo.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
288c85f421
|
Rename getGPR_s32_unsigned to getRegU32Lo.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
16bcc85755
|
Log bad pagemasks rather than halting.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
592f4275f5
|
Rename getGPR_s32_hi_signed to getRegS32Hi.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
d9353b8c3b
|
Rename getGPR_s32_hi_unsigned to getRegU32Hi.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
7909b9d78d
|
Rename setGPR_s64_bigint to setRegU64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
92ec14244e
|
Tidy
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
9809ec3797
|
Rename getGPR_u64_bigint to getRegU64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
11f7311599
|
Rename getGPR_s64_bigint to getRegS64.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
1818713416
|
Add BigUint64Array so 64 bit values can be read directly.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
1707567f1d
|
Interleave gprLo/Hi into a single array.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
6d56faf6eb
|
Use register accessors.
|
2023-09-23 22:17:54 +01:00 |
|
Paul Holden
|
e4a7173857
|
Clean up the last few uses of gprLo_signed.
|
2023-09-23 22:17:54 +01:00 |
|