MIPS/GCC/testsuite: Fix data-sym-pool.c for n64 code
authorMaciej W. Rozycki <macro@mips.com>
Thu, 26 Apr 2018 21:03:11 +0000 (21:03 +0000)
committerMaciej W. Rozycki <macro@gcc.gnu.org>
Thu, 26 Apr 2018 21:03:11 +0000 (21:03 +0000)
With the soft-float n64 ABI and the data-sym-pool.c test case code like
below is produced:

.file 1 "data-sym-pool.c"
.section .mdebug.abi64
.previous
.nan legacy
.module softfloat
.module oddspreg
.abicalls
.option pic0
.text
.align 2
.globl frob
.set mips16
.set nomicromips
.ent frob
.type frob, @function
frob:
.frame $17,16,$31 # vars= 0, regs= 1/0, args= 0, gp= 0
.mask 0x00020000,-8
.fmask 0x00000000,0
daddiu $sp,-16
sd $17,8($sp)
move $17,$sp
ld $2,.L3
move $sp,$17
ld $17,8($sp)
daddiu $sp,16
jr $31
.type __pool_frob_3, @object
__pool_frob_3:
.align 3
.L3:
.dword 305419896
.type __pend_frob_3, @function
__pend_frob_3:
.insn
.end frob
.size frob, .-frob
.ident "GCC: (GNU) 8.0.1 20180410 (experimental)"

(we have no support for hard-float n64 MIPS16 code generation), which
means that the test case will fail, as the regular expression pattern
expects `lw' and `.word' rather than `ld' and `.dword' respectively to
appear in assembly code generation.  Correct the pattern in an obvious
way then making it accept both intructions and pseudo-ops.

gcc/testsuite/
* gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and
`.dword' in addition to `lw' and `.word'.

From-SVN: r259691

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/data-sym-pool.c

index fc0d3dcb9c38fa8a75d144be292ac91e91337d38..972059364bf869757445c6508b0025326cfc5bb7 100644 (file)
@@ -1,3 +1,8 @@
+2018-04-26  Maciej W. Rozycki  <macro@mips.com>
+
+       * gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and
+       `.dword' in addition to `lw' and `.word'.
+
 2018-04-26  Maciej W. Rozycki  <macro@mips.com>
 
        * gcc.target/mips/data-sym-pool.c (dg-options): Add `-mplt'.
index c73c8adb9caf23704068e91afd6a03da0a9547c9..8776d2b6e4e9aba7f51bc518e20ef3e31057be96 100644 (file)
@@ -26,4 +26,4 @@ __pend_frob_3:                                        # The symbol must match.
    symbol from being placed in the constant pool at `-O0' for SVR4 code
    and consequently interfering with test expectations.  */
 
-/* { dg-final { scan-assembler "\tlw\t\\\$\[0-9\]+,(.L(\[0-9\]+))\n.*\t\\.type\t(__pool_frob_\\2), @object\n\\3:\n\t\\.align\t2\n\\1:\n\t\\.word\t305419896\n\t\\.type\t(__pend_frob_\\2), @function\n\\4:\n\t\\.insn\n" } } */
+/* { dg-final { scan-assembler "\tl\[wd\]\t\\\$\[0-9\]+,(.L(\[0-9\]+))\n.*\t\\.type\t(__pool_frob_\\2), @object\n\\3:\n\t\\.align\t2\n\\1:\n\t\\.d?word\t305419896\n\t\\.type\t(__pend_frob_\\2), @function\n\\4:\n\t\\.insn\n" } } */