summaryrefslogtreecommitdiff
path: root/yjit_core.h
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2021-06-02 08:15:39 -0700
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:35 -0400
commitea33b0a9baa26e96b1a34d7823ec0235d0e0bd90 (patch)
treea26be9134b7a367ff00d4c63757ba42e8929923f /yjit_core.h
parenteb6e5be038a94c622f09188c957370d86650628c (diff)
Add concatstrings to yjit codegen (#58)
* Add ETYPE_TRUE and ETYPE_FALSE * Implement checktype * Implement concatstrings * Update deps
Diffstat (limited to 'yjit_core.h')
-rw-r--r--yjit_core.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/yjit_core.h b/yjit_core.h
index d9cce3fe56..a2436e6eb3 100644
--- a/yjit_core.h
+++ b/yjit_core.h
@@ -32,6 +32,8 @@ enum yjit_type_enum
{
ETYPE_UNKNOWN = 0,
ETYPE_NIL,
+ ETYPE_TRUE,
+ ETYPE_FALSE,
ETYPE_FIXNUM,
ETYPE_ARRAY,
ETYPE_HASH,
@@ -49,7 +51,7 @@ typedef struct yjit_type_struct
uint8_t is_imm : 1;
// Specific value type, if known
- uint8_t type : 3;
+ uint8_t type : 4;
} val_type_t;
STATIC_ASSERT(val_type_size, sizeof(val_type_t) == 1);
@@ -64,6 +66,8 @@ STATIC_ASSERT(val_type_size, sizeof(val_type_t) == 1);
#define TYPE_IMM ( (val_type_t){ .is_imm = 1 } )
#define TYPE_NIL ( (val_type_t){ .is_imm = 1, .type = ETYPE_NIL } )
+#define TYPE_TRUE ( (val_type_t){ .is_imm = 1, .type = ETYPE_TRUE } )
+#define TYPE_FALSE ( (val_type_t){ .is_imm = 1, .type = ETYPE_FALSE } )
#define TYPE_FIXNUM ( (val_type_t){ .is_imm = 1, .type = ETYPE_FIXNUM } )
#define TYPE_ARRAY ( (val_type_t){ .is_heap = 1, .type = ETYPE_ARRAY } )
#define TYPE_HASH ( (val_type_t){ .is_heap = 1, .type = ETYPE_HASH } )