aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-parisc/assembly.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-parisc/assembly.h')
-rw-r--r--include/asm-parisc/assembly.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/asm-parisc/assembly.h b/include/asm-parisc/assembly.h
index 30b023411fef..b24a99e3ef9c 100644
--- a/include/asm-parisc/assembly.h
+++ b/include/asm-parisc/assembly.h
@@ -450,5 +450,30 @@
450 REST_CR (%cr22, PT_PSW (\regs)) 450 REST_CR (%cr22, PT_PSW (\regs))
451 .endm 451 .endm
452 452
453
454 /* First step to create a "relied upon translation"
455 * See PA 2.0 Arch. page F-4 and F-5.
456 *
457 * The ssm was originally necessary due to a "PCxT bug".
458 * But someone decided it needed to be added to the architecture
459 * and this "feature" went into rev3 of PA-RISC 1.1 Arch Manual.
460 * It's been carried forward into PA 2.0 Arch as well. :^(
461 *
462 * "ssm 0,%r0" is a NOP with side effects (prefetch barrier).
463 * rsm/ssm prevents the ifetch unit from speculatively fetching
464 * instructions past this line in the code stream.
465 * PA 2.0 processor will single step all insn in the same QUAD (4 insn).
466 */
467 .macro pcxt_ssm_bug
468 rsm PSW_SM_I,%r0
469 nop /* 1 */
470 nop /* 2 */
471 nop /* 3 */
472 nop /* 4 */
473 nop /* 5 */
474 nop /* 6 */
475 nop /* 7 */
476 .endm
477
453#endif /* __ASSEMBLY__ */ 478#endif /* __ASSEMBLY__ */
454#endif 479#endif