Closed mkst closed 4 months ago
Why remove this? I think most of the n64 compilers we support the o32 abi float regs in one way or another. They are easier to read and overall make more sense
Someone in the public discord was experiencing where gnu as was choking on these registers:
(MyEnv) san@san:~/ssbd$ mips-linux-gnu-as -Iinclude -march=vr4300 -mabi=32 -o bin/ovl7.o asm/ovl7.s
asm/ovl7.s: Assembler messages:
asm/ovl7.s:439: Error: invalid operands `mtc1 $zero,$fv0'
asm/ovl7.s:445: Error: invalid operands `mtc1 $at,$ft0'
asm/ovl7.s:451: Error: invalid operands `swc1 $fv0,0x30($sp)'
asm/ovl7.s:452: Error: invalid operands `swc1 $fv0,0x28($sp)'
Since they are using modern gas to assemble files then they should slap this on their macro.inc
file
# Float register aliases (o32 ABI, odd ones are rarely used)
.set $fv0, $f0
.set $fv0f, $f1
.set $fv1, $f2
.set $fv1f, $f3
.set $ft0, $f4
.set $ft0f, $f5
.set $ft1, $f6
.set $ft1f, $f7
.set $ft2, $f8
.set $ft2f, $f9
.set $ft3, $f10
.set $ft3f, $f11
.set $fa0, $f12
.set $fa0f, $f13
.set $fa1, $f14
.set $fa1f, $f15
.set $ft4, $f16
.set $ft4f, $f17
.set $ft5, $f18
.set $ft5f, $f19
.set $fs0, $f20
.set $fs0f, $f21
.set $fs1, $f22
.set $fs1f, $f23
.set $fs2, $f24
.set $fs2f, $f25
.set $fs3, $f26
.set $fs3f, $f27
.set $fs4, $f28
.set $fs4f, $f29
.set $fs5, $f30
.set $fs5f, $f31
They are bound to have a macro.inc
file either way, since splat relies on it for stuff like glabel
also align the allowed values with the same values as spimdisasm.