diff options
-rw-r--r-- | src/lj_obj.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lj_obj.h b/src/lj_obj.h index d5809229..32a52663 100644 --- a/src/lj_obj.h +++ b/src/lj_obj.h | |||
@@ -175,18 +175,23 @@ typedef LJ_ALIGN(8) union TValue { | |||
175 | #if LJ_GC64 | 175 | #if LJ_GC64 |
176 | GCRef gcr; /* GCobj reference with tag. */ | 176 | GCRef gcr; /* GCobj reference with tag. */ |
177 | int64_t it64; | 177 | int64_t it64; |
178 | #endif | 178 | struct { |
179 | LJ_ENDIAN_LOHI( | ||
180 | int32_t i; /* Integer value. */ | ||
181 | , uint32_t it; /* Internal object tag. Must overlap MSW of number. */ | ||
182 | ) | ||
183 | }; | ||
184 | #else | ||
179 | struct { | 185 | struct { |
180 | LJ_ENDIAN_LOHI( | 186 | LJ_ENDIAN_LOHI( |
181 | union { | 187 | union { |
182 | #if !LJ_GC64 | ||
183 | GCRef gcr; /* GCobj reference (if any). */ | 188 | GCRef gcr; /* GCobj reference (if any). */ |
184 | #endif | ||
185 | int32_t i; /* Integer value. */ | 189 | int32_t i; /* Integer value. */ |
186 | }; | 190 | }; |
187 | , uint32_t it; /* Internal object tag. Must overlap MSW of number. */ | 191 | , uint32_t it; /* Internal object tag. Must overlap MSW of number. */ |
188 | ) | 192 | ) |
189 | }; | 193 | }; |
194 | #endif | ||
190 | #if LJ_FR2 | 195 | #if LJ_FR2 |
191 | int64_t ftsz; /* Frame type and size of previous frame, or PC. */ | 196 | int64_t ftsz; /* Frame type and size of previous frame, or PC. */ |
192 | #else | 197 | #else |