Lines Matching refs:bit
4 * Some of the bit test macro can simplify down to one line
73 * the bit to make sure it is valid 32 value.
78 .macro BT reg1, reg2, bit
79 .if \bit > 31
82 .if \bit < 16
83 andi \reg1, \reg2, (1 << \bit)
85 andhi \reg1, \reg2, (1 << (\bit - 16))
91 * Tests the bit in reg2 and branches to label if the
92 * bit is zero. The result of the bit test is stored in reg1.
97 .macro BTBZ reg1, reg2, bit, label
98 BT \reg1, \reg2, \bit
103 * Tests the bit in reg2 and branches to label if the
104 * bit is non-zero. The result of the bit test is stored in reg1.
109 .macro BTBNZ reg1, reg2, bit, label
110 BT \reg1, \reg2, \bit
115 * Tests the bit in reg2 and then compliments the bit in reg2.
116 * The result of the bit test is stored in reg1.
121 .macro BTC reg1, reg2, bit
122 .if \bit > 31
125 .if \bit < 16
126 andi \reg1, \reg2, (1 << \bit)
127 xori \reg2, \reg2, (1 << \bit)
129 andhi \reg1, \reg2, (1 << (\bit - 16))
130 xorhi \reg2, \reg2, (1 << (\bit - 16))
136 * Tests the bit in reg2 and then sets the bit in reg2.
137 * The result of the bit test is stored in reg1.
142 .macro BTS reg1, reg2, bit
143 .if \bit > 31
146 .if \bit < 16
147 andi \reg1, \reg2, (1 << \bit)
148 ori \reg2, \reg2, (1 << \bit)
150 andhi \reg1, \reg2, (1 << (\bit - 16))
151 orhi \reg2, \reg2, (1 << (\bit - 16))
157 * Tests the bit in reg2 and then resets the bit in reg2.
158 * The result of the bit test is stored in reg1.
163 .macro BTR reg1, reg2, bit
164 .if \bit > 31
167 .if \bit < 16
168 andi \reg1, \reg2, (1 << \bit)
169 andi \reg2, \reg2, %lo(~(1 << \bit))
171 andhi \reg1, \reg2, (1 << (\bit - 16))
172 andhi \reg2, \reg2, %lo(~(1 << (\bit - 16)))
178 * Tests the bit in reg2 and then compliments the bit in reg2.
179 * The result of the bit test is stored in reg1. If the
180 * original bit was zero it branches to label.
185 .macro BTCBZ reg1, reg2, bit, label
186 BTC \reg1, \reg2, \bit
191 * Tests the bit in reg2 and then compliments the bit in reg2.
192 * The result of the bit test is stored in reg1. If the
193 * original bit was non-zero it branches to label.
198 .macro BTCBNZ reg1, reg2, bit, label
199 BTC \reg1, \reg2, \bit
204 * Tests the bit in reg2 and then sets the bit in reg2.
205 * The result of the bit test is stored in reg1. If the
206 * original bit was zero it branches to label.
211 .macro BTSBZ reg1, reg2, bit, label
212 BTS \reg1, \reg2, \bit
217 * Tests the bit in reg2 and then sets the bit in reg2.
218 * The result of the bit test is stored in reg1. If the
219 * original bit was non-zero it branches to label.
224 .macro BTSBNZ reg1, reg2, bit, label
225 BTS \reg1, \reg2, \bit
230 * Tests the bit in reg2 and then resets the bit in reg2.
231 * The result of the bit test is stored in reg1. If the
232 * original bit was zero it branches to label.
237 .macro BTRBZ reg1, reg2, bit, label
238 BTR \reg1, \reg2, \bit
243 * Tests the bit in reg2 and then resets the bit in reg2.
244 * The result of the bit test is stored in reg1. If the
245 * original bit was non-zero it branches to label.
250 .macro BTRBNZ reg1, reg2, bit, label
251 BTR \reg1, \reg2, \bit