From bf3ca999c1f4f186617765d5bcdeb5719e46954e Mon Sep 17 00:00:00 2001 From: Timothy Wall Date: Sun, 23 Apr 2000 02:53:35 +0000 Subject: [PATCH] Clean up F-unit assembly and tests. --- gas/ChangeLog | 6 ++++++ gas/config/tc-ia64.c | 17 +++++++++++++++-- gas/testsuite/ChangeLog | 5 +++++ gas/testsuite/gas/ia64/opc-f.d | 20 ++++++++++---------- gas/testsuite/gas/ia64/opc-f.s | 2 +- 5 files changed, 37 insertions(+), 13 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index f0357ff..ac47c1d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2000-04-22 Timothy Wall + + * config/tc-ia64.c (pseudo_func[]): Add new "nat" entry equivalent + to "natval". + (operand_match): Conditionally insert default bit values for IMMU9. + 2000-04-14 Matthew Green * configure.in: Add NetBSD/sparc ELF and NetBSD/sparc64 support. diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index e4b6bbe..9607ef8 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -448,7 +448,7 @@ pseudo_func[] = { "shuf", PSEUDO_FUNC_CONST, { 0x9 } }, /* fclass constants: */ - { "natval", PSEUDO_FUNC_CONST, { 0x100 } }, + { "nat", PSEUDO_FUNC_CONST, { 0x100 } }, { "qnan", PSEUDO_FUNC_CONST, { 0x080 } }, { "snan", PSEUDO_FUNC_CONST, { 0x040 } }, { "pos", PSEUDO_FUNC_CONST, { 0x001 } }, @@ -457,6 +457,8 @@ pseudo_func[] = { "unorm", PSEUDO_FUNC_CONST, { 0x008 } }, { "norm", PSEUDO_FUNC_CONST, { 0x010 } }, { "inf", PSEUDO_FUNC_CONST, { 0x020 } }, + + { "natval", PSEUDO_FUNC_CONST, { 0x100 } }, /* old usage */ }; /* 41-bit nop opcodes (one per unit): */ @@ -3815,7 +3817,6 @@ operand_match (idesc, index, e) case IA64_OPND_IMMU2: case IA64_OPND_IMMU7a: case IA64_OPND_IMMU7b: - case IA64_OPND_IMMU9: case IA64_OPND_IMMU21: case IA64_OPND_IMMU24: case IA64_OPND_MBTYPE4: @@ -3827,6 +3828,18 @@ operand_match (idesc, index, e) return 1; break; + case IA64_OPND_IMMU9: + bits = operand_width (idesc->operands[index]); + if (e->X_op == O_constant + && (bfd_vma) e->X_add_number < ((bfd_vma) 1 << bits)) + { + int lobits = e->X_add_number & 0x3; + if (((bfd_vma) e->X_add_number & 0x3C) != 0 && lobits == 0) + e->X_add_number |= (bfd_vma)0x3; + return 1; + } + break; + case IA64_OPND_IMM44: /* least 16 bits must be zero */ if ((e->X_add_number & 0xffff) != 0) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index ee01f3b..5f415f3 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2000-04-22 Timothy Wall + + * gas/ia64/opc-f.d: Disassemble zeroes to verify break.f. + * gas/ia64/opc-f.s: Add an explicit stop to make IAS output match. + Fri Apr 21 13:20:53 2000 Richard Henderson David Mosberger Timothy Wall diff --git a/gas/testsuite/gas/ia64/opc-f.d b/gas/testsuite/gas/ia64/opc-f.d index 0e69d3f..5087ac4 100644 --- a/gas/testsuite/gas/ia64/opc-f.d +++ b/gas/testsuite/gas/ia64/opc-f.d @@ -1,4 +1,4 @@ -# objdump: -d +# objdump: -d --disassemble-zeroes # name: ia64 opc-f .*: +file format .* @@ -469,16 +469,16 @@ Disassembly of section \.text: 996: 40 38 14 0c 76 00 xma\.hu f4=f5,f6,f7 99c: 00 00 04 00 nop\.i 0x0 9a0: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 - 9a6: 40 00 14 0c 74 00 xma\.l f4=f5,f6,f0 + 9a6: 40 00 14 0c 74 00 xmpy\.l f4=f5,f6 9ac: 00 00 04 00 nop\.i 0x0 9b0: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 - 9b6: 40 00 14 0c 74 00 xma\.l f4=f5,f6,f0 + 9b6: 40 00 14 0c 74 00 xmpy\.l f4=f5,f6 9bc: 00 00 04 00 nop\.i 0x0 9c0: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 - 9c6: 40 00 14 0c 77 00 xma\.h f4=f5,f6,f0 + 9c6: 40 00 14 0c 77 00 xmpy\.h f4=f5,f6 9cc: 00 00 04 00 nop\.i 0x0 9d0: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 - 9d6: 40 00 14 0c 76 00 xma\.hu f4=f5,f6,f0 + 9d6: 40 00 14 0c 76 00 xmpy\.hu f4=f5,f6 9dc: 00 00 04 00 nop\.i 0x0 9e0: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 9e6: 40 38 14 0c 70 00 fselect f4=f5,f6,f7 @@ -1210,8 +1210,8 @@ Disassembly of section \.text: 1906: 00 e7 ff 10 07 00 fchkf\.s3 0 <_start> 190c: 00 00 04 00 nop\.i 0x0 1910: 0c 00 00 00 01 00 \[MFI\] nop\.m 0x0 - \.\.\. - 191e: 04 00 0c 00 nop\.i 0x0 - 1922: 00 00 01 00 00 00 \[MFI\] nop\.m 0x0 - 1928: 00 02 00 00 00 00 nop\.f 0x0 - 192e: 04 00 00 00 nop\.i 0x0 + 1916: 00 00 00 00 00 00 break\.f 0x0 + 191c: 00 00 04 00 nop\.i 0x0 + 1920: 0d 00 00 00 01 00 \[MFI\] nop\.m 0x0 + 1926: 00 00 00 02 00 00 nop\.f 0x0 + 192c: 00 00 04 00 nop\.i 0x0;; diff --git a/gas/testsuite/gas/ia64/opc-f.s b/gas/testsuite/gas/ia64/opc-f.s index 8784bb9..929ba6a 100644 --- a/gas/testsuite/gas/ia64/opc-f.s +++ b/gas/testsuite/gas/ia64/opc-f.s @@ -477,5 +477,5 @@ _start: fchkf.s3 _start break.f 0 - nop.f 0 + nop.f 0;; -- 2.7.4