* gas/bfin: New testsuite for bfin.
[external/binutils.git] / gas / testsuite / gas / bfin / bit2.s
1 \r
2 .EXTERN MY_LABEL2;\r
3 .section .text;\r
4 \r
5 //\r
6 //8 BIT OPERATIONS\r
7 //\r
8 \r
9 //BITCLR ( Dreg , uimm5 ) ; /* (a) */\r
10 BITCLR ( R7 , 0 ) ;\r
11 BITCLR ( R7 , 31 ) ;\r
12 BITCLR ( R7 , 15 ) ;\r
13 BITCLR ( R1 , 0 ) ;\r
14 BITCLR ( R2 , 1 ) ;\r
15 BITCLR ( R3 , 19 ) ;\r
16 \r
17 //BITSET ( Dreg , uimm5 ) ; /* (a) */\r
18 BITSET ( R7 , 0 ) ;\r
19 BITSET ( R7 , 31 ) ;\r
20 BITSET ( R7 , 15 ) ;\r
21 BITSET ( R1 , 0 ) ;\r
22 BITSET ( R2 , 1 ) ;\r
23 BITSET ( R3 , 19 ) ;\r
24 \r
25 //BITTGL ( Dreg , uimm5 ) ; /* (a) */\r
26 BITTGL ( R7 , 0 ) ;\r
27 BITTGL ( R7 , 31 ) ;\r
28 BITTGL ( R7 , 15 ) ;\r
29 BITTGL ( R1 , 0 ) ;\r
30 BITTGL ( R2 , 1 ) ;\r
31 BITTGL ( R3 , 19 ) ;\r
32 \r
33 //CC = BITTST ( Dreg , uimm5 ) ; /* set CC if bit = 1 (a)*/\r
34 CC = BITTST ( R7 , 0 ) ;\r
35 CC = BITTST ( R7 , 31 ) ;\r
36 CC = BITTST ( R7 , 15 ) ;\r
37 CC = BITTST ( R1 , 0 ) ;\r
38 CC = BITTST ( R2 , 1 ) ;\r
39 CC = BITTST ( R3 , 19 ) ;\r
40 \r
41 //CC = ! BITTST ( Dreg , uimm5 ) ; /* set CC if bit = 0 (a)*/\r
42 CC = !BITTST ( R7 , 0 ) ;\r
43 CC = !BITTST ( R7 , 31 ) ;\r
44 CC = !BITTST ( R7 , 15 ) ;\r
45 CC = !BITTST ( R1 , 0 ) ;\r
46 CC = !BITTST ( R2 , 1 ) ;\r
47 CC = !BITTST ( R3 , 19 ) ;\r
48 \r
49 //Dreg = DEPOSIT ( Dreg, Dreg ) ; /* no extension (b) */\r
50 R7 = DEPOSIT(R0, R1);\r
51 R7 = DEPOSIT(R7, R1);\r
52 R7 = DEPOSIT(R7, R7);\r
53 R1 = DEPOSIT(R0, R1);\r
54 R2 = DEPOSIT(R7, R1);\r
55 R3 = DEPOSIT(R7, R7);\r
56 \r
57 //Dreg = DEPOSIT ( Dreg, Dreg ) (X) ; /* sign-extended (b) */\r
58 R7 = DEPOSIT(R0, R1)(X);\r
59 R7 = DEPOSIT(R7, R1)(X);\r
60 R7 = DEPOSIT(R7, R7)(X);\r
61 R1 = DEPOSIT(R0, R1)(X);\r
62 R2 = DEPOSIT(R7, R1)(X);\r
63 R3 = DEPOSIT(R7, R7)(X);\r
64 \r
65 //Dreg = EXTRACT ( Dreg, Dreg_lo ) (Z) ; /* zero-extended (b)*/\r
66 R7 = EXTRACT(R0, R1.L)(Z);\r
67 R7 = EXTRACT(R7, R1.L)(Z);\r
68 R7 = EXTRACT(R7, R7.L)(Z);\r
69 R1 = EXTRACT(R0, R1.L)(Z);\r
70 R2 = EXTRACT(R7, R1.L)(Z);\r
71 R3 = EXTRACT(R7, R7.L)(Z);\r
72 \r
73 //Dreg = EXTRACT ( Dreg, Dreg_lo ) (X) ; /* sign-extended (b)*/\r
74 R7 = EXTRACT(R0, R1.L)(X);\r
75 R7 = EXTRACT(R7, R1.L)(X);\r
76 R7 = EXTRACT(R7, R7.L)(X);\r
77 R1 = EXTRACT(R0, R1.L)(X);\r
78 R2 = EXTRACT(R7, R1.L)(X);\r
79 R3 = EXTRACT(R7, R7.L)(X);\r
80 \r
81 //BITMUX ( Dreg , Dreg , A0 ) (ASR) ; /* shift right, LSB is shifted out (b) */\r
82 BITMUX(R0, R1, A0)(ASR);\r
83 BITMUX(R0, R2, A0)(ASR);\r
84 BITMUX(R1, R3, A0)(ASR);\r
85 //BITMUX(R0, R0, A0)(ASR);\r
86 \r
87 //BITMUX ( Dreg , Dreg , A0 ) (ASL) ; /* shift left, MSB is shifted out (b) */\r
88 //BITMUX(R0, R0, A0)(ASL);\r
89 BITMUX(R0, R1, A0)(ASL);\r
90 BITMUX(R1, R2, A0)(ASL);\r
91 \r
92 //Dreg_lo = ONES Dreg ; /* (b) */\r
93 R0.L = ONES R0;\r
94 R0.L = ONES R1;\r
95 R1.L = ONES R6;\r
96 R2.L = ONES R7;\r
97 \r
98 \r