Patchwork [v2] tcg: fix assertion with --enable-debug

login
register
mail settings
Submitter Jay Foad
Date Feb. 20, 2010, 10:08 a.m.
Message ID <ee2e06e91002200208t4bfb6c10rbb797e09cfd712e4@mail.gmail.com>
Download mbox | patch
Permalink /patch/45913/
State New
Headers show

Comments

Jay Foad - Feb. 20, 2010, 10:08 a.m.
On 32-bit hosts op_qemu_ld32s is unused. Remove it to fix the
following assertion failure:

qemu-alpha: tcg/tcg.c:1055:
tcg_add_target_add_op_defs: Assertion `tcg_op_defs[op].used' failed.

Signed-off-by: Jay Foad <jay.foad@gmail.com>
---
 tcg/tcg-opc.h |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

 DEF2(qemu_ld64, 2, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
Blue Swirl - Feb. 20, 2010, 10:32 a.m.
Thanks, applied.

On 2/20/10, Jay Foad <jay.foad@gmail.com> wrote:
> On 32-bit hosts op_qemu_ld32s is unused. Remove it to fix the
>  following assertion failure:
>
>  qemu-alpha: tcg/tcg.c:1055:
>  tcg_add_target_add_op_defs: Assertion `tcg_op_defs[op].used' failed.
>
>  Signed-off-by: Jay Foad <jay.foad@gmail.com>
>  ---
>   tcg/tcg-opc.h |    5 -----
>   1 files changed, 0 insertions(+), 5 deletions(-)
>
>  diff --git a/tcg/tcg-opc.h b/tcg/tcg-opc.h
>  index 89db3b4..838f1f4 100644
>  --- a/tcg/tcg-opc.h
>  +++ b/tcg/tcg-opc.h
>  @@ -224,11 +224,6 @@ DEF2(qemu_ld32u, 1, 1, 1, TCG_OPF_CALL_CLOBBER |
>  TCG_OPF_SIDE_EFFECTS)
>   DEF2(qemu_ld32u, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>   #endif
>   #if TARGET_LONG_BITS == 32
>  -DEF2(qemu_ld32s, 1, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>  -#else
>  -DEF2(qemu_ld32s, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>  -#endif
>  -#if TARGET_LONG_BITS == 32
>   DEF2(qemu_ld64, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>   #else
>   DEF2(qemu_ld64, 2, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>
>
>
Alexander Graf - Feb. 22, 2010, 2:34 p.m.
Blue Swirl wrote:
> Thanks, applied.
>   

This patch breaks building on ppc32. Reverting it makes it compile again:

In file included from /suse/agraf/git/qemu/tcg/tcg.c:158:
/suse/agraf/git/qemu/tcg/ppc/tcg-target.c:1696: error:
‘INDEX_op_qemu_ld32s’ undeclared here (not in a function)


Alex

> On 2/20/10, Jay Foad <jay.foad@gmail.com> wrote:
>   
>> On 32-bit hosts op_qemu_ld32s is unused. Remove it to fix the
>>  following assertion failure:
>>
>>  qemu-alpha: tcg/tcg.c:1055:
>>  tcg_add_target_add_op_defs: Assertion `tcg_op_defs[op].used' failed.
>>
>>  Signed-off-by: Jay Foad <jay.foad@gmail.com>
>>  ---
>>   tcg/tcg-opc.h |    5 -----
>>   1 files changed, 0 insertions(+), 5 deletions(-)
>>
>>  diff --git a/tcg/tcg-opc.h b/tcg/tcg-opc.h
>>  index 89db3b4..838f1f4 100644
>>  --- a/tcg/tcg-opc.h
>>  +++ b/tcg/tcg-opc.h
>>  @@ -224,11 +224,6 @@ DEF2(qemu_ld32u, 1, 1, 1, TCG_OPF_CALL_CLOBBER |
>>  TCG_OPF_SIDE_EFFECTS)
>>   DEF2(qemu_ld32u, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>>   #endif
>>   #if TARGET_LONG_BITS == 32
>>  -DEF2(qemu_ld32s, 1, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>>  -#else
>>  -DEF2(qemu_ld32s, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>>  -#endif
>>  -#if TARGET_LONG_BITS == 32
>>   DEF2(qemu_ld64, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>>   #else
>>   DEF2(qemu_ld64, 2, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
>>
>>
>>
>>     
>
>
>
Jay Foad - Feb. 22, 2010, 2:42 p.m.
> This patch breaks building on ppc32. Reverting it makes it compile again:

> /suse/agraf/git/qemu/tcg/ppc/tcg-target.c:1696: error:
> ‘INDEX_op_qemu_ld32s’ undeclared here (not in a function)

Does it build if you remove line 1696? If so, I'd suggest doing that.

Thanks,
Jay.
Stefan Weil - Feb. 22, 2010, 3:22 p.m.
Jay Foad schrieb:
>> This patch breaks building on ppc32. Reverting it makes it compile again:
>>     
>
>   
>> /suse/agraf/git/qemu/tcg/ppc/tcg-target.c:1696: error:
>> ‘INDEX_op_qemu_ld32s’ undeclared here (not in a function)
>>     
>
> Does it build if you remove line 1696? If so, I'd suggest doing that.
>
> Thanks,
> Jay.

Removing the line helps only in that special case.
#if TCG_TARGET_REG_BITS == 64 ... #endif
is better. I can provide a patch.

Regards,
Stefan
Alexander Graf - Feb. 22, 2010, 3:23 p.m.
Jay Foad wrote:
>> This patch breaks building on ppc32. Reverting it makes it compile again:
>>     
>
>   
>> /suse/agraf/git/qemu/tcg/ppc/tcg-target.c:1696: error:
>> ‘INDEX_op_qemu_ld32s’ undeclared here (not in a function)
>>     
>
> Does it build if you remove line 1696? If so, I'd suggest doing that.
>   

Yes, that fixes it. Please grep through all tcg targets and send a patch
removing all references to ld32s if you think it's not necessary.


Alex
Jay Foad - Feb. 22, 2010, 3:55 p.m.
>> Does it build if you remove line 1696? If so, I'd suggest doing that.
>>
>
> Yes, that fixes it. Please grep through all tcg targets and send a patch
> removing all references to ld32s if you think it's not necessary.

Done. Unfortunately I'm not in a position to try building any of the
affected tcg targets. Or is there a way I can test it without an
hppa/ppc/sparc cross-compiler?

Thanks,
Jay.

Patch

diff --git a/tcg/tcg-opc.h b/tcg/tcg-opc.h
index 89db3b4..838f1f4 100644
--- a/tcg/tcg-opc.h
+++ b/tcg/tcg-opc.h
@@ -224,11 +224,6 @@  DEF2(qemu_ld32u, 1, 1, 1, TCG_OPF_CALL_CLOBBER |
TCG_OPF_SIDE_EFFECTS)
 DEF2(qemu_ld32u, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
 #endif
 #if TARGET_LONG_BITS == 32
-DEF2(qemu_ld32s, 1, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
-#else
-DEF2(qemu_ld32s, 1, 2, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
-#endif
-#if TARGET_LONG_BITS == 32
 DEF2(qemu_ld64, 2, 1, 1, TCG_OPF_CALL_CLOBBER | TCG_OPF_SIDE_EFFECTS)
 #else