Skip to content

Commit 1b6bf2d

Browse files
mrutland-armwilldeacon
authored andcommitted
arm64: insn: remove aarch64_insn_gen_prefetch()
There are no users of aarch64_insn_gen_prefetch(), and which encodes a PRFM (immediate) with a hard-coded offset of 0. Remove it for now; we can always restore it with tests if we need it in future. Signed-off-by: Mark Rutland <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Joey Gouly <[email protected]> Cc: Will Deacon <[email protected]> Reviewed-by: Joey Gouly <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Will Deacon <[email protected]>
1 parent f0c4d9f commit 1b6bf2d

File tree

2 files changed

+0
-74
lines changed

2 files changed

+0
-74
lines changed

arch/arm64/include/asm/insn.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -580,10 +580,6 @@ u32 aarch64_insn_gen_extr(enum aarch64_insn_variant variant,
580580
enum aarch64_insn_register Rn,
581581
enum aarch64_insn_register Rd,
582582
u8 lsb);
583-
u32 aarch64_insn_gen_prefetch(enum aarch64_insn_register base,
584-
enum aarch64_insn_prfm_type type,
585-
enum aarch64_insn_prfm_target target,
586-
enum aarch64_insn_prfm_policy policy);
587583
#ifdef CONFIG_ARM64_LSE_ATOMICS
588584
u32 aarch64_insn_gen_atomic_ld_op(enum aarch64_insn_register result,
589585
enum aarch64_insn_register address,

arch/arm64/lib/insn.c

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -816,76 +816,6 @@ u32 aarch64_insn_gen_cas(enum aarch64_insn_register result,
816816
}
817817
#endif
818818

819-
static u32 aarch64_insn_encode_prfm_imm(enum aarch64_insn_prfm_type type,
820-
enum aarch64_insn_prfm_target target,
821-
enum aarch64_insn_prfm_policy policy,
822-
u32 insn)
823-
{
824-
u32 imm_type = 0, imm_target = 0, imm_policy = 0;
825-
826-
switch (type) {
827-
case AARCH64_INSN_PRFM_TYPE_PLD:
828-
break;
829-
case AARCH64_INSN_PRFM_TYPE_PLI:
830-
imm_type = BIT(0);
831-
break;
832-
case AARCH64_INSN_PRFM_TYPE_PST:
833-
imm_type = BIT(1);
834-
break;
835-
default:
836-
pr_err("%s: unknown prfm type encoding %d\n", __func__, type);
837-
return AARCH64_BREAK_FAULT;
838-
}
839-
840-
switch (target) {
841-
case AARCH64_INSN_PRFM_TARGET_L1:
842-
break;
843-
case AARCH64_INSN_PRFM_TARGET_L2:
844-
imm_target = BIT(0);
845-
break;
846-
case AARCH64_INSN_PRFM_TARGET_L3:
847-
imm_target = BIT(1);
848-
break;
849-
default:
850-
pr_err("%s: unknown prfm target encoding %d\n", __func__, target);
851-
return AARCH64_BREAK_FAULT;
852-
}
853-
854-
switch (policy) {
855-
case AARCH64_INSN_PRFM_POLICY_KEEP:
856-
break;
857-
case AARCH64_INSN_PRFM_POLICY_STRM:
858-
imm_policy = BIT(0);
859-
break;
860-
default:
861-
pr_err("%s: unknown prfm policy encoding %d\n", __func__, policy);
862-
return AARCH64_BREAK_FAULT;
863-
}
864-
865-
/* In this case, imm5 is encoded into Rt field. */
866-
insn &= ~GENMASK(4, 0);
867-
insn |= imm_policy | (imm_target << 1) | (imm_type << 3);
868-
869-
return insn;
870-
}
871-
872-
u32 aarch64_insn_gen_prefetch(enum aarch64_insn_register base,
873-
enum aarch64_insn_prfm_type type,
874-
enum aarch64_insn_prfm_target target,
875-
enum aarch64_insn_prfm_policy policy)
876-
{
877-
u32 insn = aarch64_insn_get_prfm_value();
878-
879-
insn = aarch64_insn_encode_ldst_size(AARCH64_INSN_SIZE_64, insn);
880-
881-
insn = aarch64_insn_encode_prfm_imm(type, target, policy, insn);
882-
883-
insn = aarch64_insn_encode_register(AARCH64_INSN_REGTYPE_RN, insn,
884-
base);
885-
886-
return aarch64_insn_encode_immediate(AARCH64_INSN_IMM_12, insn, 0);
887-
}
888-
889819
u32 aarch64_insn_gen_add_sub_imm(enum aarch64_insn_register dst,
890820
enum aarch64_insn_register src,
891821
int imm, enum aarch64_insn_variant variant,

0 commit comments

Comments
 (0)