Lines Matching refs:state
132 static void fixup_load(struct disasm_state *state, struct pt_regs *regs, in fixup_load() argument
138 if ((state->aa == 1) || (state->aa == 2)) { in fixup_load()
139 set_reg(state->wb_reg, state->src1 + state->src2, regs, cregs); in fixup_load()
141 if (state->aa == 2) in fixup_load()
142 state->src2 = 0; in fixup_load()
145 if (state->zz == 0) { in fixup_load()
146 get32_unaligned_check(val, state->src1 + state->src2); in fixup_load()
148 get16_unaligned_check(val, state->src1 + state->src2); in fixup_load()
150 if (state->x) in fixup_load()
154 if (state->pref == 0) in fixup_load()
155 set_reg(state->dest, val, regs, cregs); in fixup_load()
159 fault: state->fault = 1; in fixup_load()
162 static void fixup_store(struct disasm_state *state, struct pt_regs *regs, in fixup_store() argument
166 if ((state->aa == 1) || (state->aa == 2)) { in fixup_store()
167 set_reg(state->wb_reg, state->src2 + state->src3, regs, cregs); in fixup_store()
169 if (state->aa == 3) in fixup_store()
170 state->src3 = 0; in fixup_store()
171 } else if (state->aa == 3) { in fixup_store()
172 if (state->zz == 2) { in fixup_store()
173 set_reg(state->wb_reg, state->src2 + (state->src3 << 1), in fixup_store()
175 } else if (!state->zz) { in fixup_store()
176 set_reg(state->wb_reg, state->src2 + (state->src3 << 2), in fixup_store()
184 if (!state->zz) in fixup_store()
185 put32_unaligned_check(state->src1, state->src2 + state->src3); in fixup_store()
187 put16_unaligned_check(state->src1, state->src2 + state->src3); in fixup_store()
191 fault: state->fault = 1; in fixup_store()
201 struct disasm_state state; in misaligned_fixup() local
223 disasm_instr(regs->ret, &state, 1, regs, cregs); in misaligned_fixup()
225 if (state.fault) in misaligned_fixup()
229 if ((state.zz == 1) || (state.di)) in misaligned_fixup()
232 if (!state.write) in misaligned_fixup()
233 fixup_load(&state, regs, cregs); in misaligned_fixup()
235 fixup_store(&state, regs, cregs); in misaligned_fixup()
237 if (state.fault) in misaligned_fixup()
245 regs->ret += state.instr_len; in misaligned_fixup()
259 state.words[0], address); in misaligned_fixup()