OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [bfin/] [flow2.s] - Blame information for rev 205

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
 
2
.EXTERN MY_LABEL2;
3
.section .text;
4
 
5
//
6
//2 Program Flow Control
7
//
8
 
9
 
10
//JUMP ( Preg ) ; /* indirect to an absolute (not PC-relative)address (a) */
11
//Preg: P5-0, SP, FP
12
 
13
JUMP (P0);
14
JUMP (P1);
15
JUMP (P2);
16
JUMP (P3);
17
JUMP (P4);
18
JUMP (P5);
19
JUMP (SP);
20
JUMP (FP);
21
 
22
//JUMP ( PC + Preg ) ; /* PC-relative, indexed (a) */
23
JUMP (PC+P0);
24
JUMP (PC+P1);
25
JUMP (PC+P2);
26
JUMP (PC+P3);
27
JUMP (PC+P4);
28
JUMP (PC+P5);
29
JUMP (PC+SP);
30
JUMP (PC+FP);
31
 
32
 
33
//JUMP pcrelm2 ; /* PC-relative, immediate (a) or (b) */
34
 
35
JUMP 0X0;
36
JUMP 1234;
37
JUMP -1234;
38
JUMP 2;
39
JUMP -2;
40
 
41
MY_LABEL1:
42
//JUMP.S pcrel13m2 ; /* PC-relative, immediate, short (a) */
43
JUMP.S 0X0;
44
JUMP.S 1234;
45
JUMP.S -1234;
46
JUMP.S 2;
47
JUMP.S -2;
48
 
49
//JUMP.L pcrel25m2 ; /* PC-relative, immediate, long (b) */
50
JUMP.L 0XFF800000;
51
JUMP.L 0X007FFFFE;
52
JUMP.L 0X0;
53
JUMP.L 1234;
54
JUMP.L -1234;
55
JUMP.L 2;
56
JUMP.L -2;
57
 
58
//JUMP user_label ; /* user-defined absolute address label, */
59
JUMP MY_LABEL1;
60
JUMP MY_LABEL2;
61
 
62
JUMP MY_LABEL1-2;
63
JUMP MY_LABEL2-2;
64
 
65
//IF CC JUMP pcrel11m2 ; /* branch if CC=1, branch predicted as not taken (a) */
66
IF CC JUMP 0xFFFFFE08;
67
IF CC JUMP 0x0B4;
68
IF CC JUMP 0;
69
 
70
//IF CC JUMP pcrel11m2 (bp) ; /* branch if CC=1, branch predicted as taken (a) */
71
IF CC JUMP 0xFFFFFE08(bp);
72
IF CC JUMP 0x0B4(bp);
73
 
74
//IF !CC JUMP pcrel11m2 ; /* branch if CC=0, branch predicted as not taken (a) */
75
IF !CC JUMP 0xFFFFFF22;
76
IF !CC JUMP 0X120;
77
 
78
//IF !CC JUMP pcrel11m2 (bp) ; /* branch if CC=0, branch predicted as taken (a) */
79
IF !CC JUMP 0xFFFFFF22(bp);
80
IF !CC JUMP 0X120(bp);
81
 
82
//IF CC JUMP user_label ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
83
IF CC JUMP MY_LABEL1;
84
IF CC JUMP MY_LABEL2;
85
 
86
//IF CC JUMP user_label (bp) ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
87
IF CC JUMP MY_LABEL1(bp);
88
IF CC JUMP MY_LABEL2(bp);
89
 
90
//IF !CC JUMP user_label ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
91
IF !CC JUMP MY_LABEL1;
92
IF !CC JUMP MY_LABEL2;
93
 
94
//IF !CC JUMP user_label (bp) ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
95
IF !CC JUMP MY_LABEL1(bp);
96
IF !CC JUMP MY_LABEL2(bp);
97
 
98
//CALL ( Preg ) ; /* indirect to an absolute (not PC-relative) address (a) */
99
CALL(P0);
100
CALL(P1);
101
CALL(P2);
102
CALL(P3);
103
CALL(P4);
104
CALL(P5);
105
 
106
 
107
//CALL ( PC + Preg ) ; /* PC-relative, indexed (a) */
108
CALL(PC+P0);
109
CALL(PC+P1);
110
CALL(PC+P2);
111
CALL(PC+P3);
112
CALL(PC+P4);
113
CALL(PC+P5);
114
 
115
//CALL pcrel25m2 ; /* PC-relative, immediate (b) */
116
CALL 0x123456 ;
117
CALL -1234;
118
 
119
//CALL user_label ; /* user-defined absolute address label,resolved by the assembler/linker to the appropriate PC-relative instruction (a) or (b) */
120
CALL MY_LABEL1;
121
CALL MY_LABEL2;
122
 
123
RTS ; // Return from Subroutine (a)
124
RTI ; // Return from Interrupt (a)
125
RTX ; // Return from Exception (a)
126
RTN ; // Return from NMI (a)
127
RTE ; // Return from Emulation (a)
128
 
129
lsetup ( 4, 4 ) lc0 ;
130
 
131
lsetup ( beg_poll_bit, end_poll_bit ) lc0 ;
132
NOP;NOP;
133
beg_poll_bit: R0=1(Z);
134
end_poll_bit: R1=2(Z);
135
 
136
lsetup ( 4, 6 ) lc1 ;
137
 
138
lsetup ( FIR_filter, bottom_of_FIR_filter ) lc1 ;
139
NOP;
140
FIR_filter: R0=1(Z);
141
bottom_of_FIR_filter: R1=2(Z);
142
 
143
lsetup ( 4, 8 ) lc0 = p1 ;
144
 
145
lsetup ( 4, 8 ) lc0 = p1>>1 ;
146
 
147
loop DoItSome LC0 ; /* define loop DoItSome with Loop Counter 0 */
148
loop_begin DoItSome ; /* place before the first instruction in the loop */
149
R0=1;
150
R1=2;
151
loop_end DoItSome ; /* place after the last instruction in the loop */
152
 
153
loop DoItSomeMore LC1 ; /* define loop MyLoop with Loop Counter 1*/
154
 
155
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.