From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10251 invoked by alias); 26 Apr 2006 00:39:08 -0000 Received: (qmail 10243 invoked by uid 22791); 26 Apr 2006 00:39:04 -0000 X-Spam-Check-By: sourceware.org Received: from intranet.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.6) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 26 Apr 2006 00:39:02 +0000 Received: (qmail 2036 invoked from network); 26 Apr 2006 00:38:59 -0000 Received: from unknown (HELO ?10.1.1.7?) (julian@127.0.0.2) by mail.codesourcery.com with ESMTPA; 26 Apr 2006 00:38:59 -0000 Message-ID: <444EC119.2030802@codesourcery.com> Date: Wed, 26 Apr 2006 08:55:00 -0000 From: Julian Brown User-Agent: Debian Thunderbird 1.0.7 (X11/20051017) MIME-Version: 1.0 To: Nick Clifton CC: binutils@sources.redhat.com, Paul Brook , Richard Earnshaw Subject: Re: [PATCH, ARM] Fix Neon floating-point constant encoding & support floating-point syntax References: <444BE24D.1010405@codesourcery.com> <444E5DC6.70404@redhat.com> In-Reply-To: <444E5DC6.70404@redhat.com> Content-Type: multipart/mixed; boundary="------------020808050903000406090902" Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2006-04/txt/msg00366.txt.bz2 This is a multi-part message in MIME format. --------------020808050903000406090902 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1460 Nick Clifton wrote: > > Approved for mainline. > Thanks! I've got a slightly-improved version of this patch thanks to offline discussion with Paul Brook though, which uses a generic function to help with the printing of float immediates. It relies on this (applied) fix: http://gcc.gnu.org/ml/gcc-patches/2006-04/msg00925.html The only differences are in arm-dis.c, and a small cleanup in is_quarter_float. Sorry for the hassle (the difference is probably small enough to count as obvious), but is this still OK to apply on mainline? (And also on the CSL branch?). Thanks, Julian ChangeLog (gas): * gas/config/tc-arm.c (neon_is_quarter_float): Move, and rename to... (is_quarter_float): Rename from above. Simplify slightly. (parse_qfloat_immediate): Parse a "quarter precision" floating-point number. (parse_neon_mov): Parse floating-point constants. (neon_qfloat_bits): Fix encoding. (neon_cmode_for_move_imm): Tweak to use floating-point encoding in preference to integer encoding when using the F32 type. ChangeLog (gas/testsuite): * gas/testsuite/gas/arm/neon-const.s: New testcase. Neon floating-point constants. * gas/testsuite/gas/arm/neon-const.d: Expected output of above. * gas/testsuite/gas/arm/neon-cov.d: Expect floating-point disassembly for VMOV.F32. ChangeLog (opcodes): * arm-dis.c (print_insn_neon): Disassemble floating-point constant VMOV. --------------020808050903000406090902 Content-Type: text/plain; name="neon-float-const-2" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="neon-float-const-2" Content-length: 37030 ? bfd/doc/bfd.info ? binutils/doc/binutils.info ? gas/doc/as.info ? ld/ld.info Index: gas/config/tc-arm.c =================================================================== RCS file: /cvs/src/src/gas/config/tc-arm.c,v retrieving revision 1.250.2.9 diff -c -p -r1.250.2.9 tc-arm.c *** gas/config/tc-arm.c 7 Apr 2006 15:46:20 -0000 1.250.2.9 --- gas/config/tc-arm.c 24 Apr 2006 21:39:20 -0000 *************** parse_fpa_immediate (char ** str) *** 3994,3999 **** --- 3994,4048 ---- return FAIL; } + /* Returns 1 if a number has "quarter-precision" float format + 0baBbbbbbc defgh000 00000000 00000000. */ + + static int + is_quarter_float (unsigned imm) + { + int bs = (imm & 0x20000000) ? 0x3e000000 : 0x40000000; + return (imm & 0x7ffff) == 0 && ((imm & 0x7e000000) ^ bs) == 0; + } + + /* Parse an 8-bit "quarter-precision" floating point number of the form: + 0baBbbbbbc defgh000 00000000 00000000. + The minus-zero case needs special handling, since it can't be encoded in the + "quarter-precision" float format, but can nonetheless be loaded as an integer + constant. */ + + static unsigned + parse_qfloat_immediate (char **ccp, int *immed) + { + char *str = *ccp; + LITTLENUM_TYPE words[MAX_LITTLENUMS]; + + skip_past_char (&str, '#'); + + if ((str = atof_ieee (str, 's', words)) != NULL) + { + unsigned fpword = 0; + int i; + + /* Our FP word must be 32 bits (single-precision FP). */ + for (i = 0; i < 32 / LITTLENUM_NUMBER_OF_BITS; i++) + { + fpword <<= LITTLENUM_NUMBER_OF_BITS; + fpword |= words[i]; + } + + if (is_quarter_float (fpword) || fpword == 0x80000000) + *immed = fpword; + else + return FAIL; + + *ccp = str; + + return SUCCESS; + } + + return FAIL; + } + /* Shift operands. */ enum shift_kind { *************** parse_neon_mov (char **str, int *which_o *** 4702,4707 **** --- 4751,4763 ---- inst.operands[i].isreg = 1; inst.operands[i].present = 1; } + else if (parse_qfloat_immediate (&ptr, &inst.operands[i].imm) == SUCCESS) + { + /* Case 2: VMOV.
, # + Case 3: VMOV.
, # */ + if (!thumb_mode && (inst.instruction & 0xf0000000) != 0xe0000000) + goto bad_cond; + } else if (parse_big_immediate (&ptr, i) == SUCCESS) { /* Case 2: VMOV.
, # *************** neon_squash_bits (unsigned imm) *** 10214,10238 **** | ((imm & 0x01000000) >> 21); } ! /* Returns 1 if a number has "quarter-precision" float format ! 0baBbbbbbc defgh000 00000000 00000000. */ ! ! static int ! neon_is_quarter_float (unsigned imm) ! { ! int b = (imm & 0x20000000) != 0; ! int bs = (b << 25) | (b << 26) | (b << 27) | (b << 28) | (b << 29) ! | ((!b) << 30); ! return (imm & 0x81ffffff) == (imm & 0x81f80000) ! && ((imm & 0x7e000000) ^ bs) == 0; ! } ! ! /* Compress above representation to 0b...000 abcdefgh. */ static unsigned neon_qfloat_bits (unsigned imm) { ! return ((imm >> 19) & 0x7f) | (imm >> 24); } /* Returns CMODE. IMMBITS [7:0] is set to bits suitable for inserting into --- 10270,10281 ---- | ((imm & 0x01000000) >> 21); } ! /* Compress quarter-float representation to 0b...000 abcdefgh. */ static unsigned neon_qfloat_bits (unsigned imm) { ! return ((imm >> 19) & 0x7f) | ((imm >> 24) & 0x80); } /* Returns CMODE. IMMBITS [7:0] is set to bits suitable for inserting into *************** neon_qfloat_bits (unsigned imm) *** 10243,10251 **** static int neon_cmode_for_move_imm (unsigned immlo, unsigned immhi, unsigned *immbits, ! int *op, int size) { ! if (size == 64 && neon_bits_same_in_bytes (immhi) && neon_bits_same_in_bytes (immlo)) { /* Check this one first so we don't have to bother with immhi in later --- 10286,10301 ---- static int neon_cmode_for_move_imm (unsigned immlo, unsigned immhi, unsigned *immbits, ! int *op, int size, enum neon_el_type type) { ! if (type == NT_float && is_quarter_float (immlo) && immhi == 0) ! { ! if (size != 32 || *op == 1) ! return FAIL; ! *immbits = neon_qfloat_bits (immlo); ! return 0xf; ! } ! else if (size == 64 && neon_bits_same_in_bytes (immhi) && neon_bits_same_in_bytes (immlo)) { /* Check this one first so we don't have to bother with immhi in later *************** neon_cmode_for_move_imm (unsigned immlo, *** 10303,10315 **** *immbits = (immlo >> 16) & 0xff; return 0xd; } - else if (neon_is_quarter_float (immlo)) - { - if (size != 32 || *op == 1) - return FAIL; - *immbits = neon_qfloat_bits (immlo); - return 0xf; - } return FAIL; } --- 10353,10358 ---- *************** neon_move_immediate (void) *** 10996,11002 **** _("immediate has bits set outside the operand size")); if ((cmode = neon_cmode_for_move_imm (immlo, immhi, &immbits, &op, ! et.size)) == FAIL) { /* Invert relevant bits only. */ neon_invert_size (&immlo, &immhi, et.size); --- 11039,11045 ---- _("immediate has bits set outside the operand size")); if ((cmode = neon_cmode_for_move_imm (immlo, immhi, &immbits, &op, ! et.size, et.type)) == FAIL) { /* Invert relevant bits only. */ neon_invert_size (&immlo, &immhi, et.size); *************** neon_move_immediate (void) *** 11005,11011 **** neon_cmode_for_move_imm. */ op = !op; if ((cmode = neon_cmode_for_move_imm (immlo, immhi, &immbits, &op, ! et.size)) == FAIL) { first_error (_("immediate out of range")); return; --- 11048,11054 ---- neon_cmode_for_move_imm. */ op = !op; if ((cmode = neon_cmode_for_move_imm (immlo, immhi, &immbits, &op, ! et.size, et.type)) == FAIL) { first_error (_("immediate out of range")); return; Index: gas/testsuite/gas/arm/neon-const.d =================================================================== RCS file: gas/testsuite/gas/arm/neon-const.d diff -N gas/testsuite/gas/arm/neon-const.d *** /dev/null 1 Jan 1970 00:00:00 -0000 --- gas/testsuite/gas/arm/neon-const.d 24 Apr 2006 21:39:21 -0000 *************** *** 0 **** --- 1,265 ---- + # name: Neon floating-point constants + # as: -mfpu=neon + # objdump: -dr --prefix-addresses --show-raw-insn + + .*: +file format .*arm.* + + Disassembly of section .text: + 0[0-9a-f]+ <[^>]+> f2800050 vmov\.i32 q0, #0 ; 0x00000000 + 0[0-9a-f]+ <[^>]+> f2800f50 vmov\.f32 q0, #2 ; 0x40000000 + 0[0-9a-f]+ <[^>]+> f2810f50 vmov\.f32 q0, #4 ; 0x40800000 + 0[0-9a-f]+ <[^>]+> f2820f50 vmov\.f32 q0, #8 ; 0x41000000 + 0[0-9a-f]+ <[^>]+> f2830f50 vmov\.f32 q0, #16 ; 0x41800000 + 0[0-9a-f]+ <[^>]+> f2840f50 vmov\.f32 q0, #0\.125 ; 0x3e000000 + 0[0-9a-f]+ <[^>]+> f2850f50 vmov\.f32 q0, #0\.25 ; 0x3e800000 + 0[0-9a-f]+ <[^>]+> f2860f50 vmov\.f32 q0, #0\.5 ; 0x3f000000 + 0[0-9a-f]+ <[^>]+> f2870f50 vmov\.f32 q0, #1 ; 0x3f800000 + 0[0-9a-f]+ <[^>]+> f2800f51 vmov\.f32 q0, #2\.125 ; 0x40080000 + 0[0-9a-f]+ <[^>]+> f2810f51 vmov\.f32 q0, #4\.25 ; 0x40880000 + 0[0-9a-f]+ <[^>]+> f2820f51 vmov\.f32 q0, #8\.5 ; 0x41080000 + 0[0-9a-f]+ <[^>]+> f2830f51 vmov\.f32 q0, #17 ; 0x41880000 + 0[0-9a-f]+ <[^>]+> f2840f51 vmov\.f32 q0, #0\.1328125 ; 0x3e080000 + 0[0-9a-f]+ <[^>]+> f2850f51 vmov\.f32 q0, #0\.265625 ; 0x3e880000 + 0[0-9a-f]+ <[^>]+> f2860f51 vmov\.f32 q0, #0\.53125 ; 0x3f080000 + 0[0-9a-f]+ <[^>]+> f2870f51 vmov\.f32 q0, #1\.0625 ; 0x3f880000 + 0[0-9a-f]+ <[^>]+> f2800f52 vmov\.f32 q0, #2\.25 ; 0x40100000 + 0[0-9a-f]+ <[^>]+> f2810f52 vmov\.f32 q0, #4\.5 ; 0x40900000 + 0[0-9a-f]+ <[^>]+> f2820f52 vmov\.f32 q0, #9 ; 0x41100000 + 0[0-9a-f]+ <[^>]+> f2830f52 vmov\.f32 q0, #18 ; 0x41900000 + 0[0-9a-f]+ <[^>]+> f2840f52 vmov\.f32 q0, #0\.140625 ; 0x3e100000 + 0[0-9a-f]+ <[^>]+> f2850f52 vmov\.f32 q0, #0\.28125 ; 0x3e900000 + 0[0-9a-f]+ <[^>]+> f2860f52 vmov\.f32 q0, #0\.5625 ; 0x3f100000 + 0[0-9a-f]+ <[^>]+> f2870f52 vmov\.f32 q0, #1\.125 ; 0x3f900000 + 0[0-9a-f]+ <[^>]+> f2800f53 vmov\.f32 q0, #2\.375 ; 0x40180000 + 0[0-9a-f]+ <[^>]+> f2810f53 vmov\.f32 q0, #4\.75 ; 0x40980000 + 0[0-9a-f]+ <[^>]+> f2820f53 vmov\.f32 q0, #9\.5 ; 0x41180000 + 0[0-9a-f]+ <[^>]+> f2830f53 vmov\.f32 q0, #19 ; 0x41980000 + 0[0-9a-f]+ <[^>]+> f2840f53 vmov\.f32 q0, #0\.1484375 ; 0x3e180000 + 0[0-9a-f]+ <[^>]+> f2850f53 vmov\.f32 q0, #0\.296875 ; 0x3e980000 + 0[0-9a-f]+ <[^>]+> f2860f53 vmov\.f32 q0, #0\.59375 ; 0x3f180000 + 0[0-9a-f]+ <[^>]+> f2870f53 vmov\.f32 q0, #1\.1875 ; 0x3f980000 + 0[0-9a-f]+ <[^>]+> f2800f54 vmov\.f32 q0, #2\.5 ; 0x40200000 + 0[0-9a-f]+ <[^>]+> f2810f54 vmov\.f32 q0, #5 ; 0x40a00000 + 0[0-9a-f]+ <[^>]+> f2820f54 vmov\.f32 q0, #10 ; 0x41200000 + 0[0-9a-f]+ <[^>]+> f2830f54 vmov\.f32 q0, #20 ; 0x41a00000 + 0[0-9a-f]+ <[^>]+> f2840f54 vmov\.f32 q0, #0\.15625 ; 0x3e200000 + 0[0-9a-f]+ <[^>]+> f2850f54 vmov\.f32 q0, #0\.3125 ; 0x3ea00000 + 0[0-9a-f]+ <[^>]+> f2860f54 vmov\.f32 q0, #0\.625 ; 0x3f200000 + 0[0-9a-f]+ <[^>]+> f2870f54 vmov\.f32 q0, #1\.25 ; 0x3fa00000 + 0[0-9a-f]+ <[^>]+> f2800f55 vmov\.f32 q0, #2\.625 ; 0x40280000 + 0[0-9a-f]+ <[^>]+> f2810f55 vmov\.f32 q0, #5\.25 ; 0x40a80000 + 0[0-9a-f]+ <[^>]+> f2820f55 vmov\.f32 q0, #10\.5 ; 0x41280000 + 0[0-9a-f]+ <[^>]+> f2830f55 vmov\.f32 q0, #21 ; 0x41a80000 + 0[0-9a-f]+ <[^>]+> f2840f55 vmov\.f32 q0, #0\.1640625 ; 0x3e280000 + 0[0-9a-f]+ <[^>]+> f2850f55 vmov\.f32 q0, #0\.328125 ; 0x3ea80000 + 0[0-9a-f]+ <[^>]+> f2860f55 vmov\.f32 q0, #0\.65625 ; 0x3f280000 + 0[0-9a-f]+ <[^>]+> f2870f55 vmov\.f32 q0, #1\.3125 ; 0x3fa80000 + 0[0-9a-f]+ <[^>]+> f2800f56 vmov\.f32 q0, #2\.75 ; 0x40300000 + 0[0-9a-f]+ <[^>]+> f2810f56 vmov\.f32 q0, #5\.5 ; 0x40b00000 + 0[0-9a-f]+ <[^>]+> f2820f56 vmov\.f32 q0, #11 ; 0x41300000 + 0[0-9a-f]+ <[^>]+> f2830f56 vmov\.f32 q0, #22 ; 0x41b00000 + 0[0-9a-f]+ <[^>]+> f2840f56 vmov\.f32 q0, #0\.171875 ; 0x3e300000 + 0[0-9a-f]+ <[^>]+> f2850f56 vmov\.f32 q0, #0\.34375 ; 0x3eb00000 + 0[0-9a-f]+ <[^>]+> f2860f56 vmov\.f32 q0, #0\.6875 ; 0x3f300000 + 0[0-9a-f]+ <[^>]+> f2870f56 vmov\.f32 q0, #1\.375 ; 0x3fb00000 + 0[0-9a-f]+ <[^>]+> f2800f57 vmov\.f32 q0, #2\.875 ; 0x40380000 + 0[0-9a-f]+ <[^>]+> f2810f57 vmov\.f32 q0, #5\.75 ; 0x40b80000 + 0[0-9a-f]+ <[^>]+> f2820f57 vmov\.f32 q0, #11\.5 ; 0x41380000 + 0[0-9a-f]+ <[^>]+> f2830f57 vmov\.f32 q0, #23 ; 0x41b80000 + 0[0-9a-f]+ <[^>]+> f2840f57 vmov\.f32 q0, #0\.1796875 ; 0x3e380000 + 0[0-9a-f]+ <[^>]+> f2850f57 vmov\.f32 q0, #0\.359375 ; 0x3eb80000 + 0[0-9a-f]+ <[^>]+> f2860f57 vmov\.f32 q0, #0\.71875 ; 0x3f380000 + 0[0-9a-f]+ <[^>]+> f2870f57 vmov\.f32 q0, #1\.4375 ; 0x3fb80000 + 0[0-9a-f]+ <[^>]+> f2800f58 vmov\.f32 q0, #3 ; 0x40400000 + 0[0-9a-f]+ <[^>]+> f2810f58 vmov\.f32 q0, #6 ; 0x40c00000 + 0[0-9a-f]+ <[^>]+> f2820f58 vmov\.f32 q0, #12 ; 0x41400000 + 0[0-9a-f]+ <[^>]+> f2830f58 vmov\.f32 q0, #24 ; 0x41c00000 + 0[0-9a-f]+ <[^>]+> f2840f58 vmov\.f32 q0, #0\.1875 ; 0x3e400000 + 0[0-9a-f]+ <[^>]+> f2850f58 vmov\.f32 q0, #0\.375 ; 0x3ec00000 + 0[0-9a-f]+ <[^>]+> f2860f58 vmov\.f32 q0, #0\.75 ; 0x3f400000 + 0[0-9a-f]+ <[^>]+> f2870f58 vmov\.f32 q0, #1\.5 ; 0x3fc00000 + 0[0-9a-f]+ <[^>]+> f2800f59 vmov\.f32 q0, #3\.125 ; 0x40480000 + 0[0-9a-f]+ <[^>]+> f2810f59 vmov\.f32 q0, #6\.25 ; 0x40c80000 + 0[0-9a-f]+ <[^>]+> f2820f59 vmov\.f32 q0, #12\.5 ; 0x41480000 + 0[0-9a-f]+ <[^>]+> f2830f59 vmov\.f32 q0, #25 ; 0x41c80000 + 0[0-9a-f]+ <[^>]+> f2840f59 vmov\.f32 q0, #0\.1953125 ; 0x3e480000 + 0[0-9a-f]+ <[^>]+> f2850f59 vmov\.f32 q0, #0\.390625 ; 0x3ec80000 + 0[0-9a-f]+ <[^>]+> f2860f59 vmov\.f32 q0, #0\.78125 ; 0x3f480000 + 0[0-9a-f]+ <[^>]+> f2870f59 vmov\.f32 q0, #1\.5625 ; 0x3fc80000 + 0[0-9a-f]+ <[^>]+> f2800f5a vmov\.f32 q0, #3\.25 ; 0x40500000 + 0[0-9a-f]+ <[^>]+> f2810f5a vmov\.f32 q0, #6\.5 ; 0x40d00000 + 0[0-9a-f]+ <[^>]+> f2820f5a vmov\.f32 q0, #13 ; 0x41500000 + 0[0-9a-f]+ <[^>]+> f2830f5a vmov\.f32 q0, #26 ; 0x41d00000 + 0[0-9a-f]+ <[^>]+> f2840f5a vmov\.f32 q0, #0\.203125 ; 0x3e500000 + 0[0-9a-f]+ <[^>]+> f2850f5a vmov\.f32 q0, #0\.40625 ; 0x3ed00000 + 0[0-9a-f]+ <[^>]+> f2860f5a vmov\.f32 q0, #0\.8125 ; 0x3f500000 + 0[0-9a-f]+ <[^>]+> f2870f5a vmov\.f32 q0, #1\.625 ; 0x3fd00000 + 0[0-9a-f]+ <[^>]+> f2800f5b vmov\.f32 q0, #3\.375 ; 0x40580000 + 0[0-9a-f]+ <[^>]+> f2810f5b vmov\.f32 q0, #6\.75 ; 0x40d80000 + 0[0-9a-f]+ <[^>]+> f2820f5b vmov\.f32 q0, #13\.5 ; 0x41580000 + 0[0-9a-f]+ <[^>]+> f2830f5b vmov\.f32 q0, #27 ; 0x41d80000 + 0[0-9a-f]+ <[^>]+> f2840f5b vmov\.f32 q0, #0\.2109375 ; 0x3e580000 + 0[0-9a-f]+ <[^>]+> f2850f5b vmov\.f32 q0, #0\.421875 ; 0x3ed80000 + 0[0-9a-f]+ <[^>]+> f2860f5b vmov\.f32 q0, #0\.84375 ; 0x3f580000 + 0[0-9a-f]+ <[^>]+> f2870f5b vmov\.f32 q0, #1\.6875 ; 0x3fd80000 + 0[0-9a-f]+ <[^>]+> f2800f5c vmov\.f32 q0, #3\.5 ; 0x40600000 + 0[0-9a-f]+ <[^>]+> f2810f5c vmov\.f32 q0, #7 ; 0x40e00000 + 0[0-9a-f]+ <[^>]+> f2820f5c vmov\.f32 q0, #14 ; 0x41600000 + 0[0-9a-f]+ <[^>]+> f2830f5c vmov\.f32 q0, #28 ; 0x41e00000 + 0[0-9a-f]+ <[^>]+> f2840f5c vmov\.f32 q0, #0\.21875 ; 0x3e600000 + 0[0-9a-f]+ <[^>]+> f2850f5c vmov\.f32 q0, #0\.4375 ; 0x3ee00000 + 0[0-9a-f]+ <[^>]+> f2860f5c vmov\.f32 q0, #0\.875 ; 0x3f600000 + 0[0-9a-f]+ <[^>]+> f2870f5c vmov\.f32 q0, #1\.75 ; 0x3fe00000 + 0[0-9a-f]+ <[^>]+> f2800f5d vmov\.f32 q0, #3\.625 ; 0x40680000 + 0[0-9a-f]+ <[^>]+> f2810f5d vmov\.f32 q0, #7\.25 ; 0x40e80000 + 0[0-9a-f]+ <[^>]+> f2820f5d vmov\.f32 q0, #14\.5 ; 0x41680000 + 0[0-9a-f]+ <[^>]+> f2830f5d vmov\.f32 q0, #29 ; 0x41e80000 + 0[0-9a-f]+ <[^>]+> f2840f5d vmov\.f32 q0, #0\.2265625 ; 0x3e680000 + 0[0-9a-f]+ <[^>]+> f2850f5d vmov\.f32 q0, #0\.453125 ; 0x3ee80000 + 0[0-9a-f]+ <[^>]+> f2860f5d vmov\.f32 q0, #0\.90625 ; 0x3f680000 + 0[0-9a-f]+ <[^>]+> f2870f5d vmov\.f32 q0, #1\.8125 ; 0x3fe80000 + 0[0-9a-f]+ <[^>]+> f2800f5e vmov\.f32 q0, #3\.75 ; 0x40700000 + 0[0-9a-f]+ <[^>]+> f2810f5e vmov\.f32 q0, #7\.5 ; 0x40f00000 + 0[0-9a-f]+ <[^>]+> f2820f5e vmov\.f32 q0, #15 ; 0x41700000 + 0[0-9a-f]+ <[^>]+> f2830f5e vmov\.f32 q0, #30 ; 0x41f00000 + 0[0-9a-f]+ <[^>]+> f2840f5e vmov\.f32 q0, #0\.234375 ; 0x3e700000 + 0[0-9a-f]+ <[^>]+> f2850f5e vmov\.f32 q0, #0\.46875 ; 0x3ef00000 + 0[0-9a-f]+ <[^>]+> f2860f5e vmov\.f32 q0, #0\.9375 ; 0x3f700000 + 0[0-9a-f]+ <[^>]+> f2870f5e vmov\.f32 q0, #1\.875 ; 0x3ff00000 + 0[0-9a-f]+ <[^>]+> f2800f5f vmov\.f32 q0, #3\.875 ; 0x40780000 + 0[0-9a-f]+ <[^>]+> f2810f5f vmov\.f32 q0, #7\.75 ; 0x40f80000 + 0[0-9a-f]+ <[^>]+> f2820f5f vmov\.f32 q0, #15\.5 ; 0x41780000 + 0[0-9a-f]+ <[^>]+> f2830f5f vmov\.f32 q0, #31 ; 0x41f80000 + 0[0-9a-f]+ <[^>]+> f2840f5f vmov\.f32 q0, #0\.2421875 ; 0x3e780000 + 0[0-9a-f]+ <[^>]+> f2850f5f vmov\.f32 q0, #0\.484375 ; 0x3ef80000 + 0[0-9a-f]+ <[^>]+> f2860f5f vmov\.f32 q0, #0\.96875 ; 0x3f780000 + 0[0-9a-f]+ <[^>]+> f2870f5f vmov\.f32 q0, #1\.9375 ; 0x3ff80000 + 0[0-9a-f]+ <[^>]+> f3800650 vmov\.i32 q0, #-2147483648 ; 0x80000000 + 0[0-9a-f]+ <[^>]+> f3800f50 vmov\.f32 q0, #-2 ; 0xc0000000 + 0[0-9a-f]+ <[^>]+> f3810f50 vmov\.f32 q0, #-4 ; 0xc0800000 + 0[0-9a-f]+ <[^>]+> f3820f50 vmov\.f32 q0, #-8 ; 0xc1000000 + 0[0-9a-f]+ <[^>]+> f3830f50 vmov\.f32 q0, #-16 ; 0xc1800000 + 0[0-9a-f]+ <[^>]+> f3840f50 vmov\.f32 q0, #-0\.125 ; 0xbe000000 + 0[0-9a-f]+ <[^>]+> f3850f50 vmov\.f32 q0, #-0\.25 ; 0xbe800000 + 0[0-9a-f]+ <[^>]+> f3860f50 vmov\.f32 q0, #-0\.5 ; 0xbf000000 + 0[0-9a-f]+ <[^>]+> f3870f50 vmov\.f32 q0, #-1 ; 0xbf800000 + 0[0-9a-f]+ <[^>]+> f3800f51 vmov\.f32 q0, #-2\.125 ; 0xc0080000 + 0[0-9a-f]+ <[^>]+> f3810f51 vmov\.f32 q0, #-4\.25 ; 0xc0880000 + 0[0-9a-f]+ <[^>]+> f3820f51 vmov\.f32 q0, #-8\.5 ; 0xc1080000 + 0[0-9a-f]+ <[^>]+> f3830f51 vmov\.f32 q0, #-17 ; 0xc1880000 + 0[0-9a-f]+ <[^>]+> f3840f51 vmov\.f32 q0, #-0\.1328125 ; 0xbe080000 + 0[0-9a-f]+ <[^>]+> f3850f51 vmov\.f32 q0, #-0\.265625 ; 0xbe880000 + 0[0-9a-f]+ <[^>]+> f3860f51 vmov\.f32 q0, #-0\.53125 ; 0xbf080000 + 0[0-9a-f]+ <[^>]+> f3870f51 vmov\.f32 q0, #-1\.0625 ; 0xbf880000 + 0[0-9a-f]+ <[^>]+> f3800f52 vmov\.f32 q0, #-2\.25 ; 0xc0100000 + 0[0-9a-f]+ <[^>]+> f3810f52 vmov\.f32 q0, #-4\.5 ; 0xc0900000 + 0[0-9a-f]+ <[^>]+> f3820f52 vmov\.f32 q0, #-9 ; 0xc1100000 + 0[0-9a-f]+ <[^>]+> f3830f52 vmov\.f32 q0, #-18 ; 0xc1900000 + 0[0-9a-f]+ <[^>]+> f3840f52 vmov\.f32 q0, #-0\.140625 ; 0xbe100000 + 0[0-9a-f]+ <[^>]+> f3850f52 vmov\.f32 q0, #-0\.28125 ; 0xbe900000 + 0[0-9a-f]+ <[^>]+> f3860f52 vmov\.f32 q0, #-0\.5625 ; 0xbf100000 + 0[0-9a-f]+ <[^>]+> f3870f52 vmov\.f32 q0, #-1\.125 ; 0xbf900000 + 0[0-9a-f]+ <[^>]+> f3800f53 vmov\.f32 q0, #-2\.375 ; 0xc0180000 + 0[0-9a-f]+ <[^>]+> f3810f53 vmov\.f32 q0, #-4\.75 ; 0xc0980000 + 0[0-9a-f]+ <[^>]+> f3820f53 vmov\.f32 q0, #-9\.5 ; 0xc1180000 + 0[0-9a-f]+ <[^>]+> f3830f53 vmov\.f32 q0, #-19 ; 0xc1980000 + 0[0-9a-f]+ <[^>]+> f3840f53 vmov\.f32 q0, #-0\.1484375 ; 0xbe180000 + 0[0-9a-f]+ <[^>]+> f3850f53 vmov\.f32 q0, #-0\.296875 ; 0xbe980000 + 0[0-9a-f]+ <[^>]+> f3860f53 vmov\.f32 q0, #-0\.59375 ; 0xbf180000 + 0[0-9a-f]+ <[^>]+> f3870f53 vmov\.f32 q0, #-1\.1875 ; 0xbf980000 + 0[0-9a-f]+ <[^>]+> f3800f54 vmov\.f32 q0, #-2\.5 ; 0xc0200000 + 0[0-9a-f]+ <[^>]+> f3810f54 vmov\.f32 q0, #-5 ; 0xc0a00000 + 0[0-9a-f]+ <[^>]+> f3820f54 vmov\.f32 q0, #-10 ; 0xc1200000 + 0[0-9a-f]+ <[^>]+> f3830f54 vmov\.f32 q0, #-20 ; 0xc1a00000 + 0[0-9a-f]+ <[^>]+> f3840f54 vmov\.f32 q0, #-0\.15625 ; 0xbe200000 + 0[0-9a-f]+ <[^>]+> f3850f54 vmov\.f32 q0, #-0\.3125 ; 0xbea00000 + 0[0-9a-f]+ <[^>]+> f3860f54 vmov\.f32 q0, #-0\.625 ; 0xbf200000 + 0[0-9a-f]+ <[^>]+> f3870f54 vmov\.f32 q0, #-1\.25 ; 0xbfa00000 + 0[0-9a-f]+ <[^>]+> f3800f55 vmov\.f32 q0, #-2\.625 ; 0xc0280000 + 0[0-9a-f]+ <[^>]+> f3810f55 vmov\.f32 q0, #-5\.25 ; 0xc0a80000 + 0[0-9a-f]+ <[^>]+> f3820f55 vmov\.f32 q0, #-10\.5 ; 0xc1280000 + 0[0-9a-f]+ <[^>]+> f3830f55 vmov\.f32 q0, #-21 ; 0xc1a80000 + 0[0-9a-f]+ <[^>]+> f3840f55 vmov\.f32 q0, #-0\.1640625 ; 0xbe280000 + 0[0-9a-f]+ <[^>]+> f3850f55 vmov\.f32 q0, #-0\.328125 ; 0xbea80000 + 0[0-9a-f]+ <[^>]+> f3860f55 vmov\.f32 q0, #-0\.65625 ; 0xbf280000 + 0[0-9a-f]+ <[^>]+> f3870f55 vmov\.f32 q0, #-1\.3125 ; 0xbfa80000 + 0[0-9a-f]+ <[^>]+> f3800f56 vmov\.f32 q0, #-2\.75 ; 0xc0300000 + 0[0-9a-f]+ <[^>]+> f3810f56 vmov\.f32 q0, #-5\.5 ; 0xc0b00000 + 0[0-9a-f]+ <[^>]+> f3820f56 vmov\.f32 q0, #-11 ; 0xc1300000 + 0[0-9a-f]+ <[^>]+> f3830f56 vmov\.f32 q0, #-22 ; 0xc1b00000 + 0[0-9a-f]+ <[^>]+> f3840f56 vmov\.f32 q0, #-0\.171875 ; 0xbe300000 + 0[0-9a-f]+ <[^>]+> f3850f56 vmov\.f32 q0, #-0\.34375 ; 0xbeb00000 + 0[0-9a-f]+ <[^>]+> f3860f56 vmov\.f32 q0, #-0\.6875 ; 0xbf300000 + 0[0-9a-f]+ <[^>]+> f3870f56 vmov\.f32 q0, #-1\.375 ; 0xbfb00000 + 0[0-9a-f]+ <[^>]+> f3800f57 vmov\.f32 q0, #-2\.875 ; 0xc0380000 + 0[0-9a-f]+ <[^>]+> f3810f57 vmov\.f32 q0, #-5\.75 ; 0xc0b80000 + 0[0-9a-f]+ <[^>]+> f3820f57 vmov\.f32 q0, #-11\.5 ; 0xc1380000 + 0[0-9a-f]+ <[^>]+> f3830f57 vmov\.f32 q0, #-23 ; 0xc1b80000 + 0[0-9a-f]+ <[^>]+> f3840f57 vmov\.f32 q0, #-0\.1796875 ; 0xbe380000 + 0[0-9a-f]+ <[^>]+> f3850f57 vmov\.f32 q0, #-0\.359375 ; 0xbeb80000 + 0[0-9a-f]+ <[^>]+> f3860f57 vmov\.f32 q0, #-0\.71875 ; 0xbf380000 + 0[0-9a-f]+ <[^>]+> f3870f57 vmov\.f32 q0, #-1\.4375 ; 0xbfb80000 + 0[0-9a-f]+ <[^>]+> f3800f58 vmov\.f32 q0, #-3 ; 0xc0400000 + 0[0-9a-f]+ <[^>]+> f3810f58 vmov\.f32 q0, #-6 ; 0xc0c00000 + 0[0-9a-f]+ <[^>]+> f3820f58 vmov\.f32 q0, #-12 ; 0xc1400000 + 0[0-9a-f]+ <[^>]+> f3830f58 vmov\.f32 q0, #-24 ; 0xc1c00000 + 0[0-9a-f]+ <[^>]+> f3840f58 vmov\.f32 q0, #-0\.1875 ; 0xbe400000 + 0[0-9a-f]+ <[^>]+> f3850f58 vmov\.f32 q0, #-0\.375 ; 0xbec00000 + 0[0-9a-f]+ <[^>]+> f3860f58 vmov\.f32 q0, #-0\.75 ; 0xbf400000 + 0[0-9a-f]+ <[^>]+> f3870f58 vmov\.f32 q0, #-1\.5 ; 0xbfc00000 + 0[0-9a-f]+ <[^>]+> f3800f59 vmov\.f32 q0, #-3\.125 ; 0xc0480000 + 0[0-9a-f]+ <[^>]+> f3810f59 vmov\.f32 q0, #-6\.25 ; 0xc0c80000 + 0[0-9a-f]+ <[^>]+> f3820f59 vmov\.f32 q0, #-12\.5 ; 0xc1480000 + 0[0-9a-f]+ <[^>]+> f3830f59 vmov\.f32 q0, #-25 ; 0xc1c80000 + 0[0-9a-f]+ <[^>]+> f3840f59 vmov\.f32 q0, #-0\.1953125 ; 0xbe480000 + 0[0-9a-f]+ <[^>]+> f3850f59 vmov\.f32 q0, #-0\.390625 ; 0xbec80000 + 0[0-9a-f]+ <[^>]+> f3860f59 vmov\.f32 q0, #-0\.78125 ; 0xbf480000 + 0[0-9a-f]+ <[^>]+> f3870f59 vmov\.f32 q0, #-1\.5625 ; 0xbfc80000 + 0[0-9a-f]+ <[^>]+> f3800f5a vmov\.f32 q0, #-3\.25 ; 0xc0500000 + 0[0-9a-f]+ <[^>]+> f3810f5a vmov\.f32 q0, #-6\.5 ; 0xc0d00000 + 0[0-9a-f]+ <[^>]+> f3820f5a vmov\.f32 q0, #-13 ; 0xc1500000 + 0[0-9a-f]+ <[^>]+> f3830f5a vmov\.f32 q0, #-26 ; 0xc1d00000 + 0[0-9a-f]+ <[^>]+> f3840f5a vmov\.f32 q0, #-0\.203125 ; 0xbe500000 + 0[0-9a-f]+ <[^>]+> f3850f5a vmov\.f32 q0, #-0\.40625 ; 0xbed00000 + 0[0-9a-f]+ <[^>]+> f3860f5a vmov\.f32 q0, #-0\.8125 ; 0xbf500000 + 0[0-9a-f]+ <[^>]+> f3870f5a vmov\.f32 q0, #-1\.625 ; 0xbfd00000 + 0[0-9a-f]+ <[^>]+> f3800f5b vmov\.f32 q0, #-3\.375 ; 0xc0580000 + 0[0-9a-f]+ <[^>]+> f3810f5b vmov\.f32 q0, #-6\.75 ; 0xc0d80000 + 0[0-9a-f]+ <[^>]+> f3820f5b vmov\.f32 q0, #-13\.5 ; 0xc1580000 + 0[0-9a-f]+ <[^>]+> f3830f5b vmov\.f32 q0, #-27 ; 0xc1d80000 + 0[0-9a-f]+ <[^>]+> f3840f5b vmov\.f32 q0, #-0\.2109375 ; 0xbe580000 + 0[0-9a-f]+ <[^>]+> f3850f5b vmov\.f32 q0, #-0\.421875 ; 0xbed80000 + 0[0-9a-f]+ <[^>]+> f3860f5b vmov\.f32 q0, #-0\.84375 ; 0xbf580000 + 0[0-9a-f]+ <[^>]+> f3870f5b vmov\.f32 q0, #-1\.6875 ; 0xbfd80000 + 0[0-9a-f]+ <[^>]+> f3800f5c vmov\.f32 q0, #-3\.5 ; 0xc0600000 + 0[0-9a-f]+ <[^>]+> f3810f5c vmov\.f32 q0, #-7 ; 0xc0e00000 + 0[0-9a-f]+ <[^>]+> f3820f5c vmov\.f32 q0, #-14 ; 0xc1600000 + 0[0-9a-f]+ <[^>]+> f3830f5c vmov\.f32 q0, #-28 ; 0xc1e00000 + 0[0-9a-f]+ <[^>]+> f3840f5c vmov\.f32 q0, #-0\.21875 ; 0xbe600000 + 0[0-9a-f]+ <[^>]+> f3850f5c vmov\.f32 q0, #-0\.4375 ; 0xbee00000 + 0[0-9a-f]+ <[^>]+> f3860f5c vmov\.f32 q0, #-0\.875 ; 0xbf600000 + 0[0-9a-f]+ <[^>]+> f3870f5c vmov\.f32 q0, #-1\.75 ; 0xbfe00000 + 0[0-9a-f]+ <[^>]+> f3800f5d vmov\.f32 q0, #-3\.625 ; 0xc0680000 + 0[0-9a-f]+ <[^>]+> f3810f5d vmov\.f32 q0, #-7\.25 ; 0xc0e80000 + 0[0-9a-f]+ <[^>]+> f3820f5d vmov\.f32 q0, #-14\.5 ; 0xc1680000 + 0[0-9a-f]+ <[^>]+> f3830f5d vmov\.f32 q0, #-29 ; 0xc1e80000 + 0[0-9a-f]+ <[^>]+> f3840f5d vmov\.f32 q0, #-0\.2265625 ; 0xbe680000 + 0[0-9a-f]+ <[^>]+> f3850f5d vmov\.f32 q0, #-0\.453125 ; 0xbee80000 + 0[0-9a-f]+ <[^>]+> f3860f5d vmov\.f32 q0, #-0\.90625 ; 0xbf680000 + 0[0-9a-f]+ <[^>]+> f3870f5d vmov\.f32 q0, #-1\.8125 ; 0xbfe80000 + 0[0-9a-f]+ <[^>]+> f3800f5e vmov\.f32 q0, #-3\.75 ; 0xc0700000 + 0[0-9a-f]+ <[^>]+> f3810f5e vmov\.f32 q0, #-7\.5 ; 0xc0f00000 + 0[0-9a-f]+ <[^>]+> f3820f5e vmov\.f32 q0, #-15 ; 0xc1700000 + 0[0-9a-f]+ <[^>]+> f3830f5e vmov\.f32 q0, #-30 ; 0xc1f00000 + 0[0-9a-f]+ <[^>]+> f3840f5e vmov\.f32 q0, #-0\.234375 ; 0xbe700000 + 0[0-9a-f]+ <[^>]+> f3850f5e vmov\.f32 q0, #-0\.46875 ; 0xbef00000 + 0[0-9a-f]+ <[^>]+> f3860f5e vmov\.f32 q0, #-0\.9375 ; 0xbf700000 + 0[0-9a-f]+ <[^>]+> f3870f5e vmov\.f32 q0, #-1\.875 ; 0xbff00000 + 0[0-9a-f]+ <[^>]+> f3800f5f vmov\.f32 q0, #-3\.875 ; 0xc0780000 + 0[0-9a-f]+ <[^>]+> f3810f5f vmov\.f32 q0, #-7\.75 ; 0xc0f80000 + 0[0-9a-f]+ <[^>]+> f3820f5f vmov\.f32 q0, #-15\.5 ; 0xc1780000 + 0[0-9a-f]+ <[^>]+> f3830f5f vmov\.f32 q0, #-31 ; 0xc1f80000 + 0[0-9a-f]+ <[^>]+> f3840f5f vmov\.f32 q0, #-0\.2421875 ; 0xbe780000 + 0[0-9a-f]+ <[^>]+> f3850f5f vmov\.f32 q0, #-0\.484375 ; 0xbef80000 + 0[0-9a-f]+ <[^>]+> f3860f5f vmov\.f32 q0, #-0\.96875 ; 0xbf780000 + 0[0-9a-f]+ <[^>]+> f3870f5f vmov\.f32 q0, #-1\.9375 ; 0xbff80000 Index: gas/testsuite/gas/arm/neon-const.s =================================================================== RCS file: gas/testsuite/gas/arm/neon-const.s diff -N gas/testsuite/gas/arm/neon-const.s *** /dev/null 1 Jan 1970 00:00:00 -0000 --- gas/testsuite/gas/arm/neon-const.s 24 Apr 2006 21:39:21 -0000 *************** *** 0 **** --- 1,297 ---- + @ test floating-point constant parsing. + + .arm + .text + .syntax unified + + vmov.f32 q0, 0 + + vmov.f32 q0, 2.0 + vmov.f32 q0, 4.0 + vmov.f32 q0, 8.0 + vmov.f32 q0, 16.0 + vmov.f32 q0, 0.125 + vmov.f32 q0, 0.25 + vmov.f32 q0, 0.5 + vmov.f32 q0, 1.0 + + vmov.f32 q0, 2.125 + vmov.f32 q0, 4.25 + vmov.f32 q0, 8.5 + vmov.f32 q0, 17.0 + vmov.f32 q0, 0.1328125 + vmov.f32 q0, 0.265625 + vmov.f32 q0, 0.53125 + vmov.f32 q0, 1.0625 + + vmov.f32 q0, 2.25 + vmov.f32 q0, 4.5 + vmov.f32 q0, 9.0 + vmov.f32 q0, 18.0 + vmov.f32 q0, 0.140625 + vmov.f32 q0, 0.28125 + vmov.f32 q0, 0.5625 + vmov.f32 q0, 1.125 + + vmov.f32 q0, 2.375 + vmov.f32 q0, 4.75 + vmov.f32 q0, 9.5 + vmov.f32 q0, 19.0 + vmov.f32 q0, 0.1484375 + vmov.f32 q0, 0.296875 + vmov.f32 q0, 0.59375 + vmov.f32 q0, 1.1875 + + vmov.f32 q0, 2.5 + vmov.f32 q0, 5.0 + vmov.f32 q0, 10.0 + vmov.f32 q0, 20.0 + vmov.f32 q0, 0.15625 + vmov.f32 q0, 0.3125 + vmov.f32 q0, 0.625 + vmov.f32 q0, 1.25 + + vmov.f32 q0, 2.625 + vmov.f32 q0, 5.25 + vmov.f32 q0, 10.5 + vmov.f32 q0, 21.0 + vmov.f32 q0, 0.1640625 + vmov.f32 q0, 0.328125 + vmov.f32 q0, 0.65625 + vmov.f32 q0, 1.3125 + + vmov.f32 q0, 2.75 + vmov.f32 q0, 5.5 + vmov.f32 q0, 11.0 + vmov.f32 q0, 22.0 + vmov.f32 q0, 0.171875 + vmov.f32 q0, 0.34375 + vmov.f32 q0, 0.6875 + vmov.f32 q0, 1.375 + + vmov.f32 q0, 2.875 + vmov.f32 q0, 5.75 + vmov.f32 q0, 11.5 + vmov.f32 q0, 23.0 + vmov.f32 q0, 0.1796875 + vmov.f32 q0, 0.359375 + vmov.f32 q0, 0.71875 + vmov.f32 q0, 1.4375 + + vmov.f32 q0, 3.0 + vmov.f32 q0, 6.0 + vmov.f32 q0, 12.0 + vmov.f32 q0, 24.0 + vmov.f32 q0, 0.1875 + vmov.f32 q0, 0.375 + vmov.f32 q0, 0.75 + vmov.f32 q0, 1.5 + + vmov.f32 q0, 3.125 + vmov.f32 q0, 6.25 + vmov.f32 q0, 12.5 + vmov.f32 q0, 25.0 + vmov.f32 q0, 0.1953125 + vmov.f32 q0, 0.390625 + vmov.f32 q0, 0.78125 + vmov.f32 q0, 1.5625 + + vmov.f32 q0, 3.25 + vmov.f32 q0, 6.5 + vmov.f32 q0, 13.0 + vmov.f32 q0, 26.0 + vmov.f32 q0, 0.203125 + vmov.f32 q0, 0.40625 + vmov.f32 q0, 0.8125 + vmov.f32 q0, 1.625 + + vmov.f32 q0, 3.375 + vmov.f32 q0, 6.75 + vmov.f32 q0, 13.5 + vmov.f32 q0, 27.0 + vmov.f32 q0, 0.2109375 + vmov.f32 q0, 0.421875 + vmov.f32 q0, 0.84375 + vmov.f32 q0, 1.6875 + + vmov.f32 q0, 3.5 + vmov.f32 q0, 7.0 + vmov.f32 q0, 14.0 + vmov.f32 q0, 28.0 + vmov.f32 q0, 0.21875 + vmov.f32 q0, 0.4375 + vmov.f32 q0, 0.875 + vmov.f32 q0, 1.75 + + vmov.f32 q0, 3.625 + vmov.f32 q0, 7.25 + vmov.f32 q0, 14.5 + vmov.f32 q0, 29.0 + vmov.f32 q0, 0.2265625 + vmov.f32 q0, 0.453125 + vmov.f32 q0, 0.90625 + vmov.f32 q0, 1.8125 + + vmov.f32 q0, 3.75 + vmov.f32 q0, 7.5 + vmov.f32 q0, 15.0 + vmov.f32 q0, 30.0 + vmov.f32 q0, 0.234375 + vmov.f32 q0, 0.46875 + vmov.f32 q0, 0.9375 + vmov.f32 q0, 1.875 + + vmov.f32 q0, 3.875 + vmov.f32 q0, 7.75 + vmov.f32 q0, 15.5 + vmov.f32 q0, 31.0 + vmov.f32 q0, 0.2421875 + vmov.f32 q0, 0.484375 + vmov.f32 q0, 0.96875 + vmov.f32 q0, 1.9375 + + vmov.f32 q0, -0 + + vmov.f32 q0, -2.0 + vmov.f32 q0, -4.0 + vmov.f32 q0, -8.0 + vmov.f32 q0, -16.0 + vmov.f32 q0, -0.125 + vmov.f32 q0, -0.25 + vmov.f32 q0, -0.5 + vmov.f32 q0, -1.0 + + vmov.f32 q0, -2.125 + vmov.f32 q0, -4.25 + vmov.f32 q0, -8.5 + vmov.f32 q0, -17.0 + vmov.f32 q0, -0.1328125 + vmov.f32 q0, -0.265625 + vmov.f32 q0, -0.53125 + vmov.f32 q0, -1.0625 + + vmov.f32 q0, -2.25 + vmov.f32 q0, -4.5 + vmov.f32 q0, -9.0 + vmov.f32 q0, -18.0 + vmov.f32 q0, -0.140625 + vmov.f32 q0, -0.28125 + vmov.f32 q0, -0.5625 + vmov.f32 q0, -1.125 + + vmov.f32 q0, -2.375 + vmov.f32 q0, -4.75 + vmov.f32 q0, -9.5 + vmov.f32 q0, -19.0 + vmov.f32 q0, -0.1484375 + vmov.f32 q0, -0.296875 + vmov.f32 q0, -0.59375 + vmov.f32 q0, -1.1875 + + vmov.f32 q0, -2.5 + vmov.f32 q0, -5.0 + vmov.f32 q0, -10.0 + vmov.f32 q0, -20.0 + vmov.f32 q0, -0.15625 + vmov.f32 q0, -0.3125 + vmov.f32 q0, -0.625 + vmov.f32 q0, -1.25 + + vmov.f32 q0, -2.625 + vmov.f32 q0, -5.25 + vmov.f32 q0, -10.5 + vmov.f32 q0, -21.0 + vmov.f32 q0, -0.1640625 + vmov.f32 q0, -0.328125 + vmov.f32 q0, -0.65625 + vmov.f32 q0, -1.3125 + + vmov.f32 q0, -2.75 + vmov.f32 q0, -5.5 + vmov.f32 q0, -11.0 + vmov.f32 q0, -22.0 + vmov.f32 q0, -0.171875 + vmov.f32 q0, -0.34375 + vmov.f32 q0, -0.6875 + vmov.f32 q0, -1.375 + + vmov.f32 q0, -2.875 + vmov.f32 q0, -5.75 + vmov.f32 q0, -11.5 + vmov.f32 q0, -23.0 + vmov.f32 q0, -0.1796875 + vmov.f32 q0, -0.359375 + vmov.f32 q0, -0.71875 + vmov.f32 q0, -1.4375 + + vmov.f32 q0, -3.0 + vmov.f32 q0, -6.0 + vmov.f32 q0, -12.0 + vmov.f32 q0, -24.0 + vmov.f32 q0, -0.1875 + vmov.f32 q0, -0.375 + vmov.f32 q0, -0.75 + vmov.f32 q0, -1.5 + + vmov.f32 q0, -3.125 + vmov.f32 q0, -6.25 + vmov.f32 q0, -12.5 + vmov.f32 q0, -25.0 + vmov.f32 q0, -0.1953125 + vmov.f32 q0, -0.390625 + vmov.f32 q0, -0.78125 + vmov.f32 q0, -1.5625 + + vmov.f32 q0, -3.25 + vmov.f32 q0, -6.5 + vmov.f32 q0, -13.0 + vmov.f32 q0, -26.0 + vmov.f32 q0, -0.203125 + vmov.f32 q0, -0.40625 + vmov.f32 q0, -0.8125 + vmov.f32 q0, -1.625 + + vmov.f32 q0, -3.375 + vmov.f32 q0, -6.75 + vmov.f32 q0, -13.5 + vmov.f32 q0, -27.0 + vmov.f32 q0, -0.2109375 + vmov.f32 q0, -0.421875 + vmov.f32 q0, -0.84375 + vmov.f32 q0, -1.6875 + + vmov.f32 q0, -3.5 + vmov.f32 q0, -7.0 + vmov.f32 q0, -14.0 + vmov.f32 q0, -28.0 + vmov.f32 q0, -0.21875 + vmov.f32 q0, -0.4375 + vmov.f32 q0, -0.875 + vmov.f32 q0, -1.75 + + vmov.f32 q0, -3.625 + vmov.f32 q0, -7.25 + vmov.f32 q0, -14.5 + vmov.f32 q0, -29.0 + vmov.f32 q0, -0.2265625 + vmov.f32 q0, -0.453125 + vmov.f32 q0, -0.90625 + vmov.f32 q0, -1.8125 + + vmov.f32 q0, -3.75 + vmov.f32 q0, -7.5 + vmov.f32 q0, -15.0 + vmov.f32 q0, -30.0 + vmov.f32 q0, -0.234375 + vmov.f32 q0, -0.46875 + vmov.f32 q0, -0.9375 + vmov.f32 q0, -1.875 + + vmov.f32 q0, -3.875 + vmov.f32 q0, -7.75 + vmov.f32 q0, -15.5 + vmov.f32 q0, -31.0 + vmov.f32 q0, -0.2421875 + vmov.f32 q0, -0.484375 + vmov.f32 q0, -0.96875 + vmov.f32 q0, -1.9375 Index: gas/testsuite/gas/arm/neon-cov.d =================================================================== RCS file: /cvs/src/src/gas/testsuite/gas/arm/Attic/neon-cov.d,v retrieving revision 1.1.2.1 diff -c -p -r1.1.2.1 neon-cov.d *** gas/testsuite/gas/arm/neon-cov.d 3 Apr 2006 00:03:34 -0000 1.1.2.1 --- gas/testsuite/gas/arm/neon-cov.d 24 Apr 2006 21:39:21 -0000 *************** Disassembly of section \.text: *** 989,996 **** 0[0-9a-f]+ <[^>]+> f2870e17 vmov\.i8 d0, #119 ; 0x77 0[0-9a-f]+ <[^>]+> f3810e71 vmov\.i64 q0, #0xff0000ff000000ff 0[0-9a-f]+ <[^>]+> f3810e31 vmov\.i64 d0, #0xff0000ff000000ff ! 0[0-9a-f]+ <[^>]+> f2850f51 vmov\.f32 q0, #1027866624 ; 0x3d440000 ! 0[0-9a-f]+ <[^>]+> f2850f11 vmov\.f32 d0, #1027866624 ; 0x3d440000 0[0-9a-f]+ <[^>]+> f3b005c0 vmvn q0, q0 0[0-9a-f]+ <[^>]+> f3b005c0 vmvn q0, q0 0[0-9a-f]+ <[^>]+> f3b00580 vmvn d0, d0 --- 989,996 ---- 0[0-9a-f]+ <[^>]+> f2870e17 vmov\.i8 d0, #119 ; 0x77 0[0-9a-f]+ <[^>]+> f3810e71 vmov\.i64 q0, #0xff0000ff000000ff 0[0-9a-f]+ <[^>]+> f3810e31 vmov\.i64 d0, #0xff0000ff000000ff ! 0[0-9a-f]+ <[^>]+> f2810f51 vmov\.f32 q0, #4\.25 ; 0x40880000 ! 0[0-9a-f]+ <[^>]+> f2810f11 vmov\.f32 d0, #4\.25 ; 0x40880000 0[0-9a-f]+ <[^>]+> f3b005c0 vmvn q0, q0 0[0-9a-f]+ <[^>]+> f3b005c0 vmvn q0, q0 0[0-9a-f]+ <[^>]+> f3b00580 vmvn d0, d0 Index: opcodes/arm-dis.c =================================================================== RCS file: /cvs/src/src/opcodes/arm-dis.c,v retrieving revision 1.62.2.1 diff -c -p -r1.62.2.1 arm-dis.c *** opcodes/arm-dis.c 3 Apr 2006 00:03:34 -0000 1.62.2.1 --- opcodes/arm-dis.c 24 Apr 2006 21:39:24 -0000 *************** *** 26,31 **** --- 26,32 ---- #include "opcode/arm.h" #include "opintl.h" #include "safe-ctype.h" + #include "floatformat.h" /* FIXME: This shouldn't be done here. */ #include "coff/internal.h" *************** print_insn_neon (struct disassemble_info *** 2283,2288 **** --- 2284,2290 ---- unsigned long value = 0, hival = 0; unsigned shift; int size = 0; + int isfloat = 0; bits |= ((given >> 24) & 1) << 7; bits |= ((given >> 16) & 7) << 4; *************** print_insn_neon (struct disassemble_info *** 2339,2349 **** /* floating point encoding */ int tmp; ! value = (unsigned long)(bits & 0x7f) << (24 - 6); value |= (unsigned long)(bits & 0x80) << 24; tmp = bits & 0x40 ? 0x3c : 0x40; value |= (unsigned long)tmp << 24; size = 32; } else { --- 2341,2352 ---- /* floating point encoding */ int tmp; ! value = (unsigned long)(bits & 0x7f) << 19; value |= (unsigned long)(bits & 0x80) << 24; tmp = bits & 0x40 ? 0x3c : 0x40; value |= (unsigned long)tmp << 24; size = 32; + isfloat = 1; } else { *************** print_insn_neon (struct disassemble_info *** 2363,2369 **** break; case 32: ! func (stream, "#%ld\t; 0x%.8lx", value, value); break; case 64: --- 2366,2392 ---- break; case 32: ! if (isfloat) ! { ! unsigned char valbytes[4]; ! double fvalue; ! ! /* Do this a byte at a time so we don't have to ! worry about the host's endianness. */ ! valbytes[0] = value & 0xff; ! valbytes[1] = (value >> 8) & 0xff; ! valbytes[2] = (value >> 16) & 0xff; ! valbytes[3] = (value >> 24) & 0xff; ! ! floatformat_to_double ! (&floatformat_ieee_single_little, valbytes, ! &fvalue); ! ! func (stream, "#%.7g\t; 0x%.8lx", fvalue, ! value); ! } ! else ! func (stream, "#%ld\t; 0x%.8lx", value, value); break; case 64: --------------020808050903000406090902--