1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2021 SiFive
6 #include <linux/linkage.h>
8 #include <asm/asm-offsets.h>
9 #include <asm/alternative.h>
11 .macro ADD_SIGN_EXT pt_reg badaddr tmp_reg
12 REG_L \badaddr, PT_BADADDR(\pt_reg)
14 slli \tmp_reg,\tmp_reg,0x26
15 and \tmp_reg,\tmp_reg,\badaddr
18 slli \tmp_reg,\tmp_reg,0x27
19 or \badaddr,\tmp_reg,\badaddr
20 REG_S \badaddr, PT_BADADDR(\pt_reg)
24 ENTRY(sifive_cip_453_page_fault_trp)
25 ADD_SIGN_EXT a0, t0, t1
29 la t0, do_trap_unknown
32 END(sifive_cip_453_page_fault_trp)
34 ENTRY(sifive_cip_453_insn_fault_trp)
35 ADD_SIGN_EXT a0, t0, t1
36 la t0, do_trap_insn_fault
38 END(sifive_cip_453_insn_fault_trp)