[fpc-devel] Some Opcodes missing in internal assembler for mips32r2
sergei_gorelkin at mail.ru
Wed May 29 00:08:24 CEST 2013
29.05.2013 1:26, Michael Ring пишет:
> I did the changes, parts of the opcodes now work fine, I think I have found the problem with the li
> + and + mfc0 op-codes, if last parameter is 0 then the asm statement is generated wrong:
> This works:
> and $a0,$a0,1
> this does not work:
> and $a0,$a0,0
> result is:
> pic32mx1xxfxxxb.s:107: Error: absolute expression required `and $a0,$a0,'
So it is the value of operand that matters. I'll try to look at it, probably a bug in the parsing
part, because the output part doesn't have anything suspicious.
> I am now having troubles with the syntax for mfc0 and mtc0:
> mfc0 $t0,$12, 1 //_CP0_STATUS
> gets translated to:
> mfc0 $t0,$t4,1
> which the assembler does not like, it needs $12 and not $t4:
> pic32mx1xxfxxxb.s:37: Error: Illegal operands `mfc0 $t0,$t4,1'
> Any ideas what to do here?
This one is more complicated, we need at least to prevent register name translation (since $12 is a
coprocessor register, not a general-purpose one), at most handle such registers as a different
More information about the fpc-devel