tic4x: sign extension using shifts
authorAlan Modra <amodra@gmail.com>
Sun, 12 Jan 2020 09:46:22 +0000 (20:16 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 13 Jan 2020 01:42:05 +0000 (12:12 +1030)
commit5496abe1c5c31aa6648e8fdb15e4122025bcabfe
tree5e682ab1be6b87f94493f7fa4a4506d45f2f8362
parent202e762b322444344827acbf98162fcb2910e0dd
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.
gas/ChangeLog
gas/config/tc-tic4x.c
include/ChangeLog
include/opcode/tic4x.h
opcodes/ChangeLog
opcodes/tic4x-dis.c