 |
forums.ps2dev.org Homebrew PS2, PSP & PS3 Development Discussions
|
| View previous topic :: View next topic |
| Author |
Message |
Panajev2001a
Joined: 20 Aug 2005 Posts: 100
|
Posted: Sun Aug 28, 2005 5:33 am Post subject: More PSP ASM help (msub.s and others) |
|
|
/cygdrive/c/DOCUME~1/Panajev/LOCALS~1/Temp/ccefmJ9B.s:117: Error: unrecognized opcode `pmaxw $8,$8,$0'
/cygdrive/c/DOCUME~1/Panajev/LOCALS~1/Temp/ccefmJ9B.s:125: Error: unrecognized opcode `adda'
/cygdrive/c/DOCUME~1/Panajev/LOCALS~1/Temp/ccefmJ9B.s:126: Error: opcode not supported on this processor: allegrex (mips2) `msub.s $f0,$f13,$f0'
Now, I do understand that a MMI-EE core specific instruction such as pmaxw, but msub.s is MIPS I (is it really unsupported ?) and it gives me problems with adda.s which I write as "adda.s\t$f1, $f8\n"
Does anyone know why this happens ? |
|
| Back to top |
|
 |
mrbrown
Joined: 17 Jan 2004 Posts: 1536
|
Posted: Sun Aug 28, 2005 5:49 am Post subject: |
|
|
msub.s is not MIPS ISA 1, it's MIPS ISA 4. You want add.s instead of adda.s.
It looks as though you are trying to convert R5900 asm to ALLEGREX asm, and, well, that just won't work :). |
|
| Back to top |
|
 |
mrbrown
Joined: 17 Jan 2004 Posts: 1536
|
Posted: Sun Aug 28, 2005 5:50 am Post subject: |
|
|
| mrbrown wrote: | | You want add.s instead of adda.s. |
Actually, adda.s is adding to the accumulator from the msub.s instruction, so no, that's not supported either. |
|
| Back to top |
|
 |
Panajev2001a
Joined: 20 Aug 2005 Posts: 100
|
Posted: Sun Aug 28, 2005 9:05 am Post subject: |
|
|
| mrbrown wrote: | | msub.s is not MIPS ISA 1, it's MIPS ISA 4. You want add.s instead of adda.s. |
Sorry, I went by the EE Instruction Manual which lists MSUB.S as MIPS I and not MIPS II, MIPS III or MIPS IV.
| Quote: | | It looks as though you are trying to convert R5900 asm to ALLEGREX asm, and, well, that just won't work :). |
Of course I was taking R5900 ASM as base, I said so in my post :D.
I am in the process of seeing what I can do to go around the problems, but I find hard to believe the R4000i in ALLEGREX does not have an ACCumulator register and thus it does not support instructions like adda.s or msub or madd (all require an accumulator unless the FMAC in the scalar FPU in ALLEGREX is really a FMADD unit... is it ?)... |
|
| Back to top |
|
 |
mrbrown
Joined: 17 Jan 2004 Posts: 1536
|
Posted: Sun Aug 28, 2005 9:36 am Post subject: |
|
|
| Panajev2001a wrote: | | I am in the process of seeing what I can do to go around the problems, but I find hard to believe the R4000i in ALLEGREX does not have an ACCumulator register and thus it does not support instructions like adda.s or msub or madd (all require an accumulator unless the FMAC in the scalar FPU in ALLEGREX is really a FMADD unit... is it ?)... |
Who knows? I don't have any official ALLEGREX documentation. I do know that the FPU is based off of the MIPS I ISA, and that the ALLEGREX is not a R4000 - it only borrows a few features from the R4000. The FPU does not support any multiply and add/subtract instructions, period.
The whole 'MIPS R4000' thing is just bad Sony marketing doing it's work, confusing people into thinking that they can pick up a R4000 manual and that's the ALLEGREX :). The ALLEGREX is a cut'n'paste job like the R5900 was - just not as goofy.
If you want a (almost) complete list of all of the ALLEGREX opcodes that we currently know about, grab the binutils 2.16 patch and look in opcodes/mips-opc.c. Any opcodes that have I1, I2, or AL in the last field are supported on the ALLEGREX. |
|
| Back to top |
|
 |
Panajev2001a
Joined: 20 Aug 2005 Posts: 100
|
Posted: Sun Aug 28, 2005 4:33 pm Post subject: |
|
|
| mrbrown wrote: | | Panajev2001a wrote: | | I am in the process of seeing what I can do to go around the problems, but I find hard to believe the R4000i in ALLEGREX does not have an ACCumulator register and thus it does not support instructions like adda.s or msub or madd (all require an accumulator unless the FMAC in the scalar FPU in ALLEGREX is really a FMADD unit... is it ?)... |
Who knows? I don't have any official ALLEGREX documentation. I do know that the FPU is based off of the MIPS I ISA, and that the ALLEGREX is not a R4000 - it only borrows a few features from the R4000. The FPU does not support any multiply and add/subtract instructions, period.
The whole 'MIPS R4000' thing is just bad Sony marketing doing it's work, confusing people into thinking that they can pick up a R4000 manual and that's the ALLEGREX :). The ALLEGREX is a cut'n'paste job like the R5900 was - just not as goofy.
If you want a (almost) complete list of all of the ALLEGREX opcodes that we currently know about, grab the binutils 2.16 patch and look in opcodes/mips-opc.c. Any opcodes that have I1, I2, or AL in the last field are supported on the ALLEGREX. |
Thanks for the details, it kinda makes sense for the FPU to be that way when you have the VFPU sitting next to it... too bad we cannot use it yet :). |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|