On 2015-07-24 13:15, Richard Henderson wrote:
> On 07/24/2015 09:30 AM, Aurelien Jarno wrote:
> > Now that copies and constants are tracked separately, we can allow
> > constant to have copies, deferring the choice to use a register or a
> > constant to the register allocation pass. This prevent this kind of
> > regular constant reloading:
> 
> This appears to cause
> 
> $ gdb --args ./x86_64-linux-user/qemu-x86_64 /bin/ls
> ...
> (gdb) run
> Starting program: /home/rth/work/qemu/bld/x86_64-linux-user/qemu-x86_64 
> /bin/ls
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> [New Thread 0x7ffff6604700 (LWP 7767)]
> qemu-x86_64: /home/rth/work/qemu/qemu/tcg/tcg.c:1827: tcg_reg_alloc_bb_end:
> Assertion `ts->val_type == TEMP_VAL_DEAD' failed.
> 
> Program received signal SIGABRT, Aborted.

It looks like I have forgotten to configure with --enable-debug-tcg.
With it I am able to reproduce the problem. It seems to be a bug in the
liveness analysis or the register allocator, I will try to come with a
patch soon.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurel...@aurel32.net                 http://www.aurel32.net

Reply via email to