opcodes/
* aarch64-tbl.h (aarch64_opcode_table): Replace IMM0 with FPIMM0 for fcmeq, fcmgt, fcmge, fcmlt and fcmle. gas/testsuite/ * gas/aarch64/fp-const0-parsing.s: New test. * gas/aarch64/fp-const0-parsing.d: Likewise.
This commit is contained in:
parent
a58549dda5
commit
f17c8bfcc8
|
@ -1,3 +1,8 @@
|
||||||
|
2014-02-27 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* gas/aarch64/fp-const0-parsing.s: New test.
|
||||||
|
* gas/aarch64/fp-const0-parsing.d: Likewise.
|
||||||
|
|
||||||
2014-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
|
2014-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
|
||||||
|
|
||||||
* gas/aarch64/ldst-reg-reg-offset.s: Add tests.
|
* gas/aarch64/ldst-reg-reg-offset.s: Add tests.
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
#objdump: -dr
|
||||||
|
|
||||||
|
.*: file format .*
|
||||||
|
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0000000000000000 <.*>:
|
||||||
|
0: 5ea0dbc0 fcmeq s0, s30, #0.0
|
||||||
|
4: 7ea0cba1 fcmge s1, s29, #0.0
|
||||||
|
8: 5ea0cb82 fcmgt s2, s28, #0.0
|
||||||
|
c: 7ea0db63 fcmle s3, s27, #0.0
|
||||||
|
10: 5ea0eb44 fcmlt s4, s26, #0.0
|
||||||
|
14: 5ee0dbc0 fcmeq d0, d30, #0.0
|
||||||
|
18: 7ee0cba1 fcmge d1, d29, #0.0
|
||||||
|
1c: 5ee0cb82 fcmgt d2, d28, #0.0
|
||||||
|
20: 7ee0db63 fcmle d3, d27, #0.0
|
||||||
|
24: 5ee0eb44 fcmlt d4, d26, #0.0
|
||||||
|
28: 0ea0dbc0 fcmeq v0.2s, v30.2s, #0.0
|
||||||
|
2c: 6ea0cba1 fcmge v1.4s, v29.4s, #0.0
|
||||||
|
30: 4ee0cb82 fcmgt v2.2d, v28.2d, #0.0
|
||||||
|
34: 2ea0db63 fcmle v3.2s, v27.2s, #0.0
|
||||||
|
38: 4ea0eb44 fcmlt v4.4s, v26.4s, #0.0
|
||||||
|
3c: 5ea0dbc0 fcmeq s0, s30, #0.0
|
||||||
|
40: 7ea0cba1 fcmge s1, s29, #0.0
|
||||||
|
44: 5ea0cb82 fcmgt s2, s28, #0.0
|
||||||
|
48: 7ea0db63 fcmle s3, s27, #0.0
|
||||||
|
4c: 5ea0eb44 fcmlt s4, s26, #0.0
|
||||||
|
50: 5ee0dbc0 fcmeq d0, d30, #0.0
|
||||||
|
54: 7ee0cba1 fcmge d1, d29, #0.0
|
||||||
|
58: 5ee0cb82 fcmgt d2, d28, #0.0
|
||||||
|
5c: 7ee0db63 fcmle d3, d27, #0.0
|
||||||
|
60: 5ee0eb44 fcmlt d4, d26, #0.0
|
||||||
|
64: 0ea0dbc0 fcmeq v0.2s, v30.2s, #0.0
|
||||||
|
68: 6ea0cba1 fcmge v1.4s, v29.4s, #0.0
|
||||||
|
6c: 4ee0cb82 fcmgt v2.2d, v28.2d, #0.0
|
||||||
|
70: 2ea0db63 fcmle v3.2s, v27.2s, #0.0
|
||||||
|
74: 4ea0eb44 fcmlt v4.4s, v26.4s, #0.0
|
|
@ -0,0 +1,60 @@
|
||||||
|
/* fp-const0-parse.s Test file For AArch64 float constant 0 parse.
|
||||||
|
|
||||||
|
Copyright 2014 Free Software Foundation, Inc.
|
||||||
|
Contributed by ARM Ltd.
|
||||||
|
|
||||||
|
This file is part of GAS.
|
||||||
|
|
||||||
|
GAS is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 3 of the license, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
GAS is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; see the file COPYING3. If not,
|
||||||
|
see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
|
||||||
|
.text
|
||||||
|
// Check #0 with scalar register.
|
||||||
|
fcmeq s0, s30, #0
|
||||||
|
fcmge s1, s29, #0
|
||||||
|
fcmgt s2, s28, #0
|
||||||
|
fcmle s3, s27, #0
|
||||||
|
fcmlt s4, s26, #0
|
||||||
|
fcmeq d0, d30, #0
|
||||||
|
fcmge d1, d29, #0
|
||||||
|
fcmgt d2, d28, #0
|
||||||
|
fcmle d3, d27, #0
|
||||||
|
fcmlt d4, d26, #0
|
||||||
|
|
||||||
|
// Check #0 with vector register.
|
||||||
|
fcmeq v0.2s, v30.2s, #0
|
||||||
|
fcmge v1.4s, v29.4s, #0
|
||||||
|
fcmgt v2.2d, v28.2d, #0
|
||||||
|
fcmle v3.2s, v27.2s, #0
|
||||||
|
fcmlt v4.4s, v26.4s, #0
|
||||||
|
|
||||||
|
// Check #0.0 with scalar register.
|
||||||
|
fcmeq s0, s30, #0.0
|
||||||
|
fcmge s1, s29, #0.0
|
||||||
|
fcmgt s2, s28, #0.0
|
||||||
|
fcmle s3, s27, #0.0
|
||||||
|
fcmlt s4, s26, #0.0
|
||||||
|
fcmeq d0, d30, #0.0
|
||||||
|
fcmge d1, d29, #0.0
|
||||||
|
fcmgt d2, d28, #0.0
|
||||||
|
fcmle d3, d27, #0.0
|
||||||
|
fcmlt d4, d26, #0.0
|
||||||
|
|
||||||
|
// Check #0.0 with vector register.
|
||||||
|
fcmeq v0.2s, v30.2s, #0.0
|
||||||
|
fcmge v1.4s, v29.4s, #0.0
|
||||||
|
fcmgt v2.2d, v28.2d, #0.0
|
||||||
|
fcmle v3.2s, v27.2s, #0.0
|
||||||
|
fcmlt v4.4s, v26.4s, #0.0
|
|
@ -1,3 +1,8 @@
|
||||||
|
2014-02-27 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
|
* aarch64-tbl.h (aarch64_opcode_table): Replace IMM0 with
|
||||||
|
FPIMM0 for fcmeq, fcmgt, fcmge, fcmlt and fcmle.
|
||||||
|
|
||||||
2014-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
|
2014-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
|
||||||
|
|
||||||
* aarch64-opc.c (print_register_offset_address): Call
|
* aarch64-opc.c (print_register_offset_address): Call
|
||||||
|
|
|
@ -1403,9 +1403,9 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
||||||
{"fcvtms", 0xe21b800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"fcvtms", 0xe21b800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcvtas", 0xe21c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"fcvtas", 0xe21c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"scvtf", 0xe21d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"scvtf", 0xe21d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcmgt", 0xea0c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, IMM0), QL_V2SAMESD, F_SIZEQ},
|
{"fcmgt", 0xea0c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcmeq", 0xea0d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, IMM0), QL_V2SAMESD, F_SIZEQ},
|
{"fcmeq", 0xea0d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcmlt", 0xea0e800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, IMM0), QL_V2SAMESD, F_SIZEQ},
|
{"fcmlt", 0xea0e800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fabs", 0xea0f800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"fabs", 0xea0f800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"frintp", 0xea18800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"frintp", 0xea18800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"frintz", 0xea19800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"frintz", 0xea19800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
|
@ -1439,8 +1439,8 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
||||||
{"not", 0x2e205800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_HAS_ALIAS},
|
{"not", 0x2e205800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_HAS_ALIAS},
|
||||||
{"mvn", 0x2e205800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_ALIAS},
|
{"mvn", 0x2e205800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_ALIAS},
|
||||||
{"rbit", 0x2e605800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ},
|
{"rbit", 0x2e605800, 0xbffffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ},
|
||||||
{"fcmge", 0x2ea0c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, IMM0), QL_V2SAMESD, F_SIZEQ},
|
{"fcmge", 0x2ea0c800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcmle", 0x2ea0d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, IMM0), QL_V2SAMESD, F_SIZEQ},
|
{"fcmle", 0x2ea0d800, 0xbfbffc00, asimdmisc, 0, SIMD, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fneg", 0x2ea0f800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"fneg", 0x2ea0f800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"frinti", 0x2ea19800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"frinti", 0x2ea19800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
{"fcvtpu", 0x2ea1a800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
{"fcvtpu", 0x2ea1a800, 0xbfbffc00, asimdmisc, 0, SIMD, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ},
|
||||||
|
@ -1650,9 +1650,9 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
||||||
{"fcvtms", 0x5e21b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtms", 0x5e21b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcvtas", 0x5e21c800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtas", 0x5e21c800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"scvtf", 0x5e21d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"scvtf", 0x5e21d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcmgt", 0x5ea0c800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, IMM0), QL_SISD_FCMP_0, F_SSIZE},
|
{"fcmgt", 0x5ea0c800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE},
|
||||||
{"fcmeq", 0x5ea0d800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, IMM0), QL_SISD_FCMP_0, F_SSIZE},
|
{"fcmeq", 0x5ea0d800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE},
|
||||||
{"fcmlt", 0x5ea0e800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, IMM0), QL_SISD_FCMP_0, F_SSIZE},
|
{"fcmlt", 0x5ea0e800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE},
|
||||||
{"fcvtps", 0x5ea1a800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtps", 0x5ea1a800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcvtzs", 0x5ea1b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtzs", 0x5ea1b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"frecpe", 0x5ea1d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"frecpe", 0x5ea1d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
|
@ -1669,8 +1669,8 @@ struct aarch64_opcode aarch64_opcode_table[] =
|
||||||
{"fcvtmu", 0x7e21b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtmu", 0x7e21b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcvtau", 0x7e21c800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtau", 0x7e21c800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"ucvtf", 0x7e21d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"ucvtf", 0x7e21d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcmge", 0x7ea0c800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, IMM0), QL_SISD_FCMP_0, F_SSIZE},
|
{"fcmge", 0x7ea0c800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE},
|
||||||
{"fcmle", 0x7ea0d800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, IMM0), QL_SISD_FCMP_0, F_SSIZE},
|
{"fcmle", 0x7ea0d800, 0xffbffc00, asisdmisc, 0, SIMD, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE},
|
||||||
{"fcvtpu", 0x7ea1a800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtpu", 0x7ea1a800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"fcvtzu", 0x7ea1b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"fcvtzu", 0x7ea1b800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
{"frsqrte", 0x7ea1d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
{"frsqrte", 0x7ea1d800, 0xffbffc00, asisdmisc, 0, SIMD, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE},
|
||||||
|
|
Loading…
Reference in New Issue