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