[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg o
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops |
Date: |
Thu, 11 Aug 2011 14:36:52 +0200 |
On 11.08.2011, at 14:28, Avi Kivity wrote:
> On 08/11/2011 02:40 PM, Alexander Graf wrote:
>> On 11.08.2011, at 13:24, malc wrote:
>>
>> > On Thu, 11 Aug 2011, Alexander Graf wrote:
>> >
>> >> While compiling current HEAD on a ppc64 box, I was confronted with the
>> >> following compile errors:
>> >>
>> >> tcg/optimize.c: In function ?tcg_constant_folding?:
>> >> tcg/optimize.c:546: error: ?INDEX_op_not_i32? undeclared (first use in
>> >> this function)
>> >> tcg/optimize.c:546: error: (Each undeclared identifier is reported only
>> >> once
>> >> tcg/optimize.c:546: error: for each function it appears in.)
>> >> tcg/optimize.c:546: error: ?INDEX_op_not_i64? undeclared (first use in
>> >> this function)
>> >> tcg/optimize.c:573: error: ?INDEX_op_ext32u_i64? undeclared (first use
>> >> in this function)
>> >> make[1]: *** [tcg/optimize.o] Error 1
>> >>
>> >> Obviously, the optimize.c tries to use TCG opcode constants that are
>> >> optional
>> >> and thus not defined in some targets, such as ppc64.
>> >>
>> >> This patch guards them with the proper #ifdefs, so compilation works
>> >> again.
>> >>
>> >> Signed-off-by: Alexander Graf<address@hidden>
>> >> ---
>> >> tcg/optimize.c | 8 +++++++-
>> >> 1 files changed, 7 insertions(+), 1 deletions(-)
>> >>
>> >> diff --git a/tcg/optimize.c b/tcg/optimize.c
>> >> index 7eb5eb1..7b4954c 100644
>> >> --- a/tcg/optimize.c
>> >> +++ b/tcg/optimize.c
>> >> @@ -543,7 +543,11 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
>> >> uint16_t *tcg_opc_ptr,
>> >> gen_args += 2;
>> >> args += 2;
>> >> break;
>> >> +#if ((TCG_TARGET_REG_BITS == 32)&& defined(TCG_TARGET_HAS_not_i32)) ||
>> >> \
>> >> + ((TCG_TARGET_REG_BITS == 64)&& defined(TCG_TARGET_HAS_not_i32)&& \
>> >> + defined(TCG_TARGET_HAS_not_i64))
>> >> CASE_OP_32_64(not):
>> >> +#endif
>> >> #ifdef TCG_TARGET_HAS_ext8s_i32
>> >> case INDEX_op_ext8s_i32:
>> >> #endif
>> >> @@ -568,8 +572,10 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
>> >> uint16_t *tcg_opc_ptr,
>> >> #ifdef TCG_TARGET_HAS_ext16u_i64
>> >> case INDEX_op_ext16u_i64:
>> >> #endif
>> >> -#if TCG_TARGET_REG_BITS == 64
>> >> +#if (TCG_TARGET_REG_BITS == 64)&& defined(TCG_TARGET_HAS_ext32s_i64)
>> >> case INDEX_op_ext32s_i64:
>> >> +#endif
>> >> +#if (TCG_TARGET_REG_BITS == 64)&& defined(TCG_TARGET_HAS_ext32u_i64)
>> >> case INDEX_op_ext32u_i64:
>> >> #endif
>> >> if (temps[args[1]].state == TCG_TEMP_CONST) {
>> >>
>> >
>> > Or (not even compile tested):
>>
>> Sure, but then the next target would pop up with optionals not implemented.
>> The real alternative would be to make these ops non-optional :)
>>
>
> Or to have automatic generation of the optionals based on the primitives, if
> the optionals are not present.
That's what's happening in the background already, no? The line is towards tcg
users though, not it tcg internal code.
Alex
- [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Alexander Graf, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, malc, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Alexander Graf, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Avi Kivity, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops,
Alexander Graf <=
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Avi Kivity, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Blue Swirl, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Richard Henderson, 2011/08/11
- Re: [Qemu-devel] [PATCH] TCG: Add preprocessor guards for optional tcg ops, Alexander Graf, 2011/08/21