mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-24 20:14:27 +07:00
arm64: insn: Add constants for new HINT instruction decode
Add constants for decoding newer instructions defined in the HINT space. Since we are now decoding both the op2 and CRm fields rename the enum as well; this is compatible with what the existing users are doing. Signed-off-by: Mark Brown <broonie@kernel.org> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Link: https://lore.kernel.org/r/20200504131326.18290-2-broonie@kernel.org Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
6a8b55ed40
commit
bd507ca277
@ -39,13 +39,37 @@ enum aarch64_insn_encoding_class {
|
||||
* system instructions */
|
||||
};
|
||||
|
||||
enum aarch64_insn_hint_op {
|
||||
enum aarch64_insn_hint_cr_op {
|
||||
AARCH64_INSN_HINT_NOP = 0x0 << 5,
|
||||
AARCH64_INSN_HINT_YIELD = 0x1 << 5,
|
||||
AARCH64_INSN_HINT_WFE = 0x2 << 5,
|
||||
AARCH64_INSN_HINT_WFI = 0x3 << 5,
|
||||
AARCH64_INSN_HINT_SEV = 0x4 << 5,
|
||||
AARCH64_INSN_HINT_SEVL = 0x5 << 5,
|
||||
|
||||
AARCH64_INSN_HINT_XPACLRI = 0x07 << 5,
|
||||
AARCH64_INSN_HINT_PACIA_1716 = 0x08 << 5,
|
||||
AARCH64_INSN_HINT_PACIB_1716 = 0x0A << 5,
|
||||
AARCH64_INSN_HINT_AUTIA_1716 = 0x0C << 5,
|
||||
AARCH64_INSN_HINT_AUTIB_1716 = 0x0E << 5,
|
||||
AARCH64_INSN_HINT_PACIAZ = 0x18 << 5,
|
||||
AARCH64_INSN_HINT_PACIASP = 0x19 << 5,
|
||||
AARCH64_INSN_HINT_PACIBZ = 0x1A << 5,
|
||||
AARCH64_INSN_HINT_PACIBSP = 0x1B << 5,
|
||||
AARCH64_INSN_HINT_AUTIAZ = 0x1C << 5,
|
||||
AARCH64_INSN_HINT_AUTIASP = 0x1D << 5,
|
||||
AARCH64_INSN_HINT_AUTIBZ = 0x1E << 5,
|
||||
AARCH64_INSN_HINT_AUTIBSP = 0x1F << 5,
|
||||
|
||||
AARCH64_INSN_HINT_ESB = 0x10 << 5,
|
||||
AARCH64_INSN_HINT_PSB = 0x11 << 5,
|
||||
AARCH64_INSN_HINT_TSB = 0x12 << 5,
|
||||
AARCH64_INSN_HINT_CSDB = 0x14 << 5,
|
||||
|
||||
AARCH64_INSN_HINT_BTI = 0x20 << 5,
|
||||
AARCH64_INSN_HINT_BTIC = 0x22 << 5,
|
||||
AARCH64_INSN_HINT_BTIJ = 0x24 << 5,
|
||||
AARCH64_INSN_HINT_BTIJC = 0x26 << 5,
|
||||
};
|
||||
|
||||
enum aarch64_insn_imm_type {
|
||||
@ -370,7 +394,7 @@ u32 aarch64_insn_gen_comp_branch_imm(unsigned long pc, unsigned long addr,
|
||||
enum aarch64_insn_branch_type type);
|
||||
u32 aarch64_insn_gen_cond_branch_imm(unsigned long pc, unsigned long addr,
|
||||
enum aarch64_insn_condition cond);
|
||||
u32 aarch64_insn_gen_hint(enum aarch64_insn_hint_op op);
|
||||
u32 aarch64_insn_gen_hint(enum aarch64_insn_hint_cr_op op);
|
||||
u32 aarch64_insn_gen_nop(void);
|
||||
u32 aarch64_insn_gen_branch_reg(enum aarch64_insn_register reg,
|
||||
enum aarch64_insn_branch_type type);
|
||||
|
@ -574,7 +574,7 @@ u32 aarch64_insn_gen_cond_branch_imm(unsigned long pc, unsigned long addr,
|
||||
offset >> 2);
|
||||
}
|
||||
|
||||
u32 __kprobes aarch64_insn_gen_hint(enum aarch64_insn_hint_op op)
|
||||
u32 __kprobes aarch64_insn_gen_hint(enum aarch64_insn_hint_cr_op op)
|
||||
{
|
||||
return aarch64_insn_get_hint_value() | op;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user