diff options
author | Yeting Kuo <fakepaper56@gmail.com> | 2020-09-17 15:29:27 -0600 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 2020-09-17 15:29:57 -0600 |
commit | f95bd50b4c1879ca96f0d3f0a60fcebe4afc9aef (patch) | |
tree | 1de42ddb47a1e3ed187bc4819bf0105360aa2a6a | |
parent | 172178c0c35e1dabb778c80c26dc872136c45cf5 (diff) | |
download | gcc-f95bd50b4c1879ca96f0d3f0a60fcebe4afc9aef.zip gcc-f95bd50b4c1879ca96f0d3f0a60fcebe4afc9aef.tar.gz gcc-f95bd50b4c1879ca96f0d3f0a60fcebe4afc9aef.tar.bz2 |
RISC-V: fix a typo in riscv.h
gcc/ChangeLog:
* config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/shorten-memrefs-8.c: New test.
-rw-r--r-- | gcc/config/riscv/riscv.h | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h index 9f67d82..b7b4a1c 100644 --- a/gcc/config/riscv/riscv.h +++ b/gcc/config/riscv/riscv.h @@ -941,7 +941,7 @@ extern unsigned riscv_stack_boundary; /* This is the maximum value that can be represented in a compressed load/store offset (an unsigned 5-bit value scaled by 4). */ -#define CSW_MAX_OFFSET ((4LL << C_S_BITS) - 1) & ~3 +#define CSW_MAX_OFFSET (((4LL << C_S_BITS) - 1) & ~3) /* Called from RISCV_REORG, this is defined in riscv-sr.c. */ diff --git a/gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c b/gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c new file mode 100644 index 0000000..a9128ca --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c @@ -0,0 +1,27 @@ +/* { dg-options "-Os -march=rv32imc -mabi=ilp32" } */ + +/* shorten_memrefs should use a correct base address*/ + +void +store (char *p, int k) +{ + *(int *)(p + 17) = k; + *(int *)(p + 21) = k; + *(int *)(p + 25) = k; + *(int *)(p + 29) = k; +} + +int +load (char *p) +{ + int a = 0; + a += *(int *)(p + 17); + a += *(int *)(p + 21); + a += *(int *)(p + 25); + a += *(int *)(p + 29); + return a; +} + +/* { dg-final { scan-assembler "store:\n\taddi\ta\[0-7\],a\[0-7\],1" } } */ +/* { dg-final { scan-assembler "load:\n\taddi\ta\[0-7\],a\[0-7\],1" } } */ + |