Add simulation of MUL and NEG instructions to AArch64 simulator.
authorNick Clifton <nickc@redhat.com>
Fri, 18 Mar 2016 09:32:32 +0000 (09:32 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 18 Mar 2016 09:32:32 +0000 (09:32 +0000)
commite101a78be9388651099af079899b8654292d24f6
tree9f498b344c2f20f72852aa4377249dbe547e08eb
parent48427a77ec1c63cba605e1d6da807d5bf7c3174a
Add simulation of MUL and NEG instructions to AArch64 simulator.

* cpustate.c: Remove spurious spaces from TRACE strings.
Print hex equivalents of floats and doubles.
Check element number against array size when accessing vector
registers.
* memory.c: Trace memory reads when --trace-memory is enabled.
Remove float and double load and store functions.
* memory.h (aarch64_get_mem_float): Delete prototype.
(aarch64_get_mem_double): Likewise.
(aarch64_set_mem_float): Likewise.
(aarch64_set_mem_double): Likewise.
* simulator (IS_SET): Always return either 0 or 1.
(IS_CLEAR): Likewise.
(fldrs_pcrel): Load and store floats using 32-bit memory accesses
and doubles using 64-bit memory accesses.
(fldrd_pcrel, fldrs_wb, fldrs_abs, fldrs_scale_ext): Likewise.
(fldrd_wb, fldrd_abs, fsturs, fsturd, fldurs, fldurd): Likewise.
(fstrs_abs, fstrs_wb, fstrs_scale_ext, fstrd_abs): Likewise.
(fstrd_wb, fstrd_scale_ext, store_pair_float): Likewise.
(store_pair_double, load_pair_float, load_pair_double): Likewise.
(do_vec_MUL_by_element): New function.
(do_vec_op2): Call do_vec_MUL_by_element.
(do_scalar_NEG): New function.
(do_double_add): Call do_scalar_NEG.
sim/aarch64/ChangeLog
sim/aarch64/cpustate.c
sim/aarch64/memory.c
sim/aarch64/memory.h
sim/aarch64/simulator.c