summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/bfin/logical2.s
blob: d9b62747ea2561463166d161b845cf4068e9f412 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

.EXTERN MY_LABEL2;
.section .text;

//
//7 LOGICAL OPERATIONS
//

//Dreg = Dreg & Dreg ; /* (a) */

R7 = R7 & R7;
R7 = R7 & R0;
r7 = R7 & R1;

R1 = R7 & R7;
R2 = R7 & R0;
r3 = R7 & R1;

//Dreg = ~ Dreg ; /* (a)*/

R7 = ~R7;
R7 = ~R0;
R0 = ~R7;
R0 = ~R2;

//Dreg = Dreg | Dreg ; /* (a) */

R7 = R7 | R7;
R7 = R7 | R1;
R7 = R7 | R0;

R1 = R7 | R7;
R2 = R7 | R1;
R3 = R7 | R0;

//Dreg = Dreg ^ Dreg ; /* (a) */

R7 = R7 ^ R7;
R7 = R7 ^ R1;
R7 = R7 ^ R0;

R1 = R7 ^ R7;
R2 = R7 ^ R1;
R3 = R7 ^ R0;

//Dreg_lo = CC = BXORSHIFT ( A0, Dreg ) ; /* (b) */
R0.L = CC = BXORSHIFT(A0, R0);
R0.L = CC = BXORSHIFT(A0, R1);

R3.L = CC = BXORSHIFT(A0, R0);
R3.L = CC = BXORSHIFT(A0, R1);

//Dreg_lo = CC = BXOR ( A0, Dreg ) ; /* (b) */
R0.L = CC = BXOR(A0, R0);
R0.L = CC = BXOR(A0, R1);

R3.L = CC = BXOR(A0, R0);
R3.L = CC = BXOR(A0, R1);

//Dreg_lo = CC = BXOR ( A0, A1, CC ) ; /* (b) */
R0.L = CC = BXOR(A0, A1, CC);
R0.L = CC = BXOR(A0, A1, CC);

R3.L = CC = BXOR(A0, A1, CC);
R3.L = CC = BXOR(A0, A1, CC);

A0 = BXORSHIFT ( A0, A1, CC ) ; /* (b) */