include/opcode/

2013-01-17  Yufeng Zhang  <yufeng.zhang@arm.com>

	* aarch64.h (aarch64_op): Remove OP_V_MOVI_B.

opcodes/

2013-01-17  Yufeng Zhang  <yufeng.zhang@arm.com>

	* aarch64-asm.c (aarch64_ins_advsimd_imm_modified): Handle 8-bit MOVI.
	* aarch64-dis.c (aarch64_ext_advsimd_imm_modified): Likewise.
	* aarch64-opc.c (operand_general_constraint_met_p): For
	AARCH64_MOD_LSL, move the range check on the shift amount before the
	alignment check; change to call set_sft_amount_out_of_range_error
	instead of set_imm_out_of_range_error.
	* aarch64-tbl.h (QL_SIMD_IMM_B): Replace NIL with LSL.
	(aarch64_opcode_table): Remove the OP enumerator from the asimdimm
	8-bit MOVI entry; change the 2nd operand from SIMD_IMM to
	SIMD_IMM_SFT.

gas/

2013-01-17  Yufeng Zhang  <yufeng.zhang@arm.com>

	* config/tc-aarch64.c (output_operand_error_record): Change to output
	the out-of-range error message as value-expected message if there is
	only one single value in the expected range.
	(programmer_friendly_fixup): Remove the handling of 8-bit MOVI with
	LSL #0 as a programmer-friendly feature.

gas/testsuite/

2013-01-17  Yufeng Zhang  <yufeng.zhang@arm.com>

	* gas/aarch64/diagnostic.l: Update.
	* gas/aarch64/movi.s: Add tests.
	* gas/aarch64/movi.d: Update.
	* gas/aarch64/programmer-friendly.s: Add comment.
This commit is contained in:
Yufeng Zhang 2013-01-17 16:09:44 +00:00
parent be7d37a2c3
commit f5555712ba
14 changed files with 586 additions and 42 deletions

View File

@ -1,3 +1,11 @@
2013-01-17 Yufeng Zhang <yufeng.zhang@arm.com>
* config/tc-aarch64.c (output_operand_error_record): Change to output
the out-of-range error message as value-expected message if there is
only one single value in the expected range.
(programmer_friendly_fixup): Remove the handling of 8-bit MOVI with
LSL #0 as a programmer-friendly feature.
2013-01-16 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (reloc): Support BFD_RELOC_SIZE32.

View File

@ -3926,9 +3926,14 @@ output_operand_error_record (const operand_error_record *record, char *str)
break;
case AARCH64_OPDE_OUT_OF_RANGE:
as_bad (_("%s out of range %d to %d at operand %d -- `%s'"),
detail->error ? detail->error : _("immediate value"),
detail->data[0], detail->data[1], detail->index + 1, str);
if (detail->data[0] != detail->data[1])
as_bad (_("%s out of range %d to %d at operand %d -- `%s'"),
detail->error ? detail->error : _("immediate value"),
detail->data[0], detail->data[1], detail->index + 1, str);
else
as_bad (_("%s expected to be %d at operand %d -- `%s'"),
detail->error ? detail->error : _("immediate value"),
detail->data[0], detail->index + 1, str);
break;
case AARCH64_OPDE_REG_LIST:
@ -5259,25 +5264,6 @@ programmer_friendly_fixup (aarch64_instruction *instr)
}
}
break;
case asimdimm:
/* Allow MOVI V0.16B, 97, LSL 0, although the preferred architectural
syntax requires that the LSL shifter can only be used when the
destination register has the shape of 4H, 8H, 2S or 4S. */
if (op == OP_V_MOVI_B && operands[1].shifter.kind == AARCH64_MOD_LSL
&& (operands[0].qualifier == AARCH64_OPND_QLF_V_8B
|| operands[0].qualifier == AARCH64_OPND_QLF_V_16B))
{
if (operands[1].shifter.amount != 0)
{
record_operand_error (opcode, 1,
AARCH64_OPDE_OTHER_ERROR,
_("shift amount non-zero"));
return FALSE;
}
operands[1].shifter.kind = AARCH64_MOD_NONE;
operands[1].qualifier = AARCH64_OPND_QLF_NIL;
}
break;
case log_shift:
case bitfield:
/* UXT[BHW] Wd, Wn

View File

@ -1,3 +1,10 @@
2013-01-17 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/diagnostic.l: Update.
* gas/aarch64/movi.s: Add tests.
* gas/aarch64/movi.d: Update.
* gas/aarch64/programmer-friendly.s: Add comment.
2013-01-16 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run size-1, size-2, size-3, size-4,

View File

@ -43,7 +43,7 @@
[^:]*:45: Error: invalid shift operator at operand 2 -- `movi v1.4h,255,msl#8'
[^:]*:46: Error: invalid value for immediate at operand 2 -- `movi d0,256'
[^:]*:47: Error: immediate value should be a multiple of 8 at operand 2 -- `movi v1.4h,255,lsl#7'
[^:]*:48: Error: immediate value out of range 0 to 8 at operand 2 -- `movi v1.4h,255,lsl#16'
[^:]*:48: Error: shift amount out of range 0 to 8 at operand 2 -- `movi v1.4h,255,lsl#16'
[^:]*:49: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#0'
[^:]*:50: Error: shift amount expected to be 0 or 16 at operand 2 -- `movi v2.2s,255,msl#15'
[^:]*:51: Error: invalid floating-point constant at operand 2 -- `fmov v1.2s,1.01'
@ -84,5 +84,5 @@
[^:]*:86: Error: unexpected address writeback at operand 3 -- `stnp x7,x15,\[x3,#32\]!'
[^:]*:87: Error: immediate offset out of range -256 to 252 at operand 3 -- `ldnp w7,w15,\[x3,#256\]'
[^:]*:88: Error: shift is not permitted at operand 2 -- `movi v1.2d,4294967295,lsl#0'
[^:]*:89: Error: shift amount non-zero at operand 2 -- `movi v1.8b,97,lsl#8'
[^:]*:89: Error: shift amount expected to be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
[^:]*:90: Error: unknown or missing system register name at operand 1 -- `msr dummy,x1'

View File

@ -8197,7 +8197,519 @@ Disassembly of section \.text:
7ff4: 4f0707af movi v15.4s, #0xfd
7ff8: 4f0707cf movi v15.4s, #0xfe
7ffc: 4f0707ef movi v15.4s, #0xff
8000: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
8004: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
8008: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
800c: 2f07e7ff movi d31, #0xffffffffffffffff
8000: 0f00e407 movi v7.8b, #0x0
8004: 0f00e427 movi v7.8b, #0x1
8008: 0f00e447 movi v7.8b, #0x2
800c: 0f00e467 movi v7.8b, #0x3
8010: 0f00e487 movi v7.8b, #0x4
8014: 0f00e4a7 movi v7.8b, #0x5
8018: 0f00e4c7 movi v7.8b, #0x6
801c: 0f00e4e7 movi v7.8b, #0x7
8020: 0f00e507 movi v7.8b, #0x8
8024: 0f00e527 movi v7.8b, #0x9
8028: 0f00e547 movi v7.8b, #0xa
802c: 0f00e567 movi v7.8b, #0xb
8030: 0f00e587 movi v7.8b, #0xc
8034: 0f00e5a7 movi v7.8b, #0xd
8038: 0f00e5c7 movi v7.8b, #0xe
803c: 0f00e5e7 movi v7.8b, #0xf
8040: 0f00e607 movi v7.8b, #0x10
8044: 0f00e627 movi v7.8b, #0x11
8048: 0f00e647 movi v7.8b, #0x12
804c: 0f00e667 movi v7.8b, #0x13
8050: 0f00e687 movi v7.8b, #0x14
8054: 0f00e6a7 movi v7.8b, #0x15
8058: 0f00e6c7 movi v7.8b, #0x16
805c: 0f00e6e7 movi v7.8b, #0x17
8060: 0f00e707 movi v7.8b, #0x18
8064: 0f00e727 movi v7.8b, #0x19
8068: 0f00e747 movi v7.8b, #0x1a
806c: 0f00e767 movi v7.8b, #0x1b
8070: 0f00e787 movi v7.8b, #0x1c
8074: 0f00e7a7 movi v7.8b, #0x1d
8078: 0f00e7c7 movi v7.8b, #0x1e
807c: 0f00e7e7 movi v7.8b, #0x1f
8080: 0f01e407 movi v7.8b, #0x20
8084: 0f01e427 movi v7.8b, #0x21
8088: 0f01e447 movi v7.8b, #0x22
808c: 0f01e467 movi v7.8b, #0x23
8090: 0f01e487 movi v7.8b, #0x24
8094: 0f01e4a7 movi v7.8b, #0x25
8098: 0f01e4c7 movi v7.8b, #0x26
809c: 0f01e4e7 movi v7.8b, #0x27
80a0: 0f01e507 movi v7.8b, #0x28
80a4: 0f01e527 movi v7.8b, #0x29
80a8: 0f01e547 movi v7.8b, #0x2a
80ac: 0f01e567 movi v7.8b, #0x2b
80b0: 0f01e587 movi v7.8b, #0x2c
80b4: 0f01e5a7 movi v7.8b, #0x2d
80b8: 0f01e5c7 movi v7.8b, #0x2e
80bc: 0f01e5e7 movi v7.8b, #0x2f
80c0: 0f01e607 movi v7.8b, #0x30
80c4: 0f01e627 movi v7.8b, #0x31
80c8: 0f01e647 movi v7.8b, #0x32
80cc: 0f01e667 movi v7.8b, #0x33
80d0: 0f01e687 movi v7.8b, #0x34
80d4: 0f01e6a7 movi v7.8b, #0x35
80d8: 0f01e6c7 movi v7.8b, #0x36
80dc: 0f01e6e7 movi v7.8b, #0x37
80e0: 0f01e707 movi v7.8b, #0x38
80e4: 0f01e727 movi v7.8b, #0x39
80e8: 0f01e747 movi v7.8b, #0x3a
80ec: 0f01e767 movi v7.8b, #0x3b
80f0: 0f01e787 movi v7.8b, #0x3c
80f4: 0f01e7a7 movi v7.8b, #0x3d
80f8: 0f01e7c7 movi v7.8b, #0x3e
80fc: 0f01e7e7 movi v7.8b, #0x3f
8100: 0f02e407 movi v7.8b, #0x40
8104: 0f02e427 movi v7.8b, #0x41
8108: 0f02e447 movi v7.8b, #0x42
810c: 0f02e467 movi v7.8b, #0x43
8110: 0f02e487 movi v7.8b, #0x44
8114: 0f02e4a7 movi v7.8b, #0x45
8118: 0f02e4c7 movi v7.8b, #0x46
811c: 0f02e4e7 movi v7.8b, #0x47
8120: 0f02e507 movi v7.8b, #0x48
8124: 0f02e527 movi v7.8b, #0x49
8128: 0f02e547 movi v7.8b, #0x4a
812c: 0f02e567 movi v7.8b, #0x4b
8130: 0f02e587 movi v7.8b, #0x4c
8134: 0f02e5a7 movi v7.8b, #0x4d
8138: 0f02e5c7 movi v7.8b, #0x4e
813c: 0f02e5e7 movi v7.8b, #0x4f
8140: 0f02e607 movi v7.8b, #0x50
8144: 0f02e627 movi v7.8b, #0x51
8148: 0f02e647 movi v7.8b, #0x52
814c: 0f02e667 movi v7.8b, #0x53
8150: 0f02e687 movi v7.8b, #0x54
8154: 0f02e6a7 movi v7.8b, #0x55
8158: 0f02e6c7 movi v7.8b, #0x56
815c: 0f02e6e7 movi v7.8b, #0x57
8160: 0f02e707 movi v7.8b, #0x58
8164: 0f02e727 movi v7.8b, #0x59
8168: 0f02e747 movi v7.8b, #0x5a
816c: 0f02e767 movi v7.8b, #0x5b
8170: 0f02e787 movi v7.8b, #0x5c
8174: 0f02e7a7 movi v7.8b, #0x5d
8178: 0f02e7c7 movi v7.8b, #0x5e
817c: 0f02e7e7 movi v7.8b, #0x5f
8180: 0f03e407 movi v7.8b, #0x60
8184: 0f03e427 movi v7.8b, #0x61
8188: 0f03e447 movi v7.8b, #0x62
818c: 0f03e467 movi v7.8b, #0x63
8190: 0f03e487 movi v7.8b, #0x64
8194: 0f03e4a7 movi v7.8b, #0x65
8198: 0f03e4c7 movi v7.8b, #0x66
819c: 0f03e4e7 movi v7.8b, #0x67
81a0: 0f03e507 movi v7.8b, #0x68
81a4: 0f03e527 movi v7.8b, #0x69
81a8: 0f03e547 movi v7.8b, #0x6a
81ac: 0f03e567 movi v7.8b, #0x6b
81b0: 0f03e587 movi v7.8b, #0x6c
81b4: 0f03e5a7 movi v7.8b, #0x6d
81b8: 0f03e5c7 movi v7.8b, #0x6e
81bc: 0f03e5e7 movi v7.8b, #0x6f
81c0: 0f03e607 movi v7.8b, #0x70
81c4: 0f03e627 movi v7.8b, #0x71
81c8: 0f03e647 movi v7.8b, #0x72
81cc: 0f03e667 movi v7.8b, #0x73
81d0: 0f03e687 movi v7.8b, #0x74
81d4: 0f03e6a7 movi v7.8b, #0x75
81d8: 0f03e6c7 movi v7.8b, #0x76
81dc: 0f03e6e7 movi v7.8b, #0x77
81e0: 0f03e707 movi v7.8b, #0x78
81e4: 0f03e727 movi v7.8b, #0x79
81e8: 0f03e747 movi v7.8b, #0x7a
81ec: 0f03e767 movi v7.8b, #0x7b
81f0: 0f03e787 movi v7.8b, #0x7c
81f4: 0f03e7a7 movi v7.8b, #0x7d
81f8: 0f03e7c7 movi v7.8b, #0x7e
81fc: 0f03e7e7 movi v7.8b, #0x7f
8200: 0f04e407 movi v7.8b, #0x80
8204: 0f04e427 movi v7.8b, #0x81
8208: 0f04e447 movi v7.8b, #0x82
820c: 0f04e467 movi v7.8b, #0x83
8210: 0f04e487 movi v7.8b, #0x84
8214: 0f04e4a7 movi v7.8b, #0x85
8218: 0f04e4c7 movi v7.8b, #0x86
821c: 0f04e4e7 movi v7.8b, #0x87
8220: 0f04e507 movi v7.8b, #0x88
8224: 0f04e527 movi v7.8b, #0x89
8228: 0f04e547 movi v7.8b, #0x8a
822c: 0f04e567 movi v7.8b, #0x8b
8230: 0f04e587 movi v7.8b, #0x8c
8234: 0f04e5a7 movi v7.8b, #0x8d
8238: 0f04e5c7 movi v7.8b, #0x8e
823c: 0f04e5e7 movi v7.8b, #0x8f
8240: 0f04e607 movi v7.8b, #0x90
8244: 0f04e627 movi v7.8b, #0x91
8248: 0f04e647 movi v7.8b, #0x92
824c: 0f04e667 movi v7.8b, #0x93
8250: 0f04e687 movi v7.8b, #0x94
8254: 0f04e6a7 movi v7.8b, #0x95
8258: 0f04e6c7 movi v7.8b, #0x96
825c: 0f04e6e7 movi v7.8b, #0x97
8260: 0f04e707 movi v7.8b, #0x98
8264: 0f04e727 movi v7.8b, #0x99
8268: 0f04e747 movi v7.8b, #0x9a
826c: 0f04e767 movi v7.8b, #0x9b
8270: 0f04e787 movi v7.8b, #0x9c
8274: 0f04e7a7 movi v7.8b, #0x9d
8278: 0f04e7c7 movi v7.8b, #0x9e
827c: 0f04e7e7 movi v7.8b, #0x9f
8280: 0f05e407 movi v7.8b, #0xa0
8284: 0f05e427 movi v7.8b, #0xa1
8288: 0f05e447 movi v7.8b, #0xa2
828c: 0f05e467 movi v7.8b, #0xa3
8290: 0f05e487 movi v7.8b, #0xa4
8294: 0f05e4a7 movi v7.8b, #0xa5
8298: 0f05e4c7 movi v7.8b, #0xa6
829c: 0f05e4e7 movi v7.8b, #0xa7
82a0: 0f05e507 movi v7.8b, #0xa8
82a4: 0f05e527 movi v7.8b, #0xa9
82a8: 0f05e547 movi v7.8b, #0xaa
82ac: 0f05e567 movi v7.8b, #0xab
82b0: 0f05e587 movi v7.8b, #0xac
82b4: 0f05e5a7 movi v7.8b, #0xad
82b8: 0f05e5c7 movi v7.8b, #0xae
82bc: 0f05e5e7 movi v7.8b, #0xaf
82c0: 0f05e607 movi v7.8b, #0xb0
82c4: 0f05e627 movi v7.8b, #0xb1
82c8: 0f05e647 movi v7.8b, #0xb2
82cc: 0f05e667 movi v7.8b, #0xb3
82d0: 0f05e687 movi v7.8b, #0xb4
82d4: 0f05e6a7 movi v7.8b, #0xb5
82d8: 0f05e6c7 movi v7.8b, #0xb6
82dc: 0f05e6e7 movi v7.8b, #0xb7
82e0: 0f05e707 movi v7.8b, #0xb8
82e4: 0f05e727 movi v7.8b, #0xb9
82e8: 0f05e747 movi v7.8b, #0xba
82ec: 0f05e767 movi v7.8b, #0xbb
82f0: 0f05e787 movi v7.8b, #0xbc
82f4: 0f05e7a7 movi v7.8b, #0xbd
82f8: 0f05e7c7 movi v7.8b, #0xbe
82fc: 0f05e7e7 movi v7.8b, #0xbf
8300: 0f06e407 movi v7.8b, #0xc0
8304: 0f06e427 movi v7.8b, #0xc1
8308: 0f06e447 movi v7.8b, #0xc2
830c: 0f06e467 movi v7.8b, #0xc3
8310: 0f06e487 movi v7.8b, #0xc4
8314: 0f06e4a7 movi v7.8b, #0xc5
8318: 0f06e4c7 movi v7.8b, #0xc6
831c: 0f06e4e7 movi v7.8b, #0xc7
8320: 0f06e507 movi v7.8b, #0xc8
8324: 0f06e527 movi v7.8b, #0xc9
8328: 0f06e547 movi v7.8b, #0xca
832c: 0f06e567 movi v7.8b, #0xcb
8330: 0f06e587 movi v7.8b, #0xcc
8334: 0f06e5a7 movi v7.8b, #0xcd
8338: 0f06e5c7 movi v7.8b, #0xce
833c: 0f06e5e7 movi v7.8b, #0xcf
8340: 0f06e607 movi v7.8b, #0xd0
8344: 0f06e627 movi v7.8b, #0xd1
8348: 0f06e647 movi v7.8b, #0xd2
834c: 0f06e667 movi v7.8b, #0xd3
8350: 0f06e687 movi v7.8b, #0xd4
8354: 0f06e6a7 movi v7.8b, #0xd5
8358: 0f06e6c7 movi v7.8b, #0xd6
835c: 0f06e6e7 movi v7.8b, #0xd7
8360: 0f06e707 movi v7.8b, #0xd8
8364: 0f06e727 movi v7.8b, #0xd9
8368: 0f06e747 movi v7.8b, #0xda
836c: 0f06e767 movi v7.8b, #0xdb
8370: 0f06e787 movi v7.8b, #0xdc
8374: 0f06e7a7 movi v7.8b, #0xdd
8378: 0f06e7c7 movi v7.8b, #0xde
837c: 0f06e7e7 movi v7.8b, #0xdf
8380: 0f07e407 movi v7.8b, #0xe0
8384: 0f07e427 movi v7.8b, #0xe1
8388: 0f07e447 movi v7.8b, #0xe2
838c: 0f07e467 movi v7.8b, #0xe3
8390: 0f07e487 movi v7.8b, #0xe4
8394: 0f07e4a7 movi v7.8b, #0xe5
8398: 0f07e4c7 movi v7.8b, #0xe6
839c: 0f07e4e7 movi v7.8b, #0xe7
83a0: 0f07e507 movi v7.8b, #0xe8
83a4: 0f07e527 movi v7.8b, #0xe9
83a8: 0f07e547 movi v7.8b, #0xea
83ac: 0f07e567 movi v7.8b, #0xeb
83b0: 0f07e587 movi v7.8b, #0xec
83b4: 0f07e5a7 movi v7.8b, #0xed
83b8: 0f07e5c7 movi v7.8b, #0xee
83bc: 0f07e5e7 movi v7.8b, #0xef
83c0: 0f07e607 movi v7.8b, #0xf0
83c4: 0f07e627 movi v7.8b, #0xf1
83c8: 0f07e647 movi v7.8b, #0xf2
83cc: 0f07e667 movi v7.8b, #0xf3
83d0: 0f07e687 movi v7.8b, #0xf4
83d4: 0f07e6a7 movi v7.8b, #0xf5
83d8: 0f07e6c7 movi v7.8b, #0xf6
83dc: 0f07e6e7 movi v7.8b, #0xf7
83e0: 0f07e707 movi v7.8b, #0xf8
83e4: 0f07e727 movi v7.8b, #0xf9
83e8: 0f07e747 movi v7.8b, #0xfa
83ec: 0f07e767 movi v7.8b, #0xfb
83f0: 0f07e787 movi v7.8b, #0xfc
83f4: 0f07e7a7 movi v7.8b, #0xfd
83f8: 0f07e7c7 movi v7.8b, #0xfe
83fc: 0f07e7e7 movi v7.8b, #0xff
8400: 4f00e407 movi v7.16b, #0x0
8404: 4f00e427 movi v7.16b, #0x1
8408: 4f00e447 movi v7.16b, #0x2
840c: 4f00e467 movi v7.16b, #0x3
8410: 4f00e487 movi v7.16b, #0x4
8414: 4f00e4a7 movi v7.16b, #0x5
8418: 4f00e4c7 movi v7.16b, #0x6
841c: 4f00e4e7 movi v7.16b, #0x7
8420: 4f00e507 movi v7.16b, #0x8
8424: 4f00e527 movi v7.16b, #0x9
8428: 4f00e547 movi v7.16b, #0xa
842c: 4f00e567 movi v7.16b, #0xb
8430: 4f00e587 movi v7.16b, #0xc
8434: 4f00e5a7 movi v7.16b, #0xd
8438: 4f00e5c7 movi v7.16b, #0xe
843c: 4f00e5e7 movi v7.16b, #0xf
8440: 4f00e607 movi v7.16b, #0x10
8444: 4f00e627 movi v7.16b, #0x11
8448: 4f00e647 movi v7.16b, #0x12
844c: 4f00e667 movi v7.16b, #0x13
8450: 4f00e687 movi v7.16b, #0x14
8454: 4f00e6a7 movi v7.16b, #0x15
8458: 4f00e6c7 movi v7.16b, #0x16
845c: 4f00e6e7 movi v7.16b, #0x17
8460: 4f00e707 movi v7.16b, #0x18
8464: 4f00e727 movi v7.16b, #0x19
8468: 4f00e747 movi v7.16b, #0x1a
846c: 4f00e767 movi v7.16b, #0x1b
8470: 4f00e787 movi v7.16b, #0x1c
8474: 4f00e7a7 movi v7.16b, #0x1d
8478: 4f00e7c7 movi v7.16b, #0x1e
847c: 4f00e7e7 movi v7.16b, #0x1f
8480: 4f01e407 movi v7.16b, #0x20
8484: 4f01e427 movi v7.16b, #0x21
8488: 4f01e447 movi v7.16b, #0x22
848c: 4f01e467 movi v7.16b, #0x23
8490: 4f01e487 movi v7.16b, #0x24
8494: 4f01e4a7 movi v7.16b, #0x25
8498: 4f01e4c7 movi v7.16b, #0x26
849c: 4f01e4e7 movi v7.16b, #0x27
84a0: 4f01e507 movi v7.16b, #0x28
84a4: 4f01e527 movi v7.16b, #0x29
84a8: 4f01e547 movi v7.16b, #0x2a
84ac: 4f01e567 movi v7.16b, #0x2b
84b0: 4f01e587 movi v7.16b, #0x2c
84b4: 4f01e5a7 movi v7.16b, #0x2d
84b8: 4f01e5c7 movi v7.16b, #0x2e
84bc: 4f01e5e7 movi v7.16b, #0x2f
84c0: 4f01e607 movi v7.16b, #0x30
84c4: 4f01e627 movi v7.16b, #0x31
84c8: 4f01e647 movi v7.16b, #0x32
84cc: 4f01e667 movi v7.16b, #0x33
84d0: 4f01e687 movi v7.16b, #0x34
84d4: 4f01e6a7 movi v7.16b, #0x35
84d8: 4f01e6c7 movi v7.16b, #0x36
84dc: 4f01e6e7 movi v7.16b, #0x37
84e0: 4f01e707 movi v7.16b, #0x38
84e4: 4f01e727 movi v7.16b, #0x39
84e8: 4f01e747 movi v7.16b, #0x3a
84ec: 4f01e767 movi v7.16b, #0x3b
84f0: 4f01e787 movi v7.16b, #0x3c
84f4: 4f01e7a7 movi v7.16b, #0x3d
84f8: 4f01e7c7 movi v7.16b, #0x3e
84fc: 4f01e7e7 movi v7.16b, #0x3f
8500: 4f02e407 movi v7.16b, #0x40
8504: 4f02e427 movi v7.16b, #0x41
8508: 4f02e447 movi v7.16b, #0x42
850c: 4f02e467 movi v7.16b, #0x43
8510: 4f02e487 movi v7.16b, #0x44
8514: 4f02e4a7 movi v7.16b, #0x45
8518: 4f02e4c7 movi v7.16b, #0x46
851c: 4f02e4e7 movi v7.16b, #0x47
8520: 4f02e507 movi v7.16b, #0x48
8524: 4f02e527 movi v7.16b, #0x49
8528: 4f02e547 movi v7.16b, #0x4a
852c: 4f02e567 movi v7.16b, #0x4b
8530: 4f02e587 movi v7.16b, #0x4c
8534: 4f02e5a7 movi v7.16b, #0x4d
8538: 4f02e5c7 movi v7.16b, #0x4e
853c: 4f02e5e7 movi v7.16b, #0x4f
8540: 4f02e607 movi v7.16b, #0x50
8544: 4f02e627 movi v7.16b, #0x51
8548: 4f02e647 movi v7.16b, #0x52
854c: 4f02e667 movi v7.16b, #0x53
8550: 4f02e687 movi v7.16b, #0x54
8554: 4f02e6a7 movi v7.16b, #0x55
8558: 4f02e6c7 movi v7.16b, #0x56
855c: 4f02e6e7 movi v7.16b, #0x57
8560: 4f02e707 movi v7.16b, #0x58
8564: 4f02e727 movi v7.16b, #0x59
8568: 4f02e747 movi v7.16b, #0x5a
856c: 4f02e767 movi v7.16b, #0x5b
8570: 4f02e787 movi v7.16b, #0x5c
8574: 4f02e7a7 movi v7.16b, #0x5d
8578: 4f02e7c7 movi v7.16b, #0x5e
857c: 4f02e7e7 movi v7.16b, #0x5f
8580: 4f03e407 movi v7.16b, #0x60
8584: 4f03e427 movi v7.16b, #0x61
8588: 4f03e447 movi v7.16b, #0x62
858c: 4f03e467 movi v7.16b, #0x63
8590: 4f03e487 movi v7.16b, #0x64
8594: 4f03e4a7 movi v7.16b, #0x65
8598: 4f03e4c7 movi v7.16b, #0x66
859c: 4f03e4e7 movi v7.16b, #0x67
85a0: 4f03e507 movi v7.16b, #0x68
85a4: 4f03e527 movi v7.16b, #0x69
85a8: 4f03e547 movi v7.16b, #0x6a
85ac: 4f03e567 movi v7.16b, #0x6b
85b0: 4f03e587 movi v7.16b, #0x6c
85b4: 4f03e5a7 movi v7.16b, #0x6d
85b8: 4f03e5c7 movi v7.16b, #0x6e
85bc: 4f03e5e7 movi v7.16b, #0x6f
85c0: 4f03e607 movi v7.16b, #0x70
85c4: 4f03e627 movi v7.16b, #0x71
85c8: 4f03e647 movi v7.16b, #0x72
85cc: 4f03e667 movi v7.16b, #0x73
85d0: 4f03e687 movi v7.16b, #0x74
85d4: 4f03e6a7 movi v7.16b, #0x75
85d8: 4f03e6c7 movi v7.16b, #0x76
85dc: 4f03e6e7 movi v7.16b, #0x77
85e0: 4f03e707 movi v7.16b, #0x78
85e4: 4f03e727 movi v7.16b, #0x79
85e8: 4f03e747 movi v7.16b, #0x7a
85ec: 4f03e767 movi v7.16b, #0x7b
85f0: 4f03e787 movi v7.16b, #0x7c
85f4: 4f03e7a7 movi v7.16b, #0x7d
85f8: 4f03e7c7 movi v7.16b, #0x7e
85fc: 4f03e7e7 movi v7.16b, #0x7f
8600: 4f04e407 movi v7.16b, #0x80
8604: 4f04e427 movi v7.16b, #0x81
8608: 4f04e447 movi v7.16b, #0x82
860c: 4f04e467 movi v7.16b, #0x83
8610: 4f04e487 movi v7.16b, #0x84
8614: 4f04e4a7 movi v7.16b, #0x85
8618: 4f04e4c7 movi v7.16b, #0x86
861c: 4f04e4e7 movi v7.16b, #0x87
8620: 4f04e507 movi v7.16b, #0x88
8624: 4f04e527 movi v7.16b, #0x89
8628: 4f04e547 movi v7.16b, #0x8a
862c: 4f04e567 movi v7.16b, #0x8b
8630: 4f04e587 movi v7.16b, #0x8c
8634: 4f04e5a7 movi v7.16b, #0x8d
8638: 4f04e5c7 movi v7.16b, #0x8e
863c: 4f04e5e7 movi v7.16b, #0x8f
8640: 4f04e607 movi v7.16b, #0x90
8644: 4f04e627 movi v7.16b, #0x91
8648: 4f04e647 movi v7.16b, #0x92
864c: 4f04e667 movi v7.16b, #0x93
8650: 4f04e687 movi v7.16b, #0x94
8654: 4f04e6a7 movi v7.16b, #0x95
8658: 4f04e6c7 movi v7.16b, #0x96
865c: 4f04e6e7 movi v7.16b, #0x97
8660: 4f04e707 movi v7.16b, #0x98
8664: 4f04e727 movi v7.16b, #0x99
8668: 4f04e747 movi v7.16b, #0x9a
866c: 4f04e767 movi v7.16b, #0x9b
8670: 4f04e787 movi v7.16b, #0x9c
8674: 4f04e7a7 movi v7.16b, #0x9d
8678: 4f04e7c7 movi v7.16b, #0x9e
867c: 4f04e7e7 movi v7.16b, #0x9f
8680: 4f05e407 movi v7.16b, #0xa0
8684: 4f05e427 movi v7.16b, #0xa1
8688: 4f05e447 movi v7.16b, #0xa2
868c: 4f05e467 movi v7.16b, #0xa3
8690: 4f05e487 movi v7.16b, #0xa4
8694: 4f05e4a7 movi v7.16b, #0xa5
8698: 4f05e4c7 movi v7.16b, #0xa6
869c: 4f05e4e7 movi v7.16b, #0xa7
86a0: 4f05e507 movi v7.16b, #0xa8
86a4: 4f05e527 movi v7.16b, #0xa9
86a8: 4f05e547 movi v7.16b, #0xaa
86ac: 4f05e567 movi v7.16b, #0xab
86b0: 4f05e587 movi v7.16b, #0xac
86b4: 4f05e5a7 movi v7.16b, #0xad
86b8: 4f05e5c7 movi v7.16b, #0xae
86bc: 4f05e5e7 movi v7.16b, #0xaf
86c0: 4f05e607 movi v7.16b, #0xb0
86c4: 4f05e627 movi v7.16b, #0xb1
86c8: 4f05e647 movi v7.16b, #0xb2
86cc: 4f05e667 movi v7.16b, #0xb3
86d0: 4f05e687 movi v7.16b, #0xb4
86d4: 4f05e6a7 movi v7.16b, #0xb5
86d8: 4f05e6c7 movi v7.16b, #0xb6
86dc: 4f05e6e7 movi v7.16b, #0xb7
86e0: 4f05e707 movi v7.16b, #0xb8
86e4: 4f05e727 movi v7.16b, #0xb9
86e8: 4f05e747 movi v7.16b, #0xba
86ec: 4f05e767 movi v7.16b, #0xbb
86f0: 4f05e787 movi v7.16b, #0xbc
86f4: 4f05e7a7 movi v7.16b, #0xbd
86f8: 4f05e7c7 movi v7.16b, #0xbe
86fc: 4f05e7e7 movi v7.16b, #0xbf
8700: 4f06e407 movi v7.16b, #0xc0
8704: 4f06e427 movi v7.16b, #0xc1
8708: 4f06e447 movi v7.16b, #0xc2
870c: 4f06e467 movi v7.16b, #0xc3
8710: 4f06e487 movi v7.16b, #0xc4
8714: 4f06e4a7 movi v7.16b, #0xc5
8718: 4f06e4c7 movi v7.16b, #0xc6
871c: 4f06e4e7 movi v7.16b, #0xc7
8720: 4f06e507 movi v7.16b, #0xc8
8724: 4f06e527 movi v7.16b, #0xc9
8728: 4f06e547 movi v7.16b, #0xca
872c: 4f06e567 movi v7.16b, #0xcb
8730: 4f06e587 movi v7.16b, #0xcc
8734: 4f06e5a7 movi v7.16b, #0xcd
8738: 4f06e5c7 movi v7.16b, #0xce
873c: 4f06e5e7 movi v7.16b, #0xcf
8740: 4f06e607 movi v7.16b, #0xd0
8744: 4f06e627 movi v7.16b, #0xd1
8748: 4f06e647 movi v7.16b, #0xd2
874c: 4f06e667 movi v7.16b, #0xd3
8750: 4f06e687 movi v7.16b, #0xd4
8754: 4f06e6a7 movi v7.16b, #0xd5
8758: 4f06e6c7 movi v7.16b, #0xd6
875c: 4f06e6e7 movi v7.16b, #0xd7
8760: 4f06e707 movi v7.16b, #0xd8
8764: 4f06e727 movi v7.16b, #0xd9
8768: 4f06e747 movi v7.16b, #0xda
876c: 4f06e767 movi v7.16b, #0xdb
8770: 4f06e787 movi v7.16b, #0xdc
8774: 4f06e7a7 movi v7.16b, #0xdd
8778: 4f06e7c7 movi v7.16b, #0xde
877c: 4f06e7e7 movi v7.16b, #0xdf
8780: 4f07e407 movi v7.16b, #0xe0
8784: 4f07e427 movi v7.16b, #0xe1
8788: 4f07e447 movi v7.16b, #0xe2
878c: 4f07e467 movi v7.16b, #0xe3
8790: 4f07e487 movi v7.16b, #0xe4
8794: 4f07e4a7 movi v7.16b, #0xe5
8798: 4f07e4c7 movi v7.16b, #0xe6
879c: 4f07e4e7 movi v7.16b, #0xe7
87a0: 4f07e507 movi v7.16b, #0xe8
87a4: 4f07e527 movi v7.16b, #0xe9
87a8: 4f07e547 movi v7.16b, #0xea
87ac: 4f07e567 movi v7.16b, #0xeb
87b0: 4f07e587 movi v7.16b, #0xec
87b4: 4f07e5a7 movi v7.16b, #0xed
87b8: 4f07e5c7 movi v7.16b, #0xee
87bc: 4f07e5e7 movi v7.16b, #0xef
87c0: 4f07e607 movi v7.16b, #0xf0
87c4: 4f07e627 movi v7.16b, #0xf1
87c8: 4f07e647 movi v7.16b, #0xf2
87cc: 4f07e667 movi v7.16b, #0xf3
87d0: 4f07e687 movi v7.16b, #0xf4
87d4: 4f07e6a7 movi v7.16b, #0xf5
87d8: 4f07e6c7 movi v7.16b, #0xf6
87dc: 4f07e6e7 movi v7.16b, #0xf7
87e0: 4f07e707 movi v7.16b, #0xf8
87e4: 4f07e727 movi v7.16b, #0xf9
87e8: 4f07e747 movi v7.16b, #0xfa
87ec: 4f07e767 movi v7.16b, #0xfb
87f0: 4f07e787 movi v7.16b, #0xfc
87f4: 4f07e7a7 movi v7.16b, #0xfd
87f8: 4f07e7c7 movi v7.16b, #0xfe
87fc: 4f07e7e7 movi v7.16b, #0xff
8800: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
8804: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
8808: 6f07e7e0 movi v0.2d, #0xffffffffffffffff
880c: 2f07e7ff movi d31, #0xffffffffffffffff

View File

@ -97,6 +97,17 @@
.endr
.endr
// Shift zeros, per byte
// MOVI <Vd>.<T>, #<imm8>, LSL #0
// This used to be a programmer-friendly feature (allowing LSL #0),
// but it is now part of the architecture specification.
.irp T, 8b, 16b
all_8bit_imm_movi_sft v7.\T, 0, 63, LSL, 0
all_8bit_imm_movi_sft v7.\T, 64, 127, LSL, 0
all_8bit_imm_movi_sft v7.\T, 128, 191, LSL, 0
all_8bit_imm_movi_sft v7.\T, 192, 255, LSL, 0
.endr
movi v0.2d, 18446744073709551615
movi v0.2d, -1
movi v0.2d, bignum

View File

@ -6,7 +6,7 @@
// The preferred architectural syntax does not accept the shifter
// LSL or any other shift operator, when the destination register
// has the shape of 16B or 8B.
movi v0.16b, 97, lsl 0
movi v0.16b, 97, lsl 0 // N.B.: this is now part of the architecture specification.
// LDR Wt, label | =value
// As a convenience assemblers will typically permit the notation

View File

@ -1,3 +1,7 @@
2013-01-17 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64.h (aarch64_op): Remove OP_V_MOVI_B.
2013-01-10 Peter Bergner <bergner@vnet.ibm.com>
* ppc.h (PPC_OPCODE_POWER8): New define.

View File

@ -409,8 +409,6 @@ enum aarch64_op
OP_UXTH,
OP_UXTW,
OP_V_MOVI_B,
OP_CINC,
OP_CINV,
OP_CNEG,

View File

@ -1,3 +1,16 @@
2013-01-17 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64-asm.c (aarch64_ins_advsimd_imm_modified): Handle 8-bit MOVI.
* aarch64-dis.c (aarch64_ext_advsimd_imm_modified): Likewise.
* aarch64-opc.c (operand_general_constraint_met_p): For
AARCH64_MOD_LSL, move the range check on the shift amount before the
alignment check; change to call set_sft_amount_out_of_range_error
instead of set_imm_out_of_range_error.
* aarch64-tbl.h (QL_SIMD_IMM_B): Replace NIL with LSL.
(aarch64_opcode_table): Remove the OP enumerator from the asimdimm
8-bit MOVI entry; change the 2nd operand from SIMD_IMM to
SIMD_IMM_SFT.
2013-01-16 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (operand_type_init): Add OPERAND_TYPE_IMM32_64.

View File

@ -382,7 +382,11 @@ aarch64_ins_advsimd_imm_modified (const aarch64_operand *self ATTRIBUTE_UNUSED,
{
/* AARCH64_MOD_LSL: shift zeros. */
int esize = aarch64_get_qualifier_esize (opnd0_qualifier);
assert (esize == 4 || esize == 2);
assert (esize == 4 || esize == 2 || esize == 1);
/* For 8-bit move immediate, the optional LSL #0 does not require
encoding. */
if (esize == 1)
return NULL;
amount >>= 3;
if (esize == 4)
gen_sub_field (FLD_cmode, 1, 2, &field); /* per word */

View File

@ -642,6 +642,7 @@ aarch64_ext_advsimd_imm_modified (const aarch64_operand *self ATTRIBUTE_UNUSED,
{
case 4: gen_sub_field (FLD_cmode, 1, 2, &field); break; /* per word */
case 2: gen_sub_field (FLD_cmode, 1, 1, &field); break; /* per half */
case 1: gen_sub_field (FLD_cmode, 1, 0, &field); break; /* per byte */
default: assert (0); return 0;
}
/* 00: 0; 01: 8; 10:16; 11:24. */

View File

@ -1745,17 +1745,17 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
{
case AARCH64_MOD_LSL:
size = aarch64_get_qualifier_esize (opnds[0].qualifier);
if (!value_in_range_p (opnd->shifter.amount, 0, (size - 1) * 8))
{
set_sft_amount_out_of_range_error (mismatch_detail, idx, 0,
(size - 1) * 8);
return 0;
}
if (!value_aligned_p (opnd->shifter.amount, 8))
{
set_unaligned_error (mismatch_detail, idx, 8);
return 0;
}
if (!value_in_range_p (opnd->shifter.amount, 0, (size - 1) * 8))
{
set_imm_out_of_range_error (mismatch_detail, idx, 0,
(size - 1) * 8);
return 0;
}
break;
case AARCH64_MOD_MSL:
/* Only 8 and 16 are valid shift amount. */

View File

@ -1171,11 +1171,11 @@
QLF2(V_4S, NIL), \
}
/* e.g. MOVI <Vd>.8B, #<imm8>. */
/* e.g. MOVI <Vd>.8B, #<imm8> {, LSL #<amount>}. */
#define QL_SIMD_IMM_B \
{ \
QLF2(V_8B, NIL), \
QLF2(V_16B, NIL), \
QLF2(V_8B, LSL), \
QLF2(V_16B, LSL), \
}
/* e.g. MOVI <Dd>, #<imm>. */
#define QL_SIMD_IMM_D \
@ -1341,7 +1341,7 @@ struct aarch64_opcode aarch64_opcode_table[] =
{"movi", 0xf008400, 0xbff8dc00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ},
{"orr", 0xf009400, 0xbff8dc00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ},
{"movi", 0xf00c400, 0xbff8ec00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S1W, F_SIZEQ},
{"movi", 0xf00e400, 0xbff8fc00, asimdimm, OP_V_MOVI_B, SIMD, OP2 (Vd, SIMD_IMM), QL_SIMD_IMM_B, F_SIZEQ},
{"movi", 0xf00e400, 0xbff8fc00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_B, F_SIZEQ},
{"fmov", 0xf00f400, 0xbff8fc00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_FPIMM), QL_SIMD_IMM_S, F_SIZEQ},
{"mvni", 0x2f000400, 0xbff89c00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ},
{"bic", 0x2f001400, 0xbff89c00, asimdimm, 0, SIMD, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ},