2 * Copyright (C) 2013-2015 Synopsys, Inc. All rights reserved.
4 * SPDX-License-Identifier: GPL-2.0+
7 #include <linux/linkage.h>
10 * Note on the LD/ST addressing modes with address register write-back
14 * LD.a reg1, [reg2, x] => Pre Incr
15 * Eff Addr for load = [reg2 + x]
17 * LD.ab reg1, [reg2, x] => Post Incr
18 * Eff Addr for load = [reg2]
58 /* saving %r0 to reg->r0 in advance since we read %ecr into it */
60 lr %r0, [%ecr] /* all stack addressing is manual so far */
63 /* now move %sp to reg->r0 position so we can do "push" automatically */
79 .macro SAVE_EXCEPTION_SOURCE
81 /* If MMU exists exception faulting address is loaded in EFA reg */
84 /* Otherwise in ERET (exception return) reg */
96 ENTRY(instruction_error)
100 j do_instruction_error
101 ENDPROC(instruction_error)
103 ENTRY(interrupt_handler)
104 /* Todo - save and restore CPU context when interrupts will be in use */
105 bl do_interrupt_handler
107 ENDPROC(interrupt_handler)
109 ENTRY(EV_MachineCheck)
111 SAVE_EXCEPTION_SOURCE
113 j do_machine_check_fault
114 ENDPROC(EV_MachineCheck)
130 SAVE_EXCEPTION_SOURCE
132 j do_tlb_prot_violation
138 j do_privilege_violation
139 ENDPROC(EV_PrivilegeV)
151 ENDPROC(EV_Extension)