{
throw new RuntimeException("NOT IMPLEMENTED");
}
+ else if(n == -4)
+ {
+ throw new RuntimeException("RETURN TRAP");
+ }
else
{
throw new RuntimeException("TRAP CODE " + n);
{
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");
}
{
jvm_generate(p, 0, 2, "dconst_0");
}
- if(f == 1.0)
+ else if(f == 1.0)
{
jvm_generate(p, 0, 2, "dconst_1");
}
#include <gc.h>
#include "../../oberon-internals.h"
+#include "../../generator.h"
#include "generator-jvm.h"
#include "generator-jvm-abi.h"
#include "generator-jvm-asm.h"
m = ctx -> mod -> gen_mod;
p = m -> class -> p;
+ oberon_generate_trap(ctx, -4);
jvm_generate_function_end(p);
}
oberon_error(ctx, "procedure name not matched");
}
- if(proc -> type -> base -> class == OBERON_TYPE_NOTYPE
- && proc -> has_return == 0)
+ if(proc -> type -> base -> class == OBERON_TYPE_NOTYPE)
{
oberon_make_return(ctx, NULL);
}