decode-insn.c (ead5d1f4d877e92c051e1a1ade623d0d30e71619) | decode-insn.c (93396936ed0ce2c6f44140bd14728611d0bb065e) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * arch/arm64/kernel/probes/decode-insn.c 4 * 5 * Copyright (C) 2013 Linaro Limited. 6 */ 7 8#include <linux/kernel.h> --- 15 unchanged lines hidden (view full) --- 24 * currently safe. Lastly, MSR instructions can do any number of nasty 25 * things we can't handle during single-stepping. 26 */ 27 if (aarch64_get_insn_class(insn) == AARCH64_INSN_CLS_BR_SYS) { 28 if (aarch64_insn_is_branch(insn) || 29 aarch64_insn_is_msr_imm(insn) || 30 aarch64_insn_is_msr_reg(insn) || 31 aarch64_insn_is_exception(insn) || | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * arch/arm64/kernel/probes/decode-insn.c 4 * 5 * Copyright (C) 2013 Linaro Limited. 6 */ 7 8#include <linux/kernel.h> --- 15 unchanged lines hidden (view full) --- 24 * currently safe. Lastly, MSR instructions can do any number of nasty 25 * things we can't handle during single-stepping. 26 */ 27 if (aarch64_get_insn_class(insn) == AARCH64_INSN_CLS_BR_SYS) { 28 if (aarch64_insn_is_branch(insn) || 29 aarch64_insn_is_msr_imm(insn) || 30 aarch64_insn_is_msr_reg(insn) || 31 aarch64_insn_is_exception(insn) || |
32 aarch64_insn_is_eret(insn)) | 32 aarch64_insn_is_eret(insn) || 33 aarch64_insn_is_eret_auth(insn)) |
33 return false; 34 35 /* 36 * The MRS instruction may not return a correct value when 37 * executing in the single-stepping environment. We do make one 38 * exception, for reading the DAIF bits. 39 */ 40 if (aarch64_insn_is_mrs(insn)) --- 125 unchanged lines hidden --- | 34 return false; 35 36 /* 37 * The MRS instruction may not return a correct value when 38 * executing in the single-stepping environment. We do make one 39 * exception, for reading the DAIF bits. 40 */ 41 if (aarch64_insn_is_mrs(insn)) --- 125 unchanged lines hidden --- |