/* * Reserve an area to allocate slots for detour buffer. * This is part of .text section (rather than vmalloc area) * as this needs to be within 32MB of the probed address.
*/
.global optinsn_slot
optinsn_slot:
.space OPT_SLOT_SIZE
/* * Optprobe template: * This template gets copied into one of the slots in optinsn_slot * and gets fixed up with real optprobe structures et al.
*/
.global optprobe_template_entry
optprobe_template_entry: /* Create an in-memory pt_regs */
PPC_STLU r1,-INT_FRAME_SIZE(r1)
SAVE_GPR(0,r1) /* Save the previous SP into stack */
addi r0,r1,INT_FRAME_SIZE
PPC_STL r0,GPR1(r1)
SAVE_30GPRS(r1) /* Save SPRS */
mfmsr r5
PPC_STL r5,_MSR(r1)
li r5,0x700
PPC_STL r5,_TRAP(r1)
li r5,0
PPC_STL r5,ORIG_GPR3(r1)
PPC_STL r5,RESULT(r1)
mfctr r5
PPC_STL r5,_CTR(r1)
mflr r5
PPC_STL r5,_LINK(r1)
mfspr r5,SPRN_XER
PPC_STL r5,_XER(r1)
mfcr r5
PPC_STL r5,_CCR(r1)
#ifdef CONFIG_PPC64
lbz r5,PACAIRQSOFTMASK(r13)
std r5,SOFTE(r1)
#endif
/* * We may get here from a module, so load the kernel TOC in r2. * The original TOC gets restored when pt_regs is restored * further below.
*/
#ifdef CONFIG_PPC64
LOAD_PACA_TOC()
#endif
.global optprobe_template_op_address
optprobe_template_op_address: /* * Parameters to optimized_callback(): * 1. optimized_kprobe structure in r3
*/
TEMPLATE_FOR_IMM_LOAD_INSNS
/* 2. pt_regs pointer in r4 */
addi r4,r1,STACK_INT_FRAME_REGS
.global optprobe_template_call_handler
optprobe_template_call_handler: /* Branch to optimized_callback() */
nop
/* * Parameters for instruction emulation: * 1. Pass SP in register r3.
*/
addi r3,r1,STACK_INT_FRAME_REGS
.global optprobe_template_insn
optprobe_template_insn: /* 2, Pass instruction to be emulated in r4 */
TEMPLATE_FOR_IMM_LOAD_INSNS
.global optprobe_template_call_emulate
optprobe_template_call_emulate: /* Branch to emulate_step() */
nop
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.