From e92c9d66d3ea1298dd34f857faf4d85e9c5d2407 Mon Sep 17 00:00:00 2001 From: Tomer Levi Date: Mon, 25 Oct 2004 09:30:55 +0000 Subject: 1. Check unsigned immediate operands validity. 2. Update coprocessor id to be unsigned immediate. --- gas/config/tc-crx.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gas') diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c index b1063a0..e3145f5 100644 --- a/gas/config/tc-crx.c +++ b/gas/config/tc-crx.c @@ -2071,6 +2071,21 @@ assemble_insn (char *mnemonic, ins *insn) done_flag = (post_inc_mode == IS_INSN_TYPE (LD_STOR_INS_INC)); } + if (done_flag) + { + for (i = 0; i < insn->nargs; i++) + { + if (((instruction->operands[i].op_type == us3) + || (instruction->operands[i].op_type == us4) + || (instruction->operands[i].op_type == us5)) + && (insn->arg[i].signflag == 1)) + { + done_flag = 0; + break; + } + } + } + if (done_flag == 0) { /* Try again with next instruction. */ @@ -2118,7 +2133,7 @@ assemble_insn (char *mnemonic, ins *insn) || IS_INSN_TYPE (COP_BRANCH_INS)) { /* The coprocessor id is always the first argument. */ - if ((instruction->operands[0].op_type == i4) + if ((instruction->operands[0].op_type == us4) && (insn->arg[0].constant == 0) && (! IS_INSN_MNEMONIC ("mtcr") && ! IS_INSN_MNEMONIC ("mfcr"))) -- cgit v1.1