mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
1368b914e9
Now that all port tests live under testsuite/sim/*/, and none live in testsuite/ directly, flatten the structure by moving all of the dirs under testsuite/sim/ to testsuite/ directly. We need to stop passing --tool to dejagnu so that it searches all dirs and not just ones that start with "sim". Since we have no other dirs in this tree, and no plans to add any, should be fine.
96 lines
1.5 KiB
ArmAsm
96 lines
1.5 KiB
ArmAsm
# Blackfin testcase for push/pop instructions
|
|
# mach: bfin
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
|
|
# This uses R0/R1 as scratch ... assume those work fine in general
|
|
.macro check loader:req, reg:req
|
|
\loader \reg, 0x12345678
|
|
[--SP] = \reg;
|
|
R0 = [SP];
|
|
R1 = \reg;
|
|
CC = R0 == R1;
|
|
IF !CC JUMP 8f;
|
|
\loader \reg, 0x87654321
|
|
\reg = [SP++];
|
|
CC = R0 == R1;
|
|
IF !CC JUMP 8f;
|
|
# need to do a long jump to avoid PCREL issues
|
|
jump 9f;
|
|
8: jump 1f;
|
|
9:
|
|
.endm
|
|
.macro imm_check reg:req
|
|
check imm32, \reg
|
|
.endm
|
|
.macro dmm_check reg:req
|
|
check dmm32, \reg
|
|
.endm
|
|
|
|
imm_check R2
|
|
imm_check R3
|
|
imm_check R4
|
|
imm_check R5
|
|
imm_check R6
|
|
imm_check R7
|
|
imm_check P0
|
|
imm_check P1
|
|
imm_check P2
|
|
imm_check P3
|
|
imm_check P4
|
|
imm_check P5
|
|
imm_check FP
|
|
imm_check I0
|
|
imm_check I1
|
|
imm_check I2
|
|
imm_check I3
|
|
imm_check M0
|
|
imm_check M1
|
|
imm_check M2
|
|
imm_check M3
|
|
imm_check B0
|
|
imm_check B1
|
|
imm_check B2
|
|
imm_check B3
|
|
imm_check L0
|
|
imm_check L1
|
|
imm_check L2
|
|
imm_check L3
|
|
dmm_check A0.X
|
|
dmm_check A0.W
|
|
dmm_check A1.X
|
|
dmm_check A1.W
|
|
dmm_check LC0
|
|
dmm_check LC1
|
|
# Make sure the top/bottom regs have bit 1 set
|
|
dmm_check LT0
|
|
dmm_check LT1
|
|
dmm_check LB0
|
|
dmm_check LB1
|
|
dmm_check RETS
|
|
|
|
# These require supervisor resources
|
|
.ifndef BFIN_HOST
|
|
dmm_check RETI
|
|
dmm_check RETX
|
|
dmm_check RETN
|
|
# RETE likes to change on the fly with an ICE
|
|
# dmm_check RETE
|
|
# CYCLES can be user mode, but screws kernel
|
|
dmm_check CYCLES
|
|
dmm_check CYCLES2
|
|
dmm_check USP
|
|
|
|
# No one pushes/pops these
|
|
# dmm_check EMUDAT
|
|
dmm_check SEQSTAT
|
|
dmm_check SYSCFG
|
|
.endif
|
|
dmm_check ASTAT
|
|
|
|
pass
|
|
1:
|
|
fail
|