mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-12 12:16:04 +08:00
71 lines
1.3 KiB
ArmAsm
71 lines
1.3 KiB
ArmAsm
|
//Original:/testcases/seq/c_br_preg_stall_ex1/c_br_preg_stall_ex1.dsp
|
||
|
// Spec Reference: brcc kills data cache hits
|
||
|
# mach: bfin
|
||
|
|
||
|
.include "testutils.inc"
|
||
|
start
|
||
|
|
||
|
imm32 r0, 0x00000000;
|
||
|
imm32 r1, 0x00000001;
|
||
|
imm32 r2, 0x00000002;
|
||
|
imm32 r3, 0x00000003;
|
||
|
imm32 r4, 0x00000004;
|
||
|
imm32 r5, 0x00000005;
|
||
|
imm32 r6, 0x00000006;
|
||
|
imm32 r7, 0x00000007;
|
||
|
imm32 p1, 0x00000011;
|
||
|
imm32 p2, 0x00000012;
|
||
|
.ifndef BFIN_HOST
|
||
|
imm32 p3, 0x00000013;
|
||
|
.endif
|
||
|
imm32 p4, 0x00000014;
|
||
|
|
||
|
P1 = 4;
|
||
|
P2 = 6;
|
||
|
loadsym p5, DATA0;
|
||
|
loadsym I0, DATA1;
|
||
|
|
||
|
begin:
|
||
|
ASTAT = R0; // clear CC
|
||
|
R0 = CC;
|
||
|
IF CC R1 = R0;
|
||
|
IF !CC JUMP LABEL1;
|
||
|
R0 = LC0;
|
||
|
R2 = R1 + R0;
|
||
|
LABEL1:
|
||
|
JUMP ( PC + P1 ); // EX1 relative to 'brf LABEL1'
|
||
|
CC = ! CC;
|
||
|
LABEL2:
|
||
|
JUMP ( PC + P1 ); //brf LABEL3;
|
||
|
JUMP ( PC + P2 ); //BAD1; // UJUMP killed
|
||
|
LABEL3:
|
||
|
JUMP ( PC + P1 ); //brf LABELCHK1;
|
||
|
BAD1:
|
||
|
R7 = [ P5 ]; // LDST killed
|
||
|
|
||
|
LABELCHK1:
|
||
|
CHECKREG r0, 0x00000000;
|
||
|
CHECKREG r1, 0x00000001;
|
||
|
CHECKREG r2, 0x00000002;
|
||
|
CHECKREG r3, 0x00000003;
|
||
|
CHECKREG r4, 0x00000004;
|
||
|
CHECKREG r5, 0x00000005;
|
||
|
CHECKREG r6, 0x00000006;
|
||
|
CHECKREG r7, 0x00000007;
|
||
|
|
||
|
pass
|
||
|
|
||
|
.data
|
||
|
DATA0:
|
||
|
.dd 0x000a0000
|
||
|
.dd 0x000b0001
|
||
|
.dd 0x000c0002
|
||
|
.dd 0x000d0003
|
||
|
.dd 0x000e0004
|
||
|
|
||
|
DATA1:
|
||
|
.dd 0x00f00100
|
||
|
.dd 0x00e00101
|
||
|
.dd 0x00d00102
|
||
|
.dd 0x00c00103
|