X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fbackends%2Fjvm%2Fgenerator-jvm-asm.c;h=4d0e471bf5abc0ad7027da13c4c5d8c4f35819f1;hb=35e75d29be18a7355aaaea9e146f3fda1d91857f;hp=50f3af92ee8706957784bd4a55667b9e4a8b9e82;hpb=55d9ee92b95dd306ac80fb643ed21d3b733395d7;p=dsw-obn.git diff --git a/src/backends/jvm/generator-jvm-asm.c b/src/backends/jvm/generator-jvm-asm.c index 50f3af9..4d0e471 100644 --- a/src/backends/jvm/generator-jvm-asm.c +++ b/src/backends/jvm/generator-jvm-asm.c @@ -8,7 +8,6 @@ #include -#include "../../../include/oberon.h" #include "../../oberon-internals.h" #include "generator-jvm.h" #include "generator-jvm-abi.h" @@ -70,15 +69,20 @@ jvm_generate_function_end(gen_proc_t * p) } struct gen_class * -jvm_create_class(char * full_name) +jvm_create_class(const char * dir, char * full_name) { struct gen_class * class = GC_MALLOC(sizeof *class); memset(class, 0, sizeof *class); - char * fname = new_string("%s.j", full_name); + char * fname = new_string("%s/%s.j", dir, full_name); class -> full_name = new_string(full_name); class -> fp = fopen(fname, "w"); - assert(class -> fp); + class -> dir = new_string(dir); + + if(class -> fp == NULL) + { + gen_error("unable to create file %s", fname); + } return class; } @@ -231,11 +235,11 @@ jvm_generate_push_float(gen_proc_t * p, double f, int size) { jvm_generate(p, 0, 1, "fconst_0"); } - if(f == 1.0) + else if(f == 1.0) { jvm_generate(p, 0, 1, "fconst_1"); } - if(f == 2.0) + else if(f == 2.0) { jvm_generate(p, 0, 1, "fconst_2"); } @@ -250,7 +254,7 @@ jvm_generate_push_float(gen_proc_t * p, double f, int size) { jvm_generate(p, 0, 2, "dconst_0"); } - if(f == 1.0) + else if(f == 1.0) { jvm_generate(p, 0, 2, "dconst_1"); } @@ -279,14 +283,6 @@ jvm_generate_push_string(gen_proc_t * p, char * str, int char_size) } } -gen_var_t * -oberon_generator_new_var() -{ - gen_var_t * v = GC_MALLOC(sizeof *v); - memset(v, 0, sizeof *v); - return v; -} - int jvm_new_label_id(gen_proc_t * p) {