Lines Matching refs:instrs

134 static int do_patch_fixups(long *start, long *end, unsigned int *instrs, int num)
142 if (!is_fixup_addr_valid(dest, sizeof(*instrs) * num))
148 patch_instruction(dest + j, ppc_inst(instrs[j]));
155 static int do_patch_entry_fixups(long *start, long *end, unsigned int *instrs,
163 if (!is_fixup_addr_valid(dest, sizeof(*instrs) * 3))
170 patch_instruction(dest, ppc_inst(instrs[0]));
171 patch_instruction(dest + 2, ppc_inst(instrs[2]));
174 patch_instruction(dest + 1, ppc_inst(instrs[1]));
175 patch_instruction(dest + 2, ppc_inst(instrs[2]));
176 patch_instruction(dest, ppc_inst(instrs[0]));
184 unsigned int instrs[3];
191 instrs[0] = PPC_RAW_NOP();
192 instrs[1] = PPC_RAW_NOP();
193 instrs[2] = PPC_RAW_NOP();
197 instrs[i++] = PPC_RAW_MFLR(_R10);
198 instrs[i++] = PPC_RAW_NOP(); /* branch patched below */
199 instrs[i++] = PPC_RAW_MTLR(_R10);
201 instrs[i++] = PPC_RAW_EIEIO() | 0x02000000; /* eieio + bit 6 hint */
203 instrs[i++] = PPC_RAW_SYNC();
204 instrs[i++] = PPC_RAW_LD(_R10, _R13, 0);
205 instrs[i++] = PPC_RAW_ORI(_R31, _R31, 0); /* speculation barrier */
208 i = do_patch_entry_fixups(start, end, instrs, types & STF_BARRIER_FALLBACK,
221 unsigned int instrs[6];
228 instrs[0] = PPC_RAW_NOP();
229 instrs[1] = PPC_RAW_NOP();
230 instrs[2] = PPC_RAW_NOP();
231 instrs[3] = PPC_RAW_NOP();
232 instrs[4] = PPC_RAW_NOP();
233 instrs[5] = PPC_RAW_NOP();
238 instrs[i++] = PPC_RAW_MTSPR(SPRN_HSPRG1, _R13);
239 instrs[i++] = PPC_RAW_MFSPR(_R13, SPRN_HSPRG0);
241 instrs[i++] = PPC_RAW_MTSPR(SPRN_SPRG2, _R13);
242 instrs[i++] = PPC_RAW_MFSPR(_R13, SPRN_SPRG1);
244 instrs[i++] = PPC_RAW_SYNC();
245 instrs[i++] = PPC_RAW_LD(_R13, _R13, 0);
246 instrs[i++] = PPC_RAW_ORI(_R31, _R31, 0); /* speculation barrier */
248 instrs[i++] = PPC_RAW_MFSPR(_R13, SPRN_HSPRG1);
250 instrs[i++] = PPC_RAW_MFSPR(_R13, SPRN_SPRG2);
252 instrs[i++] = PPC_RAW_EIEIO() | 0x02000000; /* eieio + bit 6 hint */
255 i = do_patch_fixups(start, end, instrs, ARRAY_SIZE(instrs));
313 unsigned int instrs[4];
320 instrs[0] = PPC_RAW_NOP();
321 instrs[1] = PPC_RAW_NOP();
322 instrs[2] = PPC_RAW_NOP();
323 instrs[3] = PPC_RAW_BLR();
327 instrs[3] = PPC_RAW_NOP();
332 instrs[i++] = PPC_RAW_ORI(_R31, _R31, 0); /* speculation barrier */
333 instrs[i++] = PPC_RAW_ORI(_R30, _R30, 0); /* L1d flush */
337 instrs[i++] = PPC_RAW_MTSPR(SPRN_TRIG2, _R0);
339 i = do_patch_fixups(start, end, instrs, ARRAY_SIZE(instrs));
354 unsigned int instrs[3];
358 instrs[0] = PPC_RAW_NOP();
359 instrs[1] = PPC_RAW_NOP();
360 instrs[2] = PPC_RAW_NOP();
364 instrs[i++] = PPC_RAW_MFLR(_R10);
365 instrs[i++] = PPC_RAW_NOP(); /* branch patched below */
366 instrs[i++] = PPC_RAW_MTLR(_R10);
370 instrs[i++] = PPC_RAW_ORI(_R31, _R31, 0); /* speculation barrier */
371 instrs[i++] = PPC_RAW_ORI(_R30, _R30, 0); /* L1d flush */
375 instrs[i++] = PPC_RAW_MTSPR(SPRN_TRIG2, _R0);
404 i = do_patch_entry_fixups(start, end, instrs, types == L1D_FLUSH_FALLBACK,
409 i += do_patch_entry_fixups(start, end, instrs, types == L1D_FLUSH_FALLBACK,
438 unsigned int instrs[3];
445 instrs[0] = PPC_RAW_NOP();
446 instrs[1] = PPC_RAW_NOP();
447 instrs[2] = PPC_RAW_NOP();
451 instrs[0] = PPC_RAW_BRANCH(16);
455 instrs[i++] = PPC_RAW_ORI(_R31, _R31, 0); /* speculation barrier */
456 instrs[i++] = PPC_RAW_ORI(_R30, _R30, 0); /* L1d flush */
460 instrs[i++] = PPC_RAW_MTSPR(SPRN_TRIG2, _R0);
462 i = do_patch_fixups(start, end, instrs, ARRAY_SIZE(instrs));