diff options
author | Carl Love <cel@us.ibm.com> | 2021-06-16 12:07:39 -0500 |
---|---|---|
committer | Carl Love <cel@us.ibm.com> | 2021-06-25 11:08:47 -0500 |
commit | 202054aea670db6441f6b04c59ff58e6c3a1f8ca (patch) | |
tree | 1853d09c46b22e02d7ac297985b470412aa06621 | |
parent | 50a6759f0f541ea965c7330bfbfe335cb8d66af8 (diff) | |
download | gdb-202054aea670db6441f6b04c59ff58e6c3a1f8ca.zip gdb-202054aea670db6441f6b04c59ff58e6c3a1f8ca.tar.gz gdb-202054aea670db6441f6b04c59ff58e6c3a1f8ca.tar.bz2 |
Add ISA 3.1 check to powerpc-plxv-norel.exp
This patch adds a file with the ISA 3.1 check. The ISA 3.1 check is
added to the test to ensure the test is only run on ISA 3.1 or newer.
gdb/testsuite/ChangeLog
2021-06-25 Carl Love <cel@us.ibm.com>
* gdb.arch/powerpc-plxv-norel.exp: Add call to skip_power_isa_3_1_tests.
* lib/gdb.exp(skip_power_isa_3_1_tests): New gdb_caching_proc test.
-rw-r--r-- | gdb/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp | 4 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 47 |
3 files changed, 55 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e5164c7..040a12f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +gdb/testsuite/ChangeLog +2021-06-25 Carl Love <cel@us.ibm.com> + + * gdb.arch/powerpc-plxv-norel.exp: Add call to skip_power_isa_3_1_tests. + * lib/gdb.exp(skip_power_isa_3_1_tests): New gdb_caching_proc test. + 2021-06-25 Tom Tromey <tromey@adacore.com> * gdb.ada/py_range.exp: Add type name test cases. diff --git a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp index 08f1a37..446b2bd 100644 --- a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp +++ b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp @@ -16,8 +16,8 @@ # Test to see if gdb is properly single stepping over the # displaced plxv instruction. -if { ![istarget powerpc*-*] } { - verbose "Skipping powerpc plxv test." +if { ![istarget powerpc*-*] || [skip_power_isa_3_1_tests] } { + verbose "Skipping powerpc ISA 3.1 plxv test." return } diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 02b6561..1013120 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -3129,6 +3129,53 @@ gdb_caching_proc skip_altivec_tests { return $skip_vmx_tests } +# Run a test on the power target to see if it supports ISA 3.1 instructions +gdb_caching_proc skip_power_isa_3_1_tests { + global srcdir subdir gdb_prompt inferior_exited_re + + set me "skip_power_isa_3_1_tests" + + # Compile a test program containing ISA 3.1 instructions. + set src { + int main() { + asm volatile ("pnop"); // marker + asm volatile ("nop"); + return 0; + } + } + + if {![gdb_simple_compile $me $src executable ]} { + return 1 + } + + # No error message, compilation succeeded so now run it via gdb. + + gdb_exit + gdb_start + gdb_reinitialize_dir $srcdir/$subdir + gdb_load "$obj" + gdb_run_cmd + gdb_expect { + -re ".*Illegal instruction.*${gdb_prompt} $" { + verbose -log "\n$me Power ISA 3.1 hardware not detected" + set skip_power_isa_3_1_tests 1 + } + -re ".*$inferior_exited_re normally.*${gdb_prompt} $" { + verbose -log "\n$me: Power ISA 3.1 hardware detected" + set skip_power_isa_3_1_tests 0 + } + default { + warning "\n$me: default case taken" + set skip_power_isa_3_1_tests 1 + } + } + gdb_exit + remote_file build delete $obj + + verbose "$me: returning $skip_power_isa_3_1_tests" 2 + return $skip_power_isa_3_1_tests +} + # Run a test on the target to see if it supports vmx hardware. Return 0 if so, # 1 if it does not. Based on 'check_vmx_hw_available' from the GCC testsuite. |