Filip Bozuta
2c5bf8108e
target/mips: Refactor handling of vector compare 'less than' (signed) instructions
...
Remove unnecessary argument and provide separate function for each
instruction.
Signed-off-by: Filip Bozuta <Filip.Bozuta@rt-rk.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571837825-24438-3-git-send-email-Filip.Bozuta@rt-rk.com >
2019-10-25 18:37:01 +02:00
Filip Bozuta
84183fbe76
target/mips: Refactor handling of vector compare 'equal' instructions
...
Remove unnecessary argument and provide separate function for each
instruction.
Signed-off-by: Filip Bozuta <Filip.Bozuta@rt-rk.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571837825-24438-2-git-send-email-Filip.Bozuta@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
f392d1344e
target/mips: msa: Split helpers for ASUB_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Message-Id: <1571826227-10583-13-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
b24b9aec96
target/mips: msa: Split helpers for HSUB_<S|U>.<H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Message-Id: <1571826227-10583-12-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
8a0ee3802f
target/mips: msa: Split helpers for PCK<EV|OD>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-11-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
4d52cc2bbc
target/mips: msa: Split helpers for S<LL|RA|RAR|RL|RLR>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-10-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
dc0af9312b
target/mips: msa: Split helpers for HADD_<S|U>.<H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-9-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
c65ca134d7
target/mips: msa: Split helpers for ADD<_A|S_A|S_S|S_U|V>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-8-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
fb5f59b4dc
target/mips: msa: Split helpers for ILV<EV|OD|L|R>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-7-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
2db26305a6
target/mips: msa: Split helpers for <MAX|MIN>_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-6-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
e8e01ef026
target/mips: msa: Split helpers for <MAX|MIN>_A.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Reviewed-by: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1571826227-10583-5-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-25 18:37:01 +02:00
Aleksandar Markovic
0a1bb9127b
target/mips: msa: Move helpers for <AND|NOR|OR|XOR>.V
...
Cosmetic reorganization.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-21-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
26f0e079a0
target/mips: msa: Simplify and move helper for MOVE.V
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-20-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
a6387ea5de
target/mips: msa: Split helpers for MOD_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-19-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
64a0257f1f
target/mips: msa: Split helpers for DIV_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-18-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
1165669982
target/mips: msa: Split helpers for CLT_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-17-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
0501bb1a66
target/mips: msa: Split helpers for CLE_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-16-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
ade7e788e1
target/mips: msa: Split helpers for CEQ.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-15-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:45 +02:00
Aleksandar Markovic
755107e226
target/mips: msa: Split helpers for AVER_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-14-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
7672edc4c6
target/mips: msa: Split helpers for AVE_<S|U>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-13-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
a44d6d14a1
target/mips: msa: Split helpers for B<CLR|NEG|SEL>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-12-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
c1ed3038e7
target/mips: msa: Unroll loops and demacro <BMNZ|BMZ|BSEL>.V
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-11-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
2e3eddb084
target/mips: msa: Split helpers for BINS<L|R>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-10-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
4c5daf386f
target/mips: msa: Split helpers for PCNT.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-9-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Aleksandar Markovic
81c4b05995
target/mips: msa: Split helpers for <NLOC|NLZC>.<B|H|W|D>
...
Achieves clearer code and slightly better performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1569415572-19635-8-git-send-email-aleksandar.markovic@rt-rk.com >
2019-10-01 16:58:44 +02:00
Alex Bennée
502700d067
target/mips: rationalise softfloat includes
...
We should avoid including the whole of softfloat headers in cpu.h and
explicitly include it only where we will be calling softfloat
functions. We can use the -types.h in cpu.h for the few bits that are
global. We also move the restore_snan_bit_mode into internal.h and
include -helpers.h there.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
2019-08-19 12:07:13 +01:00
Aleksandar Markovic
5122958258
target/mips: Fix emulation of MSA pack instructions on big endian hosts
...
Fix emulation of MSA pack instructions on big endian hosts.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1563812573-30309-3-git-send-email-aleksandar.markovic@rt-rk.com >
2019-07-22 19:33:09 +02:00
Aleksandar Markovic
698c5752c4
target/mips: Correct helper for MSA FCLASS.<W|D> instructions
...
Correct helper for MSA FCLASS.<W|D> instructions.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1562068213-11307-8-git-send-email-aleksandar.markovic@rt-rk.com >
2019-07-02 14:20:42 +02:00
Aleksandar Markovic
807e6773a5
target/mips: Unroll loops for MSA float max/min instructions
...
Slight preformance improvement for MSA float max/min instructions.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1562068213-11307-7-git-send-email-aleksandar.markovic@rt-rk.com >
2019-07-02 14:20:39 +02:00
Aleksandar Markovic
44da090ba0
target/mips: Correct comments in msa_helper.c
...
Fix some errors in comments for MSA helpers.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1562068213-11307-6-git-send-email-aleksandar.markovic@rt-rk.com >
2019-07-02 14:20:36 +02:00
Aleksandar Markovic
5a6a1fabfc
target/mips: Fix big endian host behavior for interleave MSA instructions
...
Fix big endian host behavior for interleave MSA instructions. Previous
fix used TARGET_WORDS_BIGENDIAN instead of HOST_WORDS_BIGENDIAN, which
was a mistake.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1561543629-20327-9-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-26 13:25:56 +02:00
Aleksandar Markovic
14f5d874bc
target/mips: Fix emulation of ILVR.<B|H|W> on big endian host
...
Fix emulation of ILVR.<B|H|W> on big endian host by applying
mapping of data element indexes from one endian to another.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1561038349-17105-5-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-21 11:31:13 +02:00
Aleksandar Markovic
8e74bceb00
target/mips: Fix emulation of ILVL.<B|H|W> on big endian host
...
Fix emulation of ILVL.<B|H|W> on big endian host by applying
mapping of data element indexes from one endian to another.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1561038349-17105-4-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-21 11:31:10 +02:00
Aleksandar Markovic
b000169e4e
target/mips: Fix emulation of ILVOD.<B|H|W> on big endian host
...
Fix emulation of ILVOD.<B|H|W> on big endian host by applying
mapping of data element indexes from one endian to another.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1561038349-17105-3-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-21 11:31:07 +02:00
Aleksandar Markovic
98880cb5a6
target/mips: Fix emulation of ILVEV.<B|H|W> on big endian host
...
Fix emulation of ILVEV.<B|H|W> on big endian host by applying
mapping of data element indexes from one endian to another.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1561038349-17105-2-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-21 11:31:03 +02:00
Aleksandar Markovic
5d161bc818
target/mips: Unroll loops in helpers for MSA logic instructions
...
Unroll loops in helpers for MSA logic instructions for better
performance.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1559838440-9866-5-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-07 11:53:07 +02:00
Aleksandar Markovic
7471df9f9e
target/mips: Outline places for future MSA helpers
...
Outline places for future MSA helpers to follow the same organization
as in MSA tests.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1559838440-9866-4-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-07 11:52:50 +02:00
Aleksandar Markovic
7cc8a7220d
target/mips: Fix block-comment-related issues in msa_helper.c
...
Fix block-comment-related issues reported by checkpatch for file
msa_helper.c.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1559838440-9866-3-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-06 21:06:33 +02:00
Aleksandar Markovic
de1700d316
target/mips: Fix space-related format issues in msa_helper.c
...
Fix space-related format issues reported by checkpatch in file
msa_helper.c.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Rikalo <arikalo@wavecomp.com >
Message-Id: <1559838440-9866-2-git-send-email-aleksandar.markovic@rt-rk.com >
2019-06-06 21:06:24 +02:00
Mateja Marjanovic
0df911fd7f
target/mips: Improve performance of certain MSA instructions
...
Eliminate loops for better performance.
Following MSA instructions from "UNOP" group are affected:
- NLZC.<B|H|W|D>
- NLOC.<B|H|W|D>
- PCNT.<B|H|W|D>
Following MSA instructions from "BINOP" group are affected:
- ADD_A.<B|H|W|D>
- ADDS_A.<B|H|W|D>
- ADDS_S.<B|H|W|D>
- ADDS_U.<B|H|W|D>
- ADDV.<B|H|W|D>
- ASUB_S.<B|H|W|D>
- ASUB_U.<B|H|W|D>
- AVE_S.<B|H|W|D>
- AVE_U.<B|H|W|D>
- AVER_S.<B|H|W|D>
- AVER_U.<B|H|W|D>
- BCLR.<B|H|W|D>
- BNEG.<B|H|W|D>
- BSET.<B|H|W|D>
- CEQ.<B|H|W|D>
- CLE_S.<B|H|W|D>
- CLE_U.<B|H|W|D>
- CLT_S.<B|H|W|D>
- CLT_U.<B|H|W|D>
- DIV_S.<B|H|W|D>
- DIV_U.<B|H|W|D>
- DOTP_S.<B|H|W|D>
- DOTP_U.<B|H|W|D>
- HADD_S.<B|H|W|D>
- HADD_U.<B|H|W|D>
- HSUB_S.<B|H|W|D>
- HSUB_U.<B|H|W|D>
- MAX_A.<B|H|W|D>
- MAX_S.<B|H|W|D>
- MAX_U.<B|H|W|D>
- MIN_A.<B|H|W|D>
- MIN_S.<B|H|W|D>
- MIN_U.<B|H|W|D>
- MOD_S.<B|H|W|D>
- MOD_U.<B|H|W|D>
- MUL_Q.<B|H|W|D>
- MULR_Q.<B|H|W|D>
- MULV.<B|H|W|D>
- SLL.<B|H|W|D>
- SRA.<B|H|W|D>
- SRAR.<B|H|W|D>
- SRL.<B|H|W|D>
- SRLR.<B|H|W|D>
- SUBS_S.<B|H|W|D>
- SUBS_U.<B|H|W|D>
- SUBSUS_U.<B|H|W|D>
- SUBSUU_S.<B|H|W|D>
- SUBV.<B|H|W|D>
Following MSA instructions from "TEROP" group are affected:
- BINSL.<B|H|W|D>
- BINSR.<B|H|W|D>
- DPADD_S.<B|H|W|D>
- DPADD_U.<B|H|W|D>
- DPSUB_S.<B|H|W|D>
- DPSUB_U.<B|H|W|D>
- MADD_Q.<B|H|W|D>
- MADDR_Q.<B|H|W|D>
- MADDV.<B|H|W|D>
- MSUB_Q.<B|H|W|D>
- MSUBR_Q.<B|H|W|D>
- MSUBV.<B|H|W|D>
Additionally, following MSA instructionas are also affected:
- ILVL.<B|H|W|D>
- ILVR.<B|H|W|D>
- ILVEV.<B|H|W|D>
- ILVOD.<B|H|W|D>
- PCKEV.<B|H|W|D>
- PCKOD.<B|H|W|D>
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1551718283-4487-2-git-send-email-mateja.marjanovic@rt-rk.com >
2019-06-01 20:20:20 +02:00
Mateja Marjanovic
c1c9a10fb1
target/mips: Refactor and fix INSERT.<B|H|W|D> instructions
...
The old version of the helper for the INSERT.<B|H|W|D> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1554212605-16457-6-git-send-email-mateja.marjanovic@rt-rk.com >
2019-05-26 17:33:16 +02:00
Mateja Marjanovic
41d2885827
target/mips: Refactor and fix COPY_U.<B|H|W> instructions
...
The old version of the helper for the COPY_U.<B|H|W> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1554212605-16457-5-git-send-email-mateja.marjanovic@rt-rk.com >
2019-05-26 17:33:05 +02:00
Mateja Marjanovic
631c467461
target/mips: Refactor and fix COPY_S.<B|H|W|D> instructions
...
The old version of the helper for the COPY_S.<B|H|W|D> MSA instructions
has been replaced with four helpers that don't use switch, and change
the endianness of the given index, when executed on a big endian host.
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1554212605-16457-4-git-send-email-mateja.marjanovic@rt-rk.com >
2019-05-26 17:32:57 +02:00
Mateja Marjanovic
cf122bf8d2
target/mips: Make the results of MOD_<U|S>.<B|H|W|D> the same as on hardware
...
MSA instructions MOD_<U|S>.<B|H|W|D> when dividing by zero,
didn't return the same value when executed on a referent hardware
(FPGA MIPS 64 r6, little endian) and when executed on QEMU, which
is not a real bug, because the result when dividing by zero is
UNPREDICTABLE [1] (page 255, 256).
[1] MIPS Architecture for Programmers
Volume IV-j: The MIPS64 SIMD
Architecture Module, Revision 1.12
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1554207110-9113-3-git-send-email-mateja.marjanovic@rt-rk.com >
2019-05-26 17:32:37 +02:00
Mateja Marjanovic
d2a40a5f69
target/mips: Make the results of DIV_<U|S>.<B|H|W|D> the same as on hardware
...
MSA instructions DIV_<U|S>.<B|H|W|D> when dividing by zero,
didn't return the same value when executed on a referent hardware
(FPGA MIPS 64 r6, little endian) and when executed on QEMU, which
is not a real bug, because the result when dividing by zero is
UNPREDICTABLE [1] (page 141, 142).
[1] MIPS Architecture for Programmers
Volume IV-j: The MIPS64 SIMD
Architecture Module, Revision 1.12
Signed-off-by: Mateja Marjanovic <mateja.marjanovic@rt-rk.com >
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Message-Id: <1554207110-9113-2-git-send-email-mateja.marjanovic@rt-rk.com >
2019-05-26 17:32:31 +02:00
Richard Henderson
4accd4a89f
target/mips: Remove floatX_maybe_silence_nan from conversions
...
This is now handled properly by the generic softfloat code.
Cc: Aurelien Jarno <aurelien@aurel32.net >
Cc: Yongbok Kim <yongbok.kim@mips.com >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2018-05-17 15:27:15 -07:00
Eric Blake
94f5c480e9
mips: Tweak location of ';' in macros
...
It is more typical to provide the ';' by the caller of a macro
than to embed it in the macro itself; this is because syntax
highlight engines can get confused if a macro is called without
a semicolon before the closing '}'.
Signed-off-by: Eric Blake <eblake@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20171201232433.25193-3-eblake@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2018-01-16 14:54:51 +01:00
Philippe Mathieu-Daudé
26aa3d9aec
mips: introduce internal.h and cleanup cpu.h
...
no logical change, only code movement (and fix a comment typo).
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Tested-by: Igor Mammedov <imammedo@redhat.com >
Tested-by: James Hogan <james.hogan@imgtec.com >
Acked-by: Eduardo Habkost <ehabkost@redhat.com >
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com >
2017-09-21 13:24:34 +01:00
Thomas Huth
fcf5ef2ab5
Move target-* CPU file into a target/ folder
...
We've currently got 18 architectures in QEMU, and thus 18 target-xxx
folders in the root folder of the QEMU source tree. More architectures
(e.g. RISC-V, AVR) are likely to be included soon, too, so the main
folder of the QEMU sources slowly gets quite overcrowded with the
target-xxx folders.
To disburden the main folder a little bit, let's move the target-xxx
folders into a dedicated target/ folder, so that target-xxx/ simply
becomes target/xxx/ instead.
Acked-by: Laurent Vivier <laurent@vivier.eu > [m68k part]
Acked-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de > [tricore part]
Acked-by: Michael Walle <michael@walle.cc > [lm32 part]
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com > [s390x part]
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com > [s390x part]
Acked-by: Eduardo Habkost <ehabkost@redhat.com > [i386 part]
Acked-by: Artyom Tarasenko <atar4qemu@gmail.com > [sparc part]
Acked-by: Richard Henderson <rth@twiddle.net > [alpha part]
Acked-by: Max Filippov <jcmvbkbc@gmail.com > [xtensa part]
Reviewed-by: David Gibson <david@gibson.dropbear.id.au > [ppc part]
Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com > [crisµblaze part]
Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn > [unicore32 part]
Signed-off-by: Thomas Huth <thuth@redhat.com >
2016-12-20 21:52:12 +01:00