GNURX toolchain generates incorrect opcode for "mov.b #0xff, [r0]" instruction.
Nick Clifton
nickc@redhat.com
Wed Feb 3 14:53:00 GMT 2016
Hi Vinay,
> + | MOV DOT_B '#' EXPR ',' '[' REG ']'
> + { B2 (0xf8, 0x04); IMMB ($4, 12);}
> However I am still facing issue with registers other than r0 like r1-r15. Can you please give
> some hints how to go about with this.
As DJ explained, you need an extra instruction inside these patterns in order to insert the register value. IE:
| MOV DOT_B '#' EXPR ',' '[' REG ']'
{ B2 (0xf8, 0x04); F ($7, 9, 3); IMMB ($4, 12);}
| MOV DOT_W '#' EXPR ',' '[' REG ']'
{ B2 (0xf8, 0x01); F ($7, 9, 3); IMMW ($4, 12);}
| MOV DOT_L '#' EXPR ',' '[' REG ']'
{ B2 (0xf8, 0x02); F ($7, 9, 3); IMM ($4, 12);}
Cheers
Nick
More information about the Binutils
mailing list