diff options
author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2021-04-01 16:56:20 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:32 -0400 |
commit | c299112fd7eb4432f3fdc83a9f5716e8e79249f4 (patch) | |
tree | 7b9bdaf2a2e890301882aad451f5b376f656215b /yjit_core.h | |
parent | 215a2f401068fe0afc18a22377082d0d3d8644fd (diff) |
use ctx_stack_push_self()
Diffstat (limited to 'yjit_core.h')
-rw-r--r-- | yjit_core.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/yjit_core.h b/yjit_core.h index 6001838c50..1a55408a7b 100644 --- a/yjit_core.h +++ b/yjit_core.h @@ -31,7 +31,8 @@ typedef enum yjit_type_enum ETYPE_UNKNOWN = 0, ETYPE_NIL, ETYPE_FIXNUM, - //ETYPE_ARRAY + ETYPE_ARRAY, + ETYPE_HASH //ETYPE_SYMBOL //ETYPE_STRING @@ -63,9 +64,10 @@ STATIC_ASSERT(val_type_size, sizeof(val_type_t) == 1); // Could be any immediate #define TYPE_IMM ( (val_type_t){ .is_imm = 1 } ) -// Immediate types #define TYPE_NIL ( (val_type_t){ .is_imm = 1, .type = ETYPE_NIL } ) #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 } ) typedef enum yjit_temp_loc { @@ -215,6 +217,7 @@ typedef struct yjit_block_version // Context object methods x86opnd_t ctx_sp_opnd(ctx_t* ctx, int32_t offset_bytes); x86opnd_t ctx_stack_push(ctx_t* ctx, val_type_t type); +x86opnd_t ctx_stack_push_self(ctx_t* ctx); x86opnd_t ctx_stack_pop(ctx_t* ctx, size_t n); x86opnd_t ctx_stack_opnd(ctx_t* ctx, int32_t idx); val_type_t ctx_get_temp_type(const ctx_t* ctx, size_t idx); |