Lines Matching defs:ins

96       uint32_t ins = *pc++;
98 if ((ins & 0xFC000003) == 0x48000000) /* b instruction */
100 pc += ((((int32_t) ins & 0x3FFFFFC) ^ 0x2000000) - 0x2000004) / 4;
103 if ((ins & 0xFC600000) == 0x2C000000) /* cmpwi */
105 int32_t val1 = (int16_t) ins;
106 int32_t val2 = gprs[ins >> 16 & 0x1F];
109 uint32_t mask = 0xF << ((ins >> 21 & 0x1C) ^ 0x1C);
116 if ((ins & 0xFEC38003) == 0x40820000) /* forwards beq/bne */
118 if ((cr >> ((ins >> 16 & 0x1F) ^ 0x1F) & 1) == (ins >> 24 & 1))
119 pc += (ins & 0x7FFC) / 4 - 1;
122 if ((ins & 0xFC0007FF) == 0x7C000378) /* or, including mr */
124 gprs [ins >> 16 & 0x1F] = (gprs [ins >> 11 & 0x1F]
125 | gprs [ins >> 21 & 0x1F]);
128 if (ins >> 26 == 0x0E) /* addi, including li */
130 reg_unit src = (ins >> 16 & 0x1F) == 0 ? 0 : gprs [ins >> 16 & 0x1F];
131 gprs [ins >> 21 & 0x1F] = src + (int16_t) ins;
134 if (ins >> 26 == 0x0F) /* addis, including lis */
136 reg_unit src = (ins >> 16 & 0x1F) == 0 ? 0 : gprs [ins >> 16 & 0x1F];
137 gprs [ins >> 21 & 0x1F] = src + ((int16_t) ins << 16);
140 if (ins >> 26 == 0x20) /* lwz */
142 reg_unit src = (ins >> 16 & 0x1F) == 0 ? 0 : gprs [ins >> 16 & 0x1F];
143 uint32_t *p = (uint32_t *)(src + (int16_t) ins);
146 gprs [ins >> 21 & 0x1F] = *p;
149 if (ins >> 26 == 0x21) /* lwzu */
151 uint32_t *p = (uint32_t *)(gprs [ins >> 16 & 0x1F] += (int16_t) ins);
154 gprs [ins >> 21 & 0x1F] = *p;
157 if (ins >> 26 == 0x24) /* stw */
162 reg_unit src = (ins >> 16 & 0x1F) == 0 ? 0 : gprs [ins >> 16 & 0x1F];
163 uint32_t *p = (uint32_t *)(src + (int16_t) ins);
169 if (ins >> 26 == 0x2E) /* lmw */
171 reg_unit src = (ins >> 16 & 0x1F) == 0 ? 0 : gprs [ins >> 16 & 0x1F];
172 uint32_t *p = (uint32_t *)(src + (int16_t) ins);
175 for (i = (ins >> 21 & 0x1F); i < 32; i++)
183 if ((ins & 0xFC1FFFFF) == 0x7c0803a6) /* mtlr */
185 lr = gprs [ins >> 21 & 0x1F];
188 if ((ins & 0xFC1FFFFF) == 0x7c0802a6) /* mflr */
190 gprs [ins >> 21 & 0x1F] = lr;
193 if ((ins & 0xFC1FFFFF) == 0x7c0903a6) /* mtctr */
195 ctr = gprs [ins >> 21 & 0x1F];
201 if ((ins & 0xFC000FFF) == 0x7c000120) /* mtcrf */
206 mask |= ((-(ins >> (12 + i) & 1)) & 0xF) << 4 * i;
207 cr = (cr & ~mask) | (gprs [ins >> 21 & 0x1F] & mask);
210 if (ins == 0x429f0005) /* bcl- 20,4*cr7+so,.+4, loads pc into LR */
215 if (ins == 0x4e800420) /* bctr */
220 if (ins == 0x44000002) /* sc */