This is the mail archive of the
mailing list for the binutils project.
Re: In the RX toolchain, the 'opcode' generated for register relative addressing with '0' displacement value is incorrect.
- From: Nick Clifton <nickc at redhat dot com>
- To: "Vinay Kumar. G" <Vinay dot G at kpit dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Tue, 8 Sep 2015 12:23:35 +0100
- Subject: Re: In the RX toolchain, the 'opcode' generated for register relative addressing with '0' displacement value is incorrect.
- Authentication-results: sourceware.org; auth=none
- References: <HKXPR03MB05676B21486D1247CABA267493530 at HKXPR03MB0567 dot apcprd03 dot prod dot outlook dot com>
The RX toolchain does not generate correct 'opcode' for register relative addressing mode using '0' displacement value.
The below example is for "mov.b [Rs],dsp:5[Rd]" and "mov.b dsp:5[Rs],[Rd]" instructions.
The same issue is also observed with "mov.w" and "mov.l" instructions.
The patch is good, but I do not think that it goes far enough. There
are other versions of the MOV instruction that have alternative
zero-displacement formats. For example:
mov.b #0xff, [r0] => encodes as; 3c 00 00
mov.b #0xff, 0[r0] => should encode as: f9 04 00 ff
Could you look into these as well please ?