gas/ARM: Misses deprecated IT instruction warning for ARMv8
Add sp increment and decrement to ARMv8 IT block deprecate pattern. gas/ * config/tc-arm.c (depr_it_insns): New check for inc/dec sp. gas/testsuite/ * gas/arm/armv8-a-it-bad.s: New check for inc/dec sp. * gas/arm/armv8-a-it-bad.l: Likewise.
This commit is contained in:
parent
dfac1fa730
commit
c8de034b6a
5 changed files with 31 additions and 0 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2014-06-17 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c (depr_it_insns): New check for inc/dec sp.
|
||||||
|
|
||||||
2014-06-17 Hans-Peter Nilsson <hp@axis.com>
|
2014-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
* config/tc-cris.c (cris_bad): New function.
|
* config/tc-cris.c (cris_bad): New function.
|
||||||
|
|
|
@ -17266,6 +17266,9 @@ static const struct depr_insn_mask depr_it_insns[] = {
|
||||||
{ 0x4800, 0xf800, N_("Literal loads") },
|
{ 0x4800, 0xf800, N_("Literal loads") },
|
||||||
{ 0x4478, 0xf478, N_("Hi-register ADD, MOV, CMP, BX, BLX using pc") },
|
{ 0x4478, 0xf478, N_("Hi-register ADD, MOV, CMP, BX, BLX using pc") },
|
||||||
{ 0x4487, 0xfc87, N_("Hi-register ADD, MOV, CMP using pc") },
|
{ 0x4487, 0xfc87, N_("Hi-register ADD, MOV, CMP using pc") },
|
||||||
|
/* NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
|
||||||
|
field in asm_opcode. 'tvalue' is used at the stage this check happen. */
|
||||||
|
{ 0x00dd, 0x7fff, N_("ADD/SUB sp, sp #imm") },
|
||||||
{ 0, 0, NULL }
|
{ 0, 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2014-06-17 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* gas/arm/armv8-a-it-bad.s: New check for deprecated sp_inc/dec within
|
||||||
|
IT block for ARMv8.
|
||||||
|
* gas/arm/armv8-a-it-bad.l: Likewise.
|
||||||
|
|
||||||
2014-06-17 Hans-Peter Nilsson <hp@axis.com>
|
2014-06-17 Hans-Peter Nilsson <hp@axis.com>
|
||||||
|
|
||||||
* gas/cris/range-err-3.s: New test.
|
* gas/cris/range-err-3.s: New test.
|
||||||
|
|
|
@ -12,3 +12,7 @@
|
||||||
.*:55: Error: r15 not allowed here -- `addeq r0,pc,pc'
|
.*:55: Error: r15 not allowed here -- `addeq r0,pc,pc'
|
||||||
.*:58: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: Short branches, Undefined, SVC, LDM/STM
|
.*:58: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: Short branches, Undefined, SVC, LDM/STM
|
||||||
.*:58: Error: r15 not allowed here -- `addeq pc,r0,r0'
|
.*:58: Error: r15 not allowed here -- `addeq pc,r0,r0'
|
||||||
|
.*:61: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: ADD/SUB sp, sp #imm
|
||||||
|
.*:65: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: ADD/SUB sp, sp #imm
|
||||||
|
.*:68: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: ADD/SUB sp, sp #imm
|
||||||
|
.*:72: Warning: IT blocks containing 16-bit Thumb instructions of the following class are deprecated in ARMv8: ADD/SUB sp, sp #imm
|
||||||
|
|
|
@ -56,3 +56,17 @@ addeq r0, pc, pc
|
||||||
|
|
||||||
it eq
|
it eq
|
||||||
addeq pc, r0, r0
|
addeq pc, r0, r0
|
||||||
|
|
||||||
|
it eq
|
||||||
|
addeq sp, sp, #12
|
||||||
|
|
||||||
|
@ Misaligned immediate.
|
||||||
|
it eq
|
||||||
|
addeq sp, sp, #3
|
||||||
|
|
||||||
|
it eq
|
||||||
|
subeq sp, sp, #12
|
||||||
|
|
||||||
|
@ Misaligned immediate.
|
||||||
|
it eq
|
||||||
|
subeq sp, sp, #3
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue