Weiwei Li
246f87960a
target/riscv: Fix lines with over 80 characters
...
Fix lines with over 80 characters for both code and comments.
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn >
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230405085813.40643-5-liweiwei@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2023-05-05 10:49:50 +10:00
Weiwei Li
3b57254d8a
target/riscv: Fix format for comments
...
Fix formats for multi-lines comments.
Add spaces around single line comments(after "/*" and before "*/").
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn >
Acked-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230405085813.40643-4-liweiwei@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2023-05-05 10:49:50 +10:00
Weiwei Li
c45eff30cb
target/riscv: Fix format for indentation
...
Fix identation problems, and try to use the same indentation strategy
in the same file.
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn >
Reviewed-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-Id: <20230405085813.40643-3-liweiwei@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2023-05-05 10:49:50 +10:00
Daniel Henrique Barboza
86247c51ff
target/riscv/vector_helper.c: avoid env_archcpu() when reading RISCVCPUConfig
...
This file has several uses of env_archcpu() that are used solely to read
cfg->vlen. Use the new riscv_cpu_cfg() inline instead.
Suggested-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Weiwei Li<liweiwei@iscas.ac.cn >
Message-ID: <20230226170514.588071-3-dbarboza@ventanamicro.com >
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com >
2023-03-01 18:09:45 -08:00
Daniel Henrique Barboza
e130683ffb
target/riscv/vector_helper.c: create vext_set_tail_elems_1s()
...
Commit 752614cab8 ("target/riscv: rvv: Add tail agnostic for vector
load / store instructions") added code to set the tail elements to 1 in
the end of vext_ldst_stride(), vext_ldst_us(), vext_ldst_index() and
vext_ldff(). Aside from a env->vl versus an evl value being used in the
first loop, the code is being repeated 4 times.
Create a helper to avoid code repetition in all those functions.
Arguments that are used in the callers (nf, esz and max_elems) are
passed as arguments. All other values are being derived inside the
helper.
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com >
Message-ID: <20230226170514.588071-2-dbarboza@ventanamicro.com >
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com >
2023-03-01 18:09:44 -08:00
LIU Zhiwei
8c89d50c10
target/riscv: Fix vslide1up.vf and vslide1down.vf
...
vslide1up_##BITWIDTH is used by the vslide1up.vx and vslide1up.vf. So its
scalar input should be uint64_t to hold the 64 bits float register.And the
same for vslide1down_##BITWIDTH.
This bug is caught when run these instructions on qemu-riscv32.
Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Message-ID: <20230213094550.29621-1-zhiwei_liu@linux.alibaba.com >
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com >
2023-02-23 14:21:34 -08:00
Markus Armbruster
66997c42e0
cleanup: Tweak and re-run return_directly.cocci
...
Tweak the semantic patch to drop redundant parenthesis around the
return expression.
Coccinelle drops a comment in hw/rdma/vmw/pvrdma_cmd.c; restored
manually.
Coccinelle messes up vmdk_co_create(), not sure why. Change dropped,
will be done manually in the next commit.
Line breaks in target/avr/cpu.h and hw/rdma/vmw/pvrdma_cmd.c tidied up
manually.
Whitespace in tools/virtiofsd/fuse_lowlevel.c tidied up manually.
checkpatch.pl complains "return of an errno should typically be -ve"
two times for hw/9pfs/9p-synth.c. Preexisting, the patch merely makes
it visible to checkpatch.pl.
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Message-Id: <20221122134917.1217307-2-armbru@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com >
2022-12-14 16:19:35 +01:00
Bin Meng
c1dadb8462
treewide: Remove the unnecessary space before semicolon
...
%s/return ;/return;
Signed-off-by: Bin Meng <bmeng@tinylab.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com >
Message-Id: <20221024072802.457832-1-bmeng@tinylab.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-10-24 13:41:10 +02:00
Yang Liu
a3ab69f9f6
target/riscv: rvv-1.0: vf[w]redsum distinguish between ordered/unordered
...
Starting with RVV1.0, the original vf[w]redsum_vs instruction was renamed
to vf[w]redusum_vs. The distinction between ordered and unordered is also
more consistent with other instructions, although there is no difference
in implementation between the two for QEMU.
Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Message-Id: <20220817074802.20765-2-liuyang22@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-27 11:23:57 +10:00
Yang Liu
5bda21c0ea
target/riscv: rvv-1.0: Simplify vfwredsum code
...
Remove duplicate code by wrapping vfwredsum_vs's OP function.
Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Message-Id: <20220817074802.20765-1-liuyang22@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-27 11:23:57 +10:00
Yueh-Ting (eop) Chen
edabcd0e0a
target/riscv: rvv: Add mask agnostic for vector permutation instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-9@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
35f2d795f3
target/riscv: rvv: Add mask agnostic for vector mask instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-8@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
5b448f44c9
target/riscv: rvv: Add mask agnostic for vector floating-point instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-7@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
72e17a9f86
target/riscv: rvv: Add mask agnostic for vector fix-point arithmetic instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-6@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
6e11d7eaa0
target/riscv: rvv: Add mask agnostic for vector integer comparison instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-5@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
fd93045ebf
target/riscv: rvv: Add mask agnostic for vector integer shift instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-4@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
bce9a636be
target/riscv: rvv: Add mask agnostic for vx instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-3@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
265ecd4c62
target/riscv: rvv: Add mask agnostic for vector load / store instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-2@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:33 +02:00
Yueh-Ting (eop) Chen
355d5584de
target/riscv: rvv: Add mask agnostic for vv instructions
...
According to v-spec, mask agnostic behavior can be either kept as
undisturbed or set elements' bits to all 1s. To distinguish the
difference of mask policies, QEMU should be able to simulate the mask
agnostic behavior as "set mask elements' bits to all 1s".
There are multiple possibility for agnostic elements according to
v-spec. The main intent of this patch-set tries to add option that
can distinguish between mask policies. Setting agnostic elements to
all 1s allows QEMU to express this.
This is the first commit regarding the optional mask agnostic
behavior. Follow-up commits will add this optional behavior
for all rvv instructions.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165570784143.17634.35095816584573691-1@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-09-07 09:18:32 +02:00
eopXD
803963f7cb
target/riscv: rvv: Add tail agnostic for vector permutation instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-15@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
acc6ffd482
target/riscv: rvv: Add tail agnostic for vector mask instructions
...
The tail elements in the destination mask register are updated under
a tail-agnostic policy.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-14@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
df4f52a758
target/riscv: rvv: Add tail agnostic for vector reduction instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-13@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
5eacf7d8a0
target/riscv: rvv: Add tail agnostic for vector floating-point instructions
...
Compares write mask registers, and so always operate under a tail-
agnostic policy.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-12@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
09106eed30
target/riscv: rvv: Add tail agnostic for vector fix-point arithmetic instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-11@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
89a32de2d5
target/riscv: rvv: Add tail agnostic for vector integer merge and move instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-10@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
38581e5c9a
target/riscv: rvv: Add tail agnostic for vector integer comparison instructions
...
Compares write mask registers, and so always operate under a tail-
agnostic policy.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-9@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
7b1bff41c1
target/riscv: rvv: Add tail agnostic for vector integer shift instructions
...
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-8@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
5c19fc156e
target/riscv: rvv: Add tail agnostic for vx, vvm, vxm instructions
...
`vmadc` and `vmsbc` produces a mask value, they always operate with
a tail agnostic policy.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-7@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
752614cab8
target/riscv: rvv: Add tail agnostic for vector load / store instructions
...
Destination register of unit-stride mask load and store instructions are
always written with a tail-agnostic policy.
A vector segment load / store instruction may contain fractional lmul
with nf * lmul > 1. The rest of the elements in the last register should
be treated as tail elements.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-6@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
f1eed927fb
target/riscv: rvv: Add tail agnostic for vv instructions
...
According to v-spec, tail agnostic behavior can be either kept as
undisturbed or set elements' bits to all 1s. To distinguish the
difference of tail policies, QEMU should be able to simulate the tail
agnostic behavior as "set tail elements' bits to all 1s".
There are multiple possibility for agnostic elements according to
v-spec. The main intent of this patch-set tries to add option that
can distinguish between tail policies. Setting agnostic elements to
all 1s allows QEMU to express this.
This is the first commit regarding the optional tail agnostic
behavior. Follow-up commits will add this optional behavior
for all rvv instructions.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-5@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
c7b8a4213b
target/riscv: rvv: Rename ambiguous esz
...
No functional change intended in this commit.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-3@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
25eae0486d
target/riscv: rvv: Prune redundant access_type parameter passed
...
No functional change intended in this commit.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-2@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
eopXD
8a085fb2ad
target/riscv: rvv: Prune redundant ESZ, DSZ parameter passed
...
No functional change intended in this commit.
Signed-off-by: eop Chen <eop.chen@sifive.com >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <165449614532.19704.7000832880482980398-1@git.sr.ht >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-06-10 09:31:42 +10:00
Weiwei Li
f06193c40b
target/riscv: fix start byte for vmv<nf>r.v when vstart != 0
...
The spec for vmv<nf>r.v says: 'the instructions operate as if EEW=SEW,
EMUL = NREG, effective length evl= EMUL * VLEN/SEW.'
So the start byte for vstart != 0 should take sew into account
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20220330021316.18223-1-liweiwei@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-04-22 10:35:16 +10:00
Weiwei Li
f32d82f6c3
target/riscv: optimize helper for vmv<nr>r.v
...
LEN is not used for GEN_VEXT_VMV_WHOLE macro, so vmv<nr>r.v can share
the same helper
Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn >
Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn >
Reviewed-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20220325085902.29500-2-liweiwei@iscas.ac.cn >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-04-22 10:35:16 +10:00
Marc-André Lureau
e03b56863d
Replace config-time define HOST_WORDS_BIGENDIAN
...
Replace a config-time define with a compile time condition
define (compatible with clang and gcc) that must be declared prior to
its usage. This avoids having a global configure time define, but also
prevents from bad usage, if the config header wasn't included before.
This can help to make some code independent from qemu too.
gcc supports __BYTE_ORDER__ from about 4.6 and clang from 3.2.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com >
[ For the s390x parts I'm involved in ]
Acked-by: Halil Pasic <pasic@linux.ibm.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220323155743.1585078-7-marcandre.lureau@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2022-04-06 10:50:37 +02:00
LIU Zhiwei
ac6bcf4d46
target/riscv: Fix vill field write in vtype
...
The guest should be able to set the vill bit as part of vsetvl.
Currently we may set env->vill to 1 in the vsetvl helper, but there
is nowhere that we set it to 0, so once it transitions to 1 it's stuck
there until the system is reset.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20220201064601.41143-1-zhiwei_liu@c-sky.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-02-16 12:24:18 +10:00
LIU Zhiwei
d6b9d93023
target/riscv: Adjust vector address with mask
...
The mask comes from the pointer masking extension, or the max value
corresponding to XLEN bits.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20220120122050.41546-20-zhiwei_liu@c-sky.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-01-21 15:52:57 +10:00
LIU Zhiwei
01d09525da
target/riscv: Fix check range for first fault only
...
Only check the range that has passed the address translation.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-id: 20220120122050.41546-19-zhiwei_liu@c-sky.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-01-21 15:52:57 +10:00
LIU Zhiwei
31961cfe50
target/riscv: Adjust vsetvl according to XLEN
...
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-id: 20220120122050.41546-17-zhiwei_liu@c-sky.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-01-21 15:52:57 +10:00
LIU Zhiwei
d96a271a8d
target/riscv: Split out the vill from vtype
...
We need not specially process vtype when XLEN changes.
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-id: 20220120122050.41546-16-zhiwei_liu@c-sky.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2022-01-21 15:52:57 +10:00
Frank Chang
9c0d2559de
target/riscv: rvv-1.0: rename vmandnot.mm and vmornot.mm to vmandn.mm and vmorn.mm
...
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-76-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
26086aea0d
target/riscv: rvv-1.0: add vector unit-stride mask load/store insns
...
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-75-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
5c89e9c096
target/riscv: rvv-1.0: add evl parameter to vext_ldst_us()
...
Add supports of Vector unit-stride mask load/store instructions
(vlm.v, vsm.v), which has:
evl (effective vector length) = ceil(env->vl / 8).
The new instructions operate the same as unmasked byte loads and stores.
Add evl parameter to reuse vext_ldst_us().
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-74-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
55c35407c3
target/riscv: rvv-1.0: floating-point reciprocal estimate instruction
...
Implement the floating-point reciprocal estimate to 7 bits instruction.
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-71-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
e848a1e563
target/riscv: rvv-1.0: floating-point reciprocal square-root estimate instruction
...
Implement the floating-point reciprocal square-root estimate to 7 bits
instruction.
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-70-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
f714361ed7
target/riscv: rvv-1.0: implement vstart CSR
...
* Update and check vstart value for vector instructions.
* Add whole register move instruction helper functions as we have to
call helper function for case where vstart is not zero.
* Remove probe_pages() calls in vector load/store instructions
(except fault-only-first loads) to raise the memory access exception
at the exact processed vector element.
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-67-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
8a4b52575a
target/riscv: rvv-1.0: relax RV_VLEN_MAX to 1024-bits
...
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-66-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
ff679b58e3
target/riscv: rvv-1.0: narrowing floating-point/integer type-convert
...
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-65-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00
Frank Chang
3ce4c09df7
target/riscv: rvv-1.0: widening floating-point/integer type-convert
...
Add the following instructions:
* vfwcvt.rtz.xu.f.v
* vfwcvt.rtz.x.f.v
Also adjust GEN_OPFV_WIDEN_TRANS() to accept multiple floating-point
rounding modes.
Signed-off-by: Frank Chang <frank.chang@sifive.com >
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Message-Id: <20211210075704.23951-63-frank.chang@sifive.com >
Signed-off-by: Alistair Francis <alistair.francis@wdc.com >
2021-12-20 14:53:31 +10:00