aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2015-07-07 16:58:19 +0100
committerYao Qi <yao.qi@linaro.org>2015-07-07 16:58:19 +0100
commit9fcf688e800e089217ecc8a47b228be180866df8 (patch)
tree23572564eba5c9afbd57602845482e421cd1a384 /gdb/testsuite/lib
parentfbd8d50de232dcc7efa5ac4531adb72af2439977 (diff)
downloadgdb-9fcf688e800e089217ecc8a47b228be180866df8.zip
gdb-9fcf688e800e089217ecc8a47b228be180866df8.tar.gz
gdb-9fcf688e800e089217ecc8a47b228be180866df8.tar.bz2
New proc is_aarch32_target
GDB tests running on arm target should be also run on aarch32 (32-bit mode on aarch64). There should be no difference. It is not precise to check target triplet to decide which tests should be run, because if I compiler all the test binary in 32-bit (arm program), but target triplet is still aarch64, so that these arm specific tests are skipped. This patch is to add a new proc is_aarch32_target which return true if target triplet is arm or the test binary is compiled for arm. gdb/testsuite: 2015-07-07 Yao Qi <yao.qi@linaro.org> * lib/gdb.exp (is_aarch32_target): New proc. * gdb.arch/arm-bl-branch-dest.exp: Check is_aarch32_target instead of "istarget "arm*-*-*"". * gdb.arch/arm-disp-step.exp: Likewise. * gdb.arch/thumb-bx-pc.exp: Likewise. * gdb.arch/thumb-prologue.exp: Likewise. * gdb.arch/thumb-singlestep.exp: Likewise. * gdb.base/disp-step-syscall.exp: Likewise. * gdb.base/float.exp: Likewise.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/gdb.exp37
1 files changed, 37 insertions, 0 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 381297a..e8ae08c 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -2271,6 +2271,43 @@ proc is_x86_like_target {} {
return [expr [is_ilp32_target] && ![is_amd64_regs_target]]
}
+# Return 1 if this target is an arm or aarch32 on aarch64.
+
+gdb_caching_proc is_aarch32_target {
+ if { [istarget "arm*-*-*"] } {
+ return 1
+ }
+
+ if { ![istarget "aarch64*-*-*"] } {
+ return 0
+ }
+
+ set me "is_aarch32_target"
+
+ set src [standard_temp_file aarch32[pid].s]
+ set obj [standard_temp_file aarch32[pid].o]
+
+ set list {}
+ foreach reg \
+ {r0 r1 r2 r3} {
+ lappend list "\tmov $reg, $reg"
+ }
+ gdb_produce_source $src [join $list \n]
+
+ verbose "$me: compiling testfile $src" 2
+ set lines [gdb_compile $src $obj object {quiet}]
+ file delete $src
+ file delete $obj
+
+ if ![string match "" $lines] then {
+ verbose "$me: testfile compilation failed, returning 0" 2
+ return 0
+ }
+
+ verbose "$me: returning 1" 2
+ return 1
+}
+
# Return 1 if displaced stepping is supported on target, otherwise, return 0.
proc support_displaced_stepping {} {