Browse Source

Fixed range issues on sr<al>[i]32.u insns (see #695) (#740)

pull/742/head
marcfedorow 5 years ago
committed by GitHub
parent
commit
21f4b59d3a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      riscv/insns/sra32_u.h
  2. 2
      riscv/insns/srai32_u.h
  3. 2
      riscv/insns/srl32_u.h
  4. 2
      riscv/insns/srli32_u.h

2
riscv/insns/sra32_u.h

@ -1,7 +1,7 @@
require_rv64;
P_X_LOOP(32, 5, {
if(sa > 0)
pd = ((ps1 >> (sa - 1)) + 1) >> 1;
pd = (((uint64_t)(ps1 >> (sa - 1))) + 1) >> 1;
else
pd = ps1;
})

2
riscv/insns/srai32_u.h

@ -1,7 +1,7 @@
require_rv64;
P_I_LOOP(32, 5, {
if (imm5u > 0)
pd = ((ps1 >> (imm5u - 1)) + 1) >> 1;
pd = (((uint64_t)(ps1 >> (imm5u - 1))) + 1) >> 1;
else
pd = ps1;
})

2
riscv/insns/srl32_u.h

@ -1,7 +1,7 @@
require_rv64;
P_X_ULOOP(32, 5, {
if (sa > 0) {
pd = ((ps1 >> (sa - 1)) + 1) >> 1;
pd = (((uint64_t)(ps1 >> (sa - 1))) + 1) >> 1;
} else {
pd = ps1;
}

2
riscv/insns/srli32_u.h

@ -1,7 +1,7 @@
require_rv64;
P_I_ULOOP(32, 5, {
if (imm5u > 0) {
pd = ((ps1 >> (imm5u - 1)) + 1) >> 1;
pd = (((uint64_t)(ps1 >> (imm5u - 1))) + 1) >> 1;
} else {
pd = ps1;
}

Loading…
Cancel
Save