The new syntax requires that VU0 register names be prefixed with a '$' symbol and only single digit numerals be used for registers 0 through 9.
For example:
$vf0-$vf9
$vf10-$vf31
$vi0-$vf9
$vi10-$vi31
Numerical register names are to be used for the transfer instructions lqc2/sqc2/ctc2/cfc2/qmtc2/qmfc2.
For example:
$0-$9
$10-$31
The "vcallms" instruction only takes immediate expressions, now. The assembler divides the value given by 8 implicitly.
The "vcallmsr" instruction takes no arguments now. It didn't need the "vi27" operand, since it was set as part of the instruction. I don't think it was possible to change the register number.
Options:
-mr5900-legacy-vu0
This option enables support for legacy VU0 register name syntax.
The '$' symbol becomes optional.
Double digits can be used for registers 0 through 9.
VU0 register names can be used for transfer instructions.
For example:
$vf0-$vf9
$vf10-$vf31
$vi0-$vf9
$vi10-$vi31
vf00-vf09
vf10-vf31
vi00-vf09
vi10-vi31
$vf00-$vf09
$vf10-$vf31
$vi00-$vf09
$vi10-$vi31
Errata
This option enables integer and floating point register names to be used interchangeably for the ctc2/cfc2/qmtc2/qmfc2 instructions. Make sure to keep track.
-mhard-ldsd
This forces the assembler to output a hardware "ld/sd" instruction regardless of ABI/ISA. This simulates the prior behavior of the r5900 toolchain, but should only be used for debugging purposes.
Last edit: ragnarok2040 2012-12-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
New changes
VU0 Syntax:
The new syntax requires that VU0 register names be prefixed with a '$' symbol and only single digit numerals be used for registers 0 through 9.
For example:
Numerical register names are to be used for the transfer instructions lqc2/sqc2/ctc2/cfc2/qmtc2/qmfc2.
For example:
The "vcallms" instruction only takes immediate expressions, now. The assembler divides the value given by 8 implicitly.
The "vcallmsr" instruction takes no arguments now. It didn't need the "vi27" operand, since it was set as part of the instruction. I don't think it was possible to change the register number.
Options:
-mr5900-legacy-vu0
This option enables support for legacy VU0 register name syntax.
The '$' symbol becomes optional.
Double digits can be used for registers 0 through 9.
VU0 register names can be used for transfer instructions.
For example:
Errata
This option enables integer and floating point register names to be used interchangeably for the ctc2/cfc2/qmtc2/qmfc2 instructions. Make sure to keep track.
-mhard-ldsd
This forces the assembler to output a hardware "ld/sd" instruction regardless of ABI/ISA. This simulates the prior behavior of the r5900 toolchain, but should only be used for debugging purposes.
Last edit: ragnarok2040 2012-12-22