diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d940bfbb5e4..b8c84aaa57f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2021-04-12 Will Schmidt + + * gdb.arch/powerpc-vsx-regs.exp: Initialize vs* doublewords. + 2021-04-12 Will Schmidt * gdb.arch/powerpc-plxv-nonrel.s: Testcase using diff --git a/gdb/testsuite/gdb.arch/vsx-regs.exp b/gdb/testsuite/gdb.arch/vsx-regs.exp index c234d6afd36..0b0d2fa4d53 100644 --- a/gdb/testsuite/gdb.arch/vsx-regs.exp +++ b/gdb/testsuite/gdb.arch/vsx-regs.exp @@ -89,7 +89,18 @@ if {$endianness == "big"} { set float_register ".raw 0xdeadbeefdeadbeef." -# First run the F0~F31/VS0~VS31 tests +# Note that the F0-F31 registers are shared with the doubleword 0 portion of +# the VS0-VS31 registers, the doubleword 1 portions of VS* remain unchanged +# after updates to F*. +# Since dl_main uses some VS* registers, and per inspection their values are +# no longer zero when our test reaches main(), we need to explicitly +# initialize the doubleword1 portions before we run our tests against +# values currently in those registers. + +# 0: Initialize the (doubleword 1) portion of the VS0-VS31 registers. +for {set i 0} {$i < 32} {incr i 1} { + gdb_test_no_output "set \$vs$i.v2_double\][0\] = 0" +} # 1: Set F0~F31 registers and check if it reflects on VS0~VS31. for {set i 0} {$i < 32} {incr i 1} {