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 ---