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:
Jiong Wang 2014-06-17 10:06:00 +01:00
parent dfac1fa730
commit c8de034b6a
5 changed files with 31 additions and 0 deletions

View File

@ -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>
* config/tc-cris.c (cris_bad): New function.

View File

@ -17266,6 +17266,9 @@ static const struct depr_insn_mask depr_it_insns[] = {
{ 0x4800, 0xf800, N_("Literal loads") },
{ 0x4478, 0xf478, N_("Hi-register ADD, MOV, CMP, BX, BLX 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 }
};

View File

@ -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>
* gas/cris/range-err-3.s: New test.

View File

@ -12,3 +12,7 @@
.*: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: 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

View File

@ -56,3 +56,17 @@ addeq r0, pc, pc
it eq
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