Merge viper types with standard native emitter.
diff --git a/py/compile.c b/py/compile.c
index 9e90f82..7624b03 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -2689,7 +2689,6 @@
// compile pass 2 and 3
emit_t *emit_bc = NULL;
emit_t *emit_native = NULL;
- emit_t *emit_viper = NULL;
emit_inline_asm_t *emit_inline_thumb = NULL;
for (scope_t *s = comp->scope_head; s != NULL; s = s->next) {
if (s->emit_options == EMIT_OPT_ASM_THUMB) {
@@ -2705,19 +2704,13 @@
} else {
switch (s->emit_options) {
case EMIT_OPT_NATIVE_PYTHON:
+ case EMIT_OPT_VIPER:
if (emit_native == NULL) {
emit_native = emit_x64_new(max_num_labels);
}
comp->emit = emit_native;
comp->emit_method_table = &emit_x64_method_table;
- break;
-
- case EMIT_OPT_VIPER:
- if (emit_viper == NULL) {
- emit_viper = emit_viper_x64_new(max_num_labels);
- }
- comp->emit = emit_viper;
- comp->emit_method_table = &emit_viper_x64_method_table;
+ comp->emit_method_table->set_native_types(comp->emit, s->emit_options == EMIT_OPT_VIPER);
break;
default: