226 |
226 |
#ifdef __i386__
|
227 |
227 |
OP_LD_TABLE(std);
|
228 |
228 |
#endif /* __i386__ */
|
229 |
|
OP_LD_TABLE(stf);
|
230 |
229 |
OP_LD_TABLE(stdf);
|
231 |
|
OP_LD_TABLE(ldf);
|
232 |
230 |
OP_LD_TABLE(lddf);
|
233 |
231 |
#endif
|
234 |
232 |
|
... | ... | |
4295 |
4293 |
switch (xop) {
|
4296 |
4294 |
case 0x20: /* load fpreg */
|
4297 |
4295 |
gen_op_check_align_T0_3();
|
4298 |
|
gen_op_ldst(ldf);
|
4299 |
|
gen_op_store_FT0_fpr(rd);
|
|
4296 |
tcg_gen_qemu_ld32u(cpu_tmp32, cpu_T[0], dc->mem_idx);
|
|
4297 |
tcg_gen_st_i32(cpu_tmp32, cpu_env,
|
|
4298 |
offsetof(CPUState, fpr[rd]));
|
4300 |
4299 |
break;
|
4301 |
4300 |
case 0x21: /* load fsr */
|
4302 |
4301 |
gen_op_check_align_T0_3();
|
4303 |
|
gen_op_ldst(ldf);
|
|
4302 |
tcg_gen_qemu_ld32u(cpu_tmp32, cpu_T[0], dc->mem_idx);
|
|
4303 |
tcg_gen_st_i32(cpu_tmp32, cpu_env,
|
|
4304 |
offsetof(CPUState, ft0));
|
4304 |
4305 |
tcg_gen_helper_0_0(helper_ldfsr);
|
4305 |
4306 |
break;
|
4306 |
4307 |
case 0x22: /* load quad fpreg */
|
... | ... | |
4422 |
4423 |
if (gen_trap_ifnofpu(dc))
|
4423 |
4424 |
goto jmp_insn;
|
4424 |
4425 |
switch (xop) {
|
4425 |
|
case 0x24:
|
|
4426 |
case 0x24: /* store fpreg */
|
4426 |
4427 |
gen_op_check_align_T0_3();
|
4427 |
|
gen_op_load_fpr_FT0(rd);
|
4428 |
|
gen_op_ldst(stf);
|
|
4428 |
tcg_gen_ld_i32(cpu_tmp32, cpu_env,
|
|
4429 |
offsetof(CPUState, fpr[rd]));
|
|
4430 |
tcg_gen_qemu_st32(cpu_tmp32, cpu_T[0], dc->mem_idx);
|
4429 |
4431 |
break;
|
4430 |
4432 |
case 0x25: /* stfsr, V9 stxfsr */
|
4431 |
4433 |
#ifdef CONFIG_USER_ONLY
|
4432 |
4434 |
gen_op_check_align_T0_3();
|
4433 |
4435 |
#endif
|
4434 |
4436 |
tcg_gen_helper_0_0(helper_stfsr);
|
4435 |
|
gen_op_ldst(stf);
|
|
4437 |
tcg_gen_ld_i32(cpu_tmp32, cpu_env,
|
|
4438 |
offsetof(CPUState, ft0));
|
|
4439 |
tcg_gen_qemu_st32(cpu_tmp32, cpu_T[0], dc->mem_idx);
|
4436 |
4440 |
break;
|
4437 |
4441 |
case 0x26:
|
4438 |
4442 |
#ifdef TARGET_SPARC64
|