diff options
author | Alan Modra <amodra@gmail.com> | 2020-01-12 20:16:22 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-01-13 12:12:05 +1030 |
commit | 5496abe1c5c31aa6648e8fdb15e4122025bcabfe (patch) | |
tree | 5e682ab1be6b87f94493f7fa4a4506d45f2f8362 /gas | |
parent | 202e762b322444344827acbf98162fcb2910e0dd (diff) | |
download | binutils-gdb-5496abe1c5c31aa6648e8fdb15e4122025bcabfe.tar.gz |
tic4x: sign extension using shifts
Don't do that. Especially don't use shift counts that assume the type
being shifted is 32 bits when the type is long/unsigned long. Also
reverts part of a change I made on 2019-12-11 to tic4x_print_register
that on closer inspection turns out to be unnecessary.
include/
* opcode/tic4x.h (EXTR): Delete.
(EXTRU, EXTRS, INSERTU, INSERTS): Rewrite without zero/sign
extension using shifts. Do trim INSERTU value to specified bitfield.
opcodes/
* tic4x-dis.c (tic4x_print_register): Remove dead code.
gas/
* config/tc-tic4x.c (tic4x_operands_match): Correct tic3x trap
insertion.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-tic4x.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 245bd743634..4186fbd05e3 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2020-01-13 Alan Modra <amodra@gmail.com> + + * config/tc-tic4x.c (tic4x_operands_match): Correct tic3x trap + insertion. + 2020-01-10 Alan Modra <amodra@gmail.com> * testsuite/gas/elf/pr14891.s: Don't start directives in first column. diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c index 913120d9aba..cc477b62bbc 100644 --- a/gas/config/tc-tic4x.c +++ b/gas/config/tc-tic4x.c @@ -2193,7 +2193,7 @@ tic4x_operands_match (tic4x_inst_t *inst, tic4x_insn_t *tinsn, int check) } else if (exp->X_add_number < 32 && IS_CPU_TIC3X (tic4x_cpu)) { - INSERTU (opcode, exp->X_add_number | 0x20, 4, 0); + INSERTU (opcode, exp->X_add_number | 0x20, 5, 0); continue; } else |