diff options
| author | Ginger Bill <bill@gingerbill.org> | 2016-10-30 17:49:30 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2016-10-30 17:49:30 +0000 |
| commit | ca311c4a59a34c0b516a415df37e7dd9d9fb65bf (patch) | |
| tree | 8dedc0eef2950c77120b31787f8ba433b0e551a7 /src/ssa/ssa.cpp | |
| parent | 3ec67853e1359015f516aac346760b299d261015 (diff) | |
Begin work on the Interpreter
Diffstat (limited to 'src/ssa/ssa.cpp')
| -rw-r--r-- | src/ssa/ssa.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/ssa/ssa.cpp b/src/ssa/ssa.cpp index 9e1ff1ecc..a28f84e26 100644 --- a/src/ssa/ssa.cpp +++ b/src/ssa/ssa.cpp @@ -93,6 +93,7 @@ struct ssaProcedure { AstNode * body; u64 tags; + Array<ssaValue *> params; Array<ssaDefer> defer_stmts; Array<ssaBlock *> blocks; i32 scope_index; @@ -308,7 +309,6 @@ enum ssaValueKind { ssaValue_Constant, ssaValue_ConstantSlice, - ssaValue_ConstantString, ssaValue_Nil, ssaValue_TypeName, ssaValue_Global, @@ -335,10 +335,6 @@ struct ssaValue { i64 count; } ConstantSlice; struct { - Type * type; - String string; - } ConstantString; - struct { Type *type; } Nil; struct { @@ -579,6 +575,13 @@ void ssa_file_write(ssaFileBuffer *f, void *data, isize len) { ssa_file_buffer_write(f, data, len); } +ssaValue *ssa_lookup_member(ssaModule *m, String name) { + ssaValue **v = map_get(&m->members, hash_string(name)); + if (v != NULL) { + return *v; + } + return NULL; +} Type *ssa_type(ssaValue *value); @@ -636,8 +639,6 @@ Type *ssa_type(ssaValue *value) { return value->Constant.type; case ssaValue_ConstantSlice: return value->ConstantSlice.type; - case ssaValue_ConstantString: - return value->ConstantString.type; case ssaValue_Nil: return value->Nil.type; case ssaValue_TypeName: |