Lines Matching +full:current +full:- +full:limiting
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2011-2012 Synopsys (www.synopsys.com)
6 * -Adapted (from .26 to .35)
7 * -original contribution by Tim.yao@amlogic.com
139 if ((state->aa == 1) || (state->aa == 2)) { in fixup_load()
140 set_reg(state->wb_reg, state->src1 + state->src2, regs, cregs); in fixup_load()
142 if (state->aa == 2) in fixup_load()
143 state->src2 = 0; in fixup_load()
146 if (state->zz == 0) { in fixup_load()
147 get32_unaligned_check(val, state->src1 + state->src2); in fixup_load()
149 get16_unaligned_check(val, state->src1 + state->src2); in fixup_load()
151 if (state->x) in fixup_load()
155 if (state->pref == 0) in fixup_load()
156 set_reg(state->dest, val, regs, cregs); in fixup_load()
160 fault: state->fault = 1; in fixup_load()
167 if ((state->aa == 1) || (state->aa == 2)) { in fixup_store()
168 set_reg(state->wb_reg, state->src2 + state->src3, regs, cregs); in fixup_store()
170 if (state->aa == 3) in fixup_store()
171 state->src3 = 0; in fixup_store()
172 } else if (state->aa == 3) { in fixup_store()
173 if (state->zz == 2) { in fixup_store()
174 set_reg(state->wb_reg, state->src2 + (state->src3 << 1), in fixup_store()
176 } else if (!state->zz) { in fixup_store()
177 set_reg(state->wb_reg, state->src2 + (state->src3 << 2), in fixup_store()
184 /* write fix-up */ in fixup_store()
185 if (!state->zz) in fixup_store()
186 put32_unaligned_check(state->src1, state->src2 + state->src3); in fixup_store()
188 put16_unaligned_check(state->src1, state->src2 + state->src3); in fixup_store()
192 fault: state->fault = 1; in fixup_store()
214 " echo 0 > /proc/sys/kernel/ignore-unaligned-usertrap\n", in misaligned_fixup()
215 get_task_comm(buf, current), task_pid_nr(current)); in misaligned_fixup()
217 /* Add rate limiting if it gets down to it */ in misaligned_fixup()
219 get_task_comm(buf, current), task_pid_nr(current), in misaligned_fixup()
220 address, regs->ret); in misaligned_fixup()
224 disasm_instr(regs->ret, &state, 1, regs, cregs); in misaligned_fixup()
243 regs->ret = regs->bta & ~1U; in misaligned_fixup()
244 regs->status32 &= ~STATUS_DE_MASK; in misaligned_fixup()
246 regs->ret += state.instr_len; in misaligned_fixup()
248 /* handle zero-overhead-loop */ in misaligned_fixup()
249 if ((regs->ret == regs->lp_end) && (regs->lp_count)) { in misaligned_fixup()
250 regs->ret = regs->lp_start; in misaligned_fixup()
251 regs->lp_count--; in misaligned_fixup()
259 pr_err("Alignment trap: fault in fix-up %08lx at [<%08lx>]\n", in misaligned_fixup()