Small fixes for d30v assembler
Nick Clifton
nickc@cygnus.com
Mon Mar 27 12:18:00 GMT 2000
Hi Guys,
I have checked in the patch below to fix a couple of bugs in the
D30V assembler that were thrown up by the D30V simulator test suite.
Cheers
Nick
2000-03-27 Nick Clifton <nickc@cygnus.com>
* d30v.h (SHORT_A1): Fix value.
(SHORT_AR): Renumber so that it is at the end of the list of short
instructions, not the end of the list of long instructions.
Index: include/opcode/d30v.h
===================================================================
RCS file: /cvs/src//src/include/opcode/d30v.h,v
retrieving revision 1.4
diff -p -r1.4 d30v.h
*** d30v.h 2000/03/02 23:01:40 1.4
--- d30v.h 2000/03/27 20:14:22
*************** struct d30v_opcode
*** 101,107 ****
#define SHORT_A5 36 /* SHORT_A with a 5-bit immediate instead of 6 */
#define SHORT_CMP 38 /* special form for CMPcc */
#define SHORT_CMPU 40 /* special form for CMPUcc */
! #define SHORT_A1 48 /* special form of SHORT_A for MACa opcodes where a=1 */
#define SHORT_AA 44 /* SHORT_A with the first register an accumulator */
#define SHORT_RA 46 /* SHORT_A with the second register an accumulator */
#define SHORT_MODINC 48
--- 101,107 ----
#define SHORT_A5 36 /* SHORT_A with a 5-bit immediate instead of 6 */
#define SHORT_CMP 38 /* special form for CMPcc */
#define SHORT_CMPU 40 /* special form for CMPUcc */
! #define SHORT_A1 42 /* special form of SHORT_A for MACa opcodes where a=1 */
#define SHORT_AA 44 /* SHORT_A with the first register an accumulator */
#define SHORT_RA 46 /* SHORT_A with the second register an accumulator */
#define SHORT_MODINC 48
*************** struct d30v_opcode
*** 111,130 ****
#define SHORT_UF 52
#define SHORT_A2 53
#define SHORT_NONE 55 /* no operands */
! #define LONG 56
! #define LONG_U 57 /* unary LONG */
! #define LONG_Ur 58 /* LONG pc-relative */
! #define LONG_CMP 59 /* special form for CMPcc and CMPUcc */
! #define LONG_M 60 /* Memory long for ldb, stb */
! #define LONG_M2 61 /* Memory long for ld2w, st2w */
! #define LONG_2 62 /* LONG with 2 operands; jmptnz */
! #define LONG_2r 63 /* LONG with 2 operands; bratnz */
! #define LONG_2b 64 /* LONG_2 with modifier of 3 */
! #define LONG_2br 65 /* LONG_2r with modifier of 3 */
! #define LONG_D 66 /* for DJMPI*/
! #define LONG_Dr 67 /* for DBRAI*/
! #define LONG_Dbr 68 /* for repeati*/
! #define SHORT_AR 69 /* like SHORT_AA but only accept register as third parameter */
/* the execution unit(s) used */
int unit;
--- 111,130 ----
#define SHORT_UF 52
#define SHORT_A2 53
#define SHORT_NONE 55 /* no operands */
! #define SHORT_AR 56 /* like SHORT_AA but only accept register as third parameter */
! #define LONG 57
! #define LONG_U 58 /* unary LONG */
! #define LONG_Ur 59 /* LONG pc-relative */
! #define LONG_CMP 60 /* special form for CMPcc and CMPUcc */
! #define LONG_M 61 /* Memory long for ldb, stb */
! #define LONG_M2 62 /* Memory long for ld2w, st2w */
! #define LONG_2 63 /* LONG with 2 operands; jmptnz */
! #define LONG_2r 64 /* LONG with 2 operands; bratnz */
! #define LONG_2b 65 /* LONG_2 with modifier of 3 */
! #define LONG_2br 66 /* LONG_2r with modifier of 3 */
! #define LONG_D 67 /* for DJMPI */
! #define LONG_Dr 68 /* for DBRAI */
! #define LONG_Dbr 69 /* for repeati */
/* the execution unit(s) used */
int unit;
2000-03-27 Nick Clifton <nickc@cygnus.com>
* d30v-opc.c (d30v_format_table): Move SHORT_AR to end of list of
short instructions, from end of list of long instructions.
Index: opcodes/d30v-opc.c
===================================================================
RCS file: /cvs/src//src/opcodes/d30v-opc.c,v
retrieving revision 1.4
diff -p -r1.4 d30v-opc.c
*** d30v-opc.c 2000/03/02 23:01:40 1.4
--- d30v-opc.c 2000/03/27 20:14:55
*************** const struct d30v_format d30v_format_tab
*** 468,473 ****
--- 468,474 ----
{ SHORT_A2, 0, { Ra2, Rb, Rc } }, /* Ra2,Rb,Rc */
{ SHORT_A2, 2, { Ra2, Rb, IMM6 } }, /* Ra2,Rb,imm6 */
{ SHORT_NONE, 0, { 0 } }, /* no operands (nop, reit) */
+ { SHORT_AR, 0, { Aa, Rb, Rc } }, /* Aa,Rb,Rc */
{ LONG, 2, { Ra, Rb, IMM32 } }, /* Ra,Rb,imm32 */
{ LONG_U, 2, { IMM32 } }, /* imm32 */
{ LONG_Ur, 2, { REL32 } }, /* rel32 */
*************** const struct d30v_format d30v_format_tab
*** 481,487 ****
{ LONG_D, 2, { REL6S3, IMM32 } }, /* rel6s3,imm32 */
{ LONG_Dr, 2, { REL6S3, REL32 } }, /* rel6s3,rel32 */
{ LONG_Dbr, 2, { IMM6U, REL32 } }, /* imm6,rel32 */
- { SHORT_AR, 0, { Aa, Rb, Rc } }, /* Aa,Rb,Rc */
{ 0, 0, { 0 } },
};
--- 482,487 ----
More information about the Binutils
mailing list