Home

ragnarok2040


Project Admins:


  • ragnarok2040
    ragnarok2040
    2012-12-22

    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:

    • $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