decode.c (83803d97dae1eaf6850a45ef8ee179cc66e147dc) decode.c (6624cf651f1a14363d0385f36dc255d304ac7ebb)
1/*
2 * arch/arm/probes/decode.c
3 *
4 * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>.
5 *
6 * Some contents moved here from arch/arm/include/asm/kprobes-arm.c which is
7 * Copyright (C) 2006, 2007 Motorola Inc.
8 *

--- 411 unchanged lines hidden (view full) ---

420 const struct decode_header *next;
421 bool matched = false;
422 /*
423 * @insn can be modified by decode_regs. Save its original
424 * value for checkers.
425 */
426 probes_opcode_t origin_insn = insn;
427
1/*
2 * arch/arm/probes/decode.c
3 *
4 * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>.
5 *
6 * Some contents moved here from arch/arm/include/asm/kprobes-arm.c which is
7 * Copyright (C) 2006, 2007 Motorola Inc.
8 *

--- 411 unchanged lines hidden (view full) ---

420 const struct decode_header *next;
421 bool matched = false;
422 /*
423 * @insn can be modified by decode_regs. Save its original
424 * value for checkers.
425 */
426 probes_opcode_t origin_insn = insn;
427
428 /*
429 * stack_space is initialized to 0 here. Checker functions
430 * should update is value if they find this is a stack store
431 * instruction: positive value means bytes of stack usage,
432 * negitive value means unable to determine stack usage
433 * statically. For instruction doesn't store to stack, checker
434 * do nothing with it.
435 */
436 asi->stack_space = 0;
437
428 if (emulate)
429 insn = prepare_emulated_insn(insn, asi, thumb);
430
431 for (;; h = next) {
432 enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK;
433 u32 regs = h->type_regs.bits >> DECODE_TYPE_BITS;
434
435 if (type == DECODE_TYPE_END)

--- 69 unchanged lines hidden ---
438 if (emulate)
439 insn = prepare_emulated_insn(insn, asi, thumb);
440
441 for (;; h = next) {
442 enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK;
443 u32 regs = h->type_regs.bits >> DECODE_TYPE_BITS;
444
445 if (type == DECODE_TYPE_END)

--- 69 unchanged lines hidden ---