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