Skip to content

Commit

Permalink
target/riscv/vector_helper.c: optimize loops in ldst helpers
Browse files Browse the repository at this point in the history
Change the for loops in ldst helpers to do a single increment in the
counter, and assign it env->vstart, to avoid re-reading from vstart
every time.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20240314175704.478276-11-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit 0a11629)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
  • Loading branch information
danielhb authored and Michael Tokarev committed Mar 27, 2024
1 parent c4ed8c5 commit b7ff2c5
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions target/riscv/vector_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ vext_ldst_stride(void *vd, void *v0, target_ulong base,

VSTART_CHECK_EARLY_EXIT(env);

for (i = env->vstart; i < env->vl; i++, env->vstart++) {
for (i = env->vstart; i < env->vl; env->vstart = ++i) {
k = 0;
while (k < nf) {
if (!vm && !vext_elem_mask(v0, i)) {
Expand Down Expand Up @@ -266,7 +266,7 @@ vext_ldst_us(void *vd, target_ulong base, CPURISCVState *env, uint32_t desc,
VSTART_CHECK_EARLY_EXIT(env);

/* load bytes from guest memory */
for (i = env->vstart; i < evl; i++, env->vstart++) {
for (i = env->vstart; i < evl; env->vstart = ++i) {
k = 0;
while (k < nf) {
target_ulong addr = base + ((i * nf + k) << log2_esz);
Expand Down Expand Up @@ -382,7 +382,7 @@ vext_ldst_index(void *vd, void *v0, target_ulong base,
VSTART_CHECK_EARLY_EXIT(env);

/* load bytes from guest memory */
for (i = env->vstart; i < env->vl; i++, env->vstart++) {
for (i = env->vstart; i < env->vl; env->vstart = ++i) {
k = 0;
while (k < nf) {
if (!vm && !vext_elem_mask(v0, i)) {
Expand Down

0 comments on commit b7ff2c5

Please sign in to comment.