Lines Matching refs:instr
24 kinst_patchval_t instr = kp->kp_savedval; in kinst_emulate() local
29 if (((instr >> 24) & 0x1f) == 0b10000) { in kinst_emulate()
31 reg = instr & 0x1f; in kinst_emulate()
32 imm = (instr >> 29) & 0x3; in kinst_emulate()
33 imm |= ((instr >> 5) & 0x0007ffff) << 2; in kinst_emulate()
34 if (((instr >> 31) & 0x1) == 0) { in kinst_emulate()
47 } else if (((instr >> 26) & 0x3f) == 0b000101) { in kinst_emulate()
49 imm = instr & 0x03ffffff; in kinst_emulate()
53 } else if (((instr >> 24) & 0xff) == 0b01010100) { in kinst_emulate()
55 imm = (instr >> 5) & 0x0007ffff; in kinst_emulate()
58 cond = instr & 0xf; in kinst_emulate()
95 } else if (((instr >> 26) & 0x3f) == 0b100101) { in kinst_emulate()
97 imm = instr & 0x03ffffff; in kinst_emulate()
102 } else if (((instr >> 25) & 0x3f) == 0b011010) { in kinst_emulate()
104 cond = (instr >> 24) & 0x1; in kinst_emulate()
105 reg = instr & 0x1f; in kinst_emulate()
106 imm = (instr >> 5) & 0x0007ffff; in kinst_emulate()
117 } else if (((instr >> 25) & 0x3f) == 0b011011) { in kinst_emulate()
119 cond = (instr >> 24) & 0x1; in kinst_emulate()
120 reg = instr & 0x1f; in kinst_emulate()
121 bitpos = (instr >> 19) & 0x1f; in kinst_emulate()
122 bitpos |= ((instr >> 31) & 0x1) << 5; in kinst_emulate()
123 imm = (instr >> 5) & 0x3fff; in kinst_emulate()
250 kinst_patchval_t instr = kp->kp_savedval; in kinst_instr_dissect() local
255 if (((instr >> 24) & 0x1f) == 0b10000) in kinst_instr_dissect()
257 else if (((instr >> 26) & 0x3f) == 0b000101) in kinst_instr_dissect()
259 else if (((instr >> 24) & 0xff) == 0b01010100) in kinst_instr_dissect()
261 else if (((instr >> 26) & 0x3f) == 0b100101) in kinst_instr_dissect()
263 else if (((instr >> 25) & 0x3f) == 0b011010) in kinst_instr_dissect()
265 else if (((instr >> 25) & 0x3f) == 0b011011) in kinst_instr_dissect()
273 kinst_instr_ldx(kinst_patchval_t instr) in kinst_instr_ldx() argument
275 if (((instr >> 22) & 0xff) == 0b00100001) in kinst_instr_ldx()
282 kinst_instr_stx(kinst_patchval_t instr) in kinst_instr_stx() argument
284 if (((instr >> 22) & 0xff) == 0b00100000) in kinst_instr_stx()
297 kinst_patchval_t *instr, *limit, *tmp; in kinst_make_probe() local
309 instr = (kinst_patchval_t *)(symval->value); in kinst_make_probe()
311 if (instr >= limit) in kinst_make_probe()
314 tmp = instr; in kinst_make_probe()
359 for (n = 0; instr < limit; instr++) { in kinst_make_probe()
360 off = (int)((uint8_t *)instr - (uint8_t *)symval->value); in kinst_make_probe()
367 if (kinst_instr_ldx(*instr)) in kinst_make_probe()
369 else if (kinst_instr_stx(*instr)) { in kinst_make_probe()
383 if (((*instr >> 24) & 0x1f) == 0b10000) in kinst_make_probe()
393 LIST_FOREACH(kp, KINST_GETPROBE(instr), kp_hashnext) { in kinst_make_probe()
406 kp->kp_patchpoint = instr; in kinst_make_probe()
407 kp->kp_savedval = *instr; in kinst_make_probe()
410 KINST_LOG("cannot allocate trampoline for %p", instr); in kinst_make_probe()