Fix bug with FP stur instructions.

sim/aarch64
	* simulator.c (fsturs): Switch use of rn and st variables.
	(fsturd, fsturq): Likewise
This commit is contained in:
Jim Wilson 2016-12-01 09:06:07 -08:00
parent 69ace22001
commit 88ddd4a1ef
2 changed files with 11 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2016-12-01 Jim Wilson <jim.wilson@linaro.org>
* sim/aarch64/simulator.c (fsturs): Switch use of rn and st variables.
(fsturd, fsturq): Likewise
2016-08-15 Mike Frysinger <vapier@gentoo.org>
* interp.c: Include bfd.h.

View File

@ -7497,8 +7497,8 @@ fsturs (sim_cpu *cpu, int32_t offset)
unsigned int st = INSTR (4, 0);
TRACE_DECODE (cpu, "emulated at line %d", __LINE__);
aarch64_set_mem_u32 (cpu, aarch64_get_reg_u64 (cpu, st, 1) + offset,
aarch64_get_vec_u32 (cpu, rn, 0));
aarch64_set_mem_u32 (cpu, aarch64_get_reg_u64 (cpu, rn, 1) + offset,
aarch64_get_vec_u32 (cpu, st, 0));
}
/* Store 64 bit unscaled signed 9 bit. */
@ -7509,8 +7509,8 @@ fsturd (sim_cpu *cpu, int32_t offset)
unsigned int st = INSTR (4, 0);
TRACE_DECODE (cpu, "emulated at line %d", __LINE__);
aarch64_set_mem_u64 (cpu, aarch64_get_reg_u64 (cpu, st, 1) + offset,
aarch64_get_vec_u64 (cpu, rn, 0));
aarch64_set_mem_u64 (cpu, aarch64_get_reg_u64 (cpu, rn, 1) + offset,
aarch64_get_vec_u64 (cpu, st, 0));
}
/* Store 128 bit unscaled signed 9 bit. */
@ -7522,9 +7522,9 @@ fsturq (sim_cpu *cpu, int32_t offset)
FRegister a;
TRACE_DECODE (cpu, "emulated at line %d", __LINE__);
aarch64_get_FP_long_double (cpu, rn, & a);
aarch64_get_FP_long_double (cpu, st, & a);
aarch64_set_mem_long_double (cpu,
aarch64_get_reg_u64 (cpu, st, 1)
aarch64_get_reg_u64 (cpu, rn, 1)
+ offset, a);
}