2013-04-30 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
* config/tc-mips.c (mips_ip): Add sizelo. For "+C", "+G", and "+H", set sizelo and compare against it.
This commit is contained in:
parent
49fcdb99e2
commit
f02d83189e
@ -1,3 +1,8 @@
|
||||
2013-04-30 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
|
||||
|
||||
* config/tc-mips.c (mips_ip): Add sizelo.
|
||||
For "+C", "+G", and "+H", set sizelo and compare against it.
|
||||
|
||||
2013-04-29 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* as.c (Options): Add -gdwarf-sections.
|
||||
|
@ -10790,6 +10790,7 @@ mips_ip (char *str, struct mips_cl_insn *ip)
|
||||
unsigned int destregno = 0;
|
||||
unsigned int lastpos = 0;
|
||||
unsigned int limlo, limhi;
|
||||
int sizelo;
|
||||
char *s_reset;
|
||||
offsetT min_range, max_range;
|
||||
long opend;
|
||||
@ -11374,23 +11375,25 @@ mips_ip (char *str, struct mips_cl_insn *ip)
|
||||
case 'C': /* ext size, becomes MSBD. */
|
||||
limlo = 1;
|
||||
limhi = 32;
|
||||
sizelo = 1;
|
||||
goto do_msbd;
|
||||
case 'G':
|
||||
limlo = 33;
|
||||
limhi = 64;
|
||||
sizelo = 33;
|
||||
goto do_msbd;
|
||||
case 'H':
|
||||
limlo = 33;
|
||||
limhi = 64;
|
||||
sizelo = 1;
|
||||
goto do_msbd;
|
||||
do_msbd:
|
||||
my_getExpression (&imm_expr, s);
|
||||
check_absolute_expr (ip, &imm_expr);
|
||||
/* Check for negative input so that small negative numbers
|
||||
will not succeed incorrectly. The checks against
|
||||
(pos+size) transitively check "size" itself,
|
||||
assuming that "pos" is reasonable. */
|
||||
if ((long) imm_expr.X_add_number < 0
|
||||
/* The checks against (pos+size) don't transitively check
|
||||
"size" itself, assuming that "pos" is reasonable.
|
||||
We also need to check the lower bound of "size". */
|
||||
if ((long) imm_expr.X_add_number < sizelo
|
||||
|| ((unsigned long) imm_expr.X_add_number
|
||||
+ lastpos) < limlo
|
||||
|| ((unsigned long) imm_expr.X_add_number
|
||||
|
Loading…
Reference in New Issue
Block a user