binutils-gdb/gdb/testsuite/gdb.arch
Luis Machado f7a7000d48 Fix SVE-related failure in gdb.arch/aarch64-fp.exp
The gdb.arch/aarch64-fp.exp test assumes it is dealing with a regular SIMD
target that exposes the V registers as raw registers.  SVE-enabled targets
turn the V registers into pseudo-registers.

That is all fine, but the testcase uses the "info registers" command, which
prints pseudo-register's contents twice. One for the hex format and another
for the natural format of the type.

(gdb) info registers v0
v0             {d = {f = {0x0, 0x0}, u = {0x1716151413121110, 0x1f1e1d1c1b1a1918}, s = {0x1716151413121110, 0x1f1e1d1c1b1a1918}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c}, s = {0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c}}, h = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1110, 0x1312, 0x1514, 0x1716, 0x1918, 0x1b1a, 0x1d1c, 0x1f1e}, s = {0x1110, 0x1312, 0x1514, 0x1716, 0x1918, 0x1b1a, 0x1d1c, 0x1f1e}}, b = {u = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}, s = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}}, q = {u = {0x1f1e1d1c1b1a19181716151413121110}, s = {0x1f1e1d1c1b1a19181716151413121110}}} {d = {f = {1.846323925681849e-197, 8.5677456166123577e-159}, u = {1663540288323457296, 2242261671028070680}, s = {1663540288323457296, 2242261671028070680}}, s = {f = {1.84362032e-27, 4.84942184e-25, 1.27466897e-22, 3.34818801e-20}, u = {319951120, 387323156, 454695192, 522067228}, s = {319951120, 387323156, 454695192, 522067228}}, h = {f = {0.00061798, 0.00086308, 0.0012398, 0.00173, 0.0024872, 0.0034676, 0.0049896, 0.0069504}, u = {4368, 4882, 5396, 5910, 6424, 6938, 7452, 7966}, s = {4368, 4882, 5396, 5910, 6424, 6938, 7452, 7966}}, b = {u = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}, s = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}}, q = {u = {41362427191743139026751447860679676176}, s = {41362427191743139026751447860679676176}}}

(gdb) p/x $v0
$1 = {d = {f = {0x0, 0x0}, u = {0x1716151413121110, 0x1f1e1d1c1b1a1918}, s = {0x1716151413121110, 0x1f1e1d1c1b1a1918}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c}, s = {0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c}}, h = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1110, 0x1312, 0x1514, 0x1716, 0x1918, 0x1b1a, 0x1d1c, 0x1f1e}, s = {0x1110, 0x1312, 0x1514, 0x1716, 0x1918, 0x1b1a, 0x1d1c, 0x1f1e}}, b = {u = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}, s = {0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f}}, q = {u = {0x1f1e1d1c1b1a19181716151413121110}, s = {0x1f1e1d1c1b1a19181716151413121110}}}

Since the testcase is not expecting that, we run into a couple failures:

FAIL: gdb.arch/aarch64-fp.exp: check register v0 value
FAIL: gdb.arch/aarch64-fp.exp: check register v1 value

The following patch switches to using "p/x" for printing register values, which
prints the values once with the hex format, instead of twice.

gdb/testsuite/ChangeLog

2020-02-28  Luis Machado  <luis.machado@linaro.org>

	* gdb.arch/aarch64-fp.exp: Switch from "info registers" command
	to "p/x".
2020-02-28 12:24:15 -03:00
..
aarch64-atomic-inst.c
aarch64-atomic-inst.exp
aarch64-brk-patterns.c
aarch64-brk-patterns.exp
aarch64-dbreg-contents.c
aarch64-dbreg-contents.exp
aarch64-fp.c
aarch64-fp.exp Fix SVE-related failure in gdb.arch/aarch64-fp.exp 2020-02-28 12:24:15 -03:00
aarch64-pauth.c
aarch64-pauth.exp
aarch64-prologue.c
aarch64-prologue.exp
aarch64-sighandler-regs.c
aarch64-sighandler-regs.exp
aarch64-tagged-pointer.c
aarch64-tagged-pointer.exp
aix-sighandle.c
aix-sighandle.exp
alpha-step.c
alpha-step.exp
altivec-abi.c
altivec-abi.exp
altivec-regs.c
altivec-regs.exp
amd64-break-on-asm-line.exp
amd64-break-on-asm-line.S
amd64-byte.exp
amd64-disp-step-avx.exp
amd64-disp-step-avx.S
amd64-disp-step.exp
amd64-disp-step.S
amd64-dword.exp
amd64-entry-value-inline.c
amd64-entry-value-inline.exp
amd64-entry-value-inline.S
amd64-entry-value-param-dwarf5.c
amd64-entry-value-param-dwarf5.exp
amd64-entry-value-param-dwarf5.S
amd64-entry-value-param.c
amd64-entry-value-param.exp
amd64-entry-value-param.S
amd64-entry-value-paramref.cc
amd64-entry-value-paramref.exp
amd64-entry-value-paramref.S
amd64-entry-value.cc
amd64-entry-value.exp
amd64-entry-value.s
amd64-eval.cc
amd64-eval.exp
amd64-gs_base.c
amd64-gs_base.exp
amd64-i386-address.exp
amd64-i386-address.S
amd64-init-x87-values.exp
amd64-init-x87-values.S
amd64-invalid-stack-middle.c
amd64-invalid-stack-middle.exp
amd64-invalid-stack-middle.S
amd64-invalid-stack-top.c
amd64-invalid-stack-top.exp
amd64-optimout-repeat.c
amd64-optimout-repeat.exp
amd64-optimout-repeat.S
amd64-osabi.exp
amd64-prologue-skip.exp
amd64-prologue-skip.S
amd64-prologue-xmm.c
amd64-prologue-xmm.exp
amd64-prologue-xmm.s
amd64-pseudo.c
amd64-stap-optional-prefix.exp
amd64-stap-optional-prefix.S
amd64-stap-special-operands.exp
amd64-stap-three-arg-disp.c
amd64-stap-three-arg-disp.S
amd64-stap-triplet.c
amd64-stap-triplet.S
amd64-stap-wrong-subexp.exp
amd64-stap-wrong-subexp.S
amd64-tailcall-cxx1.cc
amd64-tailcall-cxx1.S
amd64-tailcall-cxx2.cc
amd64-tailcall-cxx2.S
amd64-tailcall-cxx.exp
amd64-tailcall-noret.c
amd64-tailcall-noret.exp
amd64-tailcall-noret.S
amd64-tailcall-ret.c
amd64-tailcall-ret.exp
amd64-tailcall-ret.S
amd64-tailcall-self.c
amd64-tailcall-self.exp
amd64-tailcall-self.S
amd64-word.exp
arc-analyze-prologue.exp
arc-analyze-prologue.S
arc-decode-insn.exp
arc-decode-insn.S
arc-tdesc-cpu.exp
arc-tdesc-cpu.xml
arm-bl-branch-dest.c
arm-bl-branch-dest.exp
arm-cmse-sgstubs.c
arm-cmse-sgstubs.exp
arm-disassembler-options.exp
arm-disp-step.exp
arm-disp-step.S
arm-neon.c
arm-neon.exp
arm-single-step-kernel-helper.c
arm-single-step-kernel-helper.exp
avr-flash-qualifier.c
avr-flash-qualifier.exp
cordic.ko.bz2
cordic.ko.debug.bz2
disp-step-insn-reloc.exp
e500-abi.c
e500-abi.exp
e500-prologue.c
e500-prologue.exp
e500-regs.c
e500-regs.exp
ftrace-insn-reloc.exp
gdb1291.exp
gdb1291.s
gdb1431.exp
gdb1431.s
gdb1558.c
gdb1558.exp
i386-avx512.c
i386-avx512.exp
i386-avx.c
i386-avx.exp
i386-biarch-core.core.bz2
i386-biarch-core.exp
i386-bp_permanent.c
i386-bp_permanent.exp
i386-byte.exp
i386-cfi-notcurrent.exp
i386-cfi-notcurrent.S
i386-disp-step.exp
i386-disp-step.S
i386-dr3-watch.c
i386-dr3-watch.exp
i386-float.exp
i386-float.S
i386-gnu-cfi-asm.S
i386-gnu-cfi.c
i386-gnu-cfi.exp
i386-mpx-call.c
i386-mpx-call.exp
i386-mpx-map.c
i386-mpx-map.exp
i386-mpx-sigsegv.c
i386-mpx-sigsegv.exp
i386-mpx-simple_segv.c
i386-mpx-simple_segv.exp
i386-mpx.c
i386-mpx.exp
i386-permbkpt.exp
i386-permbkpt.S
i386-pkru.c
i386-pkru.exp
i386-prologue.c
i386-prologue.exp
i386-pseudo.c
i386-signal.c
i386-signal.exp
i386-size-overlap.c
i386-size-overlap.exp
i386-size.c
i386-size.exp
i386-sse-stack-align.c
i386-sse-stack-align.exp
i386-sse-stack-align.S
i386-sse.c
i386-sse.exp
i386-stap-eval-lang-ada.c
i386-stap-eval-lang-ada.exp
i386-stap-eval-lang-ada.S
i386-unwind.c
i386-unwind.exp
i386-word.exp
ia64-breakpoint-shadow.exp
ia64-breakpoint-shadow.S
insn-reloc.c
iwmmxt-regs.c
iwmmxt-regs.exp
mips16-thunks-inmain.c
mips16-thunks-main.c
mips16-thunks-sin.c
mips16-thunks-sinfrob16.c
mips16-thunks-sinfrob.c
mips16-thunks-sinmain.c
mips16-thunks-sinmips16.c
mips16-thunks.exp
mips-disassembler-options.exp
mips-disassembler-options.s
mips-fcr.c
mips-fcr.exp
mips-fpregset-core.c
mips-fpregset-core.exp
mips-octeon-bbit.c
mips-octeon-bbit.exp
pa64-nullify.s
pa-nullify.exp
pa-nullify.s
powerpc-aix-prologue.c
powerpc-aix-prologue.exp
powerpc-altivec2.exp
powerpc-altivec2.s
powerpc-altivec3.exp
powerpc-altivec3.s
powerpc-altivec.exp
powerpc-altivec.s
powerpc-d128-regs.c
powerpc-d128-regs.exp
powerpc-disassembler-options.exp
powerpc-fpscr-gcore.exp
powerpc-htm-regs.c
powerpc-htm-regs.exp
powerpc-power7.exp
powerpc-power7.s
powerpc-power8.exp
powerpc-power8.s
powerpc-power9.exp
powerpc-power9.s
powerpc-ppr-dscr.c
powerpc-ppr-dscr.exp
powerpc-prologue-frame.c
powerpc-prologue-frame.exp
powerpc-prologue-frame.S
powerpc-prologue.c
powerpc-prologue.exp
powerpc-stackless.exp
powerpc-stackless.S
powerpc-tar.c
powerpc-tar.exp
powerpc-vector-regs.c
powerpc-vector-regs.exp
powerpc-vsx2.exp
powerpc-vsx2.s
powerpc-vsx3.exp
powerpc-vsx3.s
powerpc-vsx-gcore.exp
powerpc-vsx.exp
powerpc-vsx.s
ppc64-atomic-inst.exp
ppc64-atomic-inst.S
ppc64-isa207-atomic-inst.c
ppc64-isa207-atomic-inst.exp
ppc64-isa207-atomic-inst.S
ppc64-symtab-cordic.exp
ppc-dfp.c
ppc-dfp.exp
ppc-fp.c
ppc-fp.exp
ppc-longdouble.c
ppc-longdouble.exp
pr25124.exp
pr25124.S
riscv-bp-infcall.c
riscv-bp-infcall.exp
riscv-reg-aliases.c
riscv-reg-aliases.exp
riscv-unwind-long-insn-6.s
riscv-unwind-long-insn-8.s
riscv-unwind-long-insn.c
riscv-unwind-long-insn.exp
s390-disassembler-options.exp
s390-multiarch.c
s390-multiarch.exp
s390-stackless.exp
s390-stackless.S
s390-tdbregs.c
s390-tdbregs.exp
s390-vregs.exp
s390-vregs.S
sparc64-adi.c
sparc64-adi.exp
sparc64-regs.exp
sparc64-regs.S
sparc-sysstep.c
sparc-sysstep.exp
thumb2-it.exp
thumb2-it.S
thumb-bx-pc.exp
thumb-bx-pc.S
thumb-prologue.c
thumb-prologue.exp
thumb-singlestep.exp
thumb-singlestep.S
vsx-regs.c
vsx-regs.exp