diff options
author | Yao Qi <yao.qi@linaro.org> | 2015-07-07 16:58:19 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2015-07-07 16:58:19 +0100 |
commit | 9fcf688e800e089217ecc8a47b228be180866df8 (patch) | |
tree | 23572564eba5c9afbd57602845482e421cd1a384 /gdb/testsuite/lib | |
parent | fbd8d50de232dcc7efa5ac4531adb72af2439977 (diff) | |
download | gdb-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.exp | 37 |
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 {} { |