summaryrefslogtreecommitdiff
path: root/yjit_core.h
diff options
context:
space:
mode:
authorMaxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>2021-04-09 10:14:06 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:33 -0400
commit7ee3636f61631429fe39d2d213efe1b711babbab (patch)
treee7411788a57208693e7e61b01b1af2d65f55412b /yjit_core.h
parentf6e3f75c2b7503eb89f517c57ac4ea97dc2752b4 (diff)
Remove unnamed enums because MSVC sux
Diffstat (limited to 'yjit_core.h')
-rw-r--r--yjit_core.h38
1 files changed, 19 insertions, 19 deletions
diff --git a/yjit_core.h b/yjit_core.h
index 3830146f7e..ab849b9414 100644
--- a/yjit_core.h
+++ b/yjit_core.h
@@ -26,20 +26,20 @@
// Default versioning context (no type information)
#define DEFAULT_CTX ( (ctx_t){ 0 } )
+enum yjit_type_enum
+{
+ ETYPE_UNKNOWN = 0,
+ ETYPE_NIL,
+ ETYPE_FIXNUM,
+ ETYPE_ARRAY,
+ ETYPE_HASH,
+ ETYPE_SYMBOL,
+ ETYPE_STRING
+};
+
// Represent the type of a value (local/stack/self) in YJIT
typedef struct yjit_type_struct
{
- enum
- {
- ETYPE_UNKNOWN = 0,
- ETYPE_NIL,
- ETYPE_FIXNUM,
- ETYPE_ARRAY,
- ETYPE_HASH
- //ETYPE_SYMBOL
- //ETYPE_STRING
- };
-
// Value is definitely a heap object
uint8_t is_heap : 1;
@@ -66,18 +66,18 @@ STATIC_ASSERT(val_type_size, sizeof(val_type_t) == 1);
#define TYPE_ARRAY ( (val_type_t){ .is_heap = 1, .type = ETYPE_ARRAY } )
#define TYPE_HASH ( (val_type_t){ .is_heap = 1, .type = ETYPE_HASH } )
+enum yjit_temp_loc
+{
+ TEMP_STACK = 0,
+ TEMP_SELF,
+ TEMP_LOCAL, // Local with index
+ //TEMP_CONST, // Small constant (0, 1, 2, Qnil, Qfalse, Qtrue)
+};
+
// Potential mapping of a value on the temporary stack to
// self, a local variable or constant so that we can track its type
typedef struct yjit_temp_mapping
{
- enum
- {
- TEMP_STACK = 0,
- TEMP_SELF,
- TEMP_LOCAL, // Local with index
- //TEMP_CONST, // Small constant (0, 1, 2, Qnil, Qfalse, Qtrue)
- };
-
// Where/how is the value stored?
uint8_t kind: 2;