[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 0/5] tcg queued patches
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PULL 0/5] tcg queued patches |
Date: |
Mon, 15 Feb 2016 13:04:37 +0000 |
On 15 February 2016 at 11:29, Richard Henderson <address@hidden> wrote:
> ----------------------------------------------------------------
> Richard Henderson (5):
> tcg: Work around clang bug wrt enum ranges, part 2
> tcg: Implement indirect memory registers
> tcg: Allocate indirect_base temporaries in a different order
> target-sparc: Tidy global register initialization
> target-sparc: Use global registers for the register window
>
> target-sparc/translate.c | 196
> ++++++++++++++++++++++-------------------------
> tcg/tcg.c | 138 +++++++++++++++++++++++----------
> tcg/tcg.h | 2 +
> 3 files changed, 192 insertions(+), 144 deletions(-)
This failed to build on the i686-w64-mingw32 compiler
("i686-w64-mingw32-gcc (GCC) 4.8.2", from the Ubuntu
gcc-mingw-w64-i686 package version 4.8.2-10ubuntu2+12):
target-sparc/translate.c: In function ‘gen_intermediate_code’:
target-sparc/translate.c:299:24: error: array subscript is above array
bounds [-Werror=array-bounds]
return cpu_regs[reg];
^
Fiddling around with the source file to see which call to
gen_dest_gpr() is provoking this shows that it's the one
in gen_ldda_asi() at line 2157 -- if I change the second
argument from 'rd + 1' to 'rd' it compiles OK.
Changing the call site of gen_ldda_asi at line 4727 so its last
argument is 'rd & ~1' rather than 'rd' also suppresses the
error. (That can't possibly change the semantics because we've
just done "if (rd & 1) goto illegal_insn;"...)
I'm generally reluctant to suggest compiler bugs, but this does
look rather like a compiler bug...
thanks
-- PMM
- [Qemu-devel] [PULL 0/5] tcg queued patches, Richard Henderson, 2016/02/15
- [Qemu-devel] [PULL 1/5] tcg: Work around clang bug wrt enum ranges, part 2, Richard Henderson, 2016/02/15
- [Qemu-devel] [PULL 2/5] tcg: Implement indirect memory registers, Richard Henderson, 2016/02/15
- [Qemu-devel] [PULL 4/5] target-sparc: Tidy global register initialization, Richard Henderson, 2016/02/15
- [Qemu-devel] [PULL 3/5] tcg: Allocate indirect_base temporaries in a different order, Richard Henderson, 2016/02/15
- [Qemu-devel] [PULL 5/5] target-sparc: Use global registers for the register window, Richard Henderson, 2016/02/15
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches,
Peter Maydell <=
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Richard Henderson, 2016/02/15
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Peter Maydell, 2016/02/15
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Richard Henderson, 2016/02/15
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Peter Maydell, 2016/02/16
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Richard Henderson, 2016/02/23
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Peter Maydell, 2016/02/23
- Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Peter Maydell, 2016/02/16
Re: [Qemu-devel] [PULL 0/5] tcg queued patches, Richard Henderson, 2016/02/23