Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 832607e7 authored by Jon Medhurst's avatar Jon Medhurst
Browse files

ARM: probes: Use correct action types for MOVW, SEV and WFI



This doesn't correct any bugs when probing these instructions but makes
MOVW slightly faster and makes everything more symmetric with the Thumb
instruction cases.

We can also remove the now redundant PROBES_EMULATE_NONE and
PROBES_SIMULATE_NOP actions.

Signed-off-by: default avatarJon Medhurst <tixy@linaro.org>
parent fca08f32
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -370,17 +370,17 @@ static const union decode_item arm_cccc_001x_table[] = {

	/* MOVW			cccc 0011 0000 xxxx xxxx xxxx xxxx xxxx */
	/* MOVT			cccc 0011 0100 xxxx xxxx xxxx xxxx xxxx */
	DECODE_EMULATEX	(0x0fb00000, 0x03000000, PROBES_DATA_PROCESSING_IMM,
	DECODE_EMULATEX	(0x0fb00000, 0x03000000, PROBES_MOV_HALFWORD,
						 REGS(0, NOPC, 0, 0, 0)),

	/* YIELD		cccc 0011 0010 0000 xxxx xxxx 0000 0001 */
	DECODE_OR	(0x0fff00ff, 0x03200001),
	/* SEV			cccc 0011 0010 0000 xxxx xxxx 0000 0100 */
	DECODE_EMULATE	(0x0fff00ff, 0x03200004, PROBES_EMULATE_NONE),
	DECODE_EMULATE	(0x0fff00ff, 0x03200004, PROBES_SEV),
	/* NOP			cccc 0011 0010 0000 xxxx xxxx 0000 0000 */
	/* WFE			cccc 0011 0010 0000 xxxx xxxx 0000 0010 */
	/* WFI			cccc 0011 0010 0000 xxxx xxxx 0000 0011 */
	DECODE_SIMULATE	(0x0fff00fc, 0x03200000, PROBES_SIMULATE_NOP),
	DECODE_SIMULATE	(0x0fff00fc, 0x03200000, PROBES_WFE),
	/* DBG			cccc 0011 0010 0000 xxxx xxxx ffff xxxx */
	/* unallocated hints	cccc 0011 0010 0000 xxxx xxxx xxxx xxxx */
	/* MSR (immediate)	cccc 0011 0x10 xxxx xxxx xxxx xxxx xxxx */
+0 −2
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@
#include "decode.h"

enum probes_arm_action {
	PROBES_EMULATE_NONE,
	PROBES_SIMULATE_NOP,
	PROBES_PRELOAD_IMM,
	PROBES_PRELOAD_REG,
	PROBES_BRANCH_IMM,
+0 −2
Original line number Diff line number Diff line
@@ -302,8 +302,6 @@ emulate_rdlo12rdhi16rn0rm8_rwflags_nopc(probes_opcode_t insn,
}

const union decode_action kprobes_arm_actions[NUM_PROBES_ARM_ACTIONS] = {
	[PROBES_EMULATE_NONE] = {.handler = probes_emulate_none},
	[PROBES_SIMULATE_NOP] = {.handler = probes_simulate_nop},
	[PROBES_PRELOAD_IMM] = {.handler = probes_simulate_nop},
	[PROBES_PRELOAD_REG] = {.handler = probes_simulate_nop},
	[PROBES_BRANCH_IMM] = {.handler = simulate_blx1},
+0 −2
Original line number Diff line number Diff line
@@ -195,8 +195,6 @@ uprobe_decode_ldmstm(probes_opcode_t insn,
}

const union decode_action uprobes_probes_actions[] = {
	[PROBES_EMULATE_NONE] = {.handler = probes_simulate_nop},
	[PROBES_SIMULATE_NOP] = {.handler = probes_simulate_nop},
	[PROBES_PRELOAD_IMM] = {.handler = probes_simulate_nop},
	[PROBES_PRELOAD_REG] = {.handler = probes_simulate_nop},
	[PROBES_BRANCH_IMM] = {.handler = simulate_blx1},