|
From: | Richard Henderson |
Subject: | Re: [PATCH] tcg: Add 'signed' bit to typecodes |
Date: | Thu, 17 Feb 2022 08:13:20 +1100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 2/16/22 17:39, Keith Packard wrote:
Commit 7319d83a (tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode) converted the tcg type system to a 3-bit field from two separate 1-bit fields. This subtly lost the 'signed' information from the types as it uses the dh_alias macro to reduce the types down to basic machine types. However, the dh_alias macro also discards sign information, aliasing 's32' to 'i32'.
The signed information is still there, merged with the typecode: #define dh_typecode_void 0 #define dh_typecode_noreturn 0 #define dh_typecode_i32 2 #define dh_typecode_s32 3 #define dh_typecode_i64 4 #define dh_typecode_s64 5 #define dh_typecode_ptr 6 Note that is_signed is bit 0. But I can see that dh_alias_s32 hides it -- definitely a bug there. r~
[Prev in Thread] | Current Thread | [Next in Thread] |