index d419abea2de5e88267b44667ccf95d370d08f698..5fabc3171bf03787173e193640811e552934bd4a 100644 (file)
return '!';
}
+char
+jvm_get_postfix(oberon_type_t * type)
+{
+ int size = type -> size;
+ switch(type -> class)
+ {
+ case OBERON_TYPE_BOOLEAN:
+ return 'b';
+ break;
+ case OBERON_TYPE_INTEGER:
+ switch(size)
+ {
+ case 1:
+ return 'b';
+ break;
+ case 2:
+ return 's';
+ break;
+ case 4:
+ return 'i';
+ break;
+ case 8:
+ return 'l';
+ break;
+ default:
+ gen_error("jvm_get_postfix: int wat");
+ break;
+ }
+ break;
+ case OBERON_TYPE_PROCEDURE:
+ case OBERON_TYPE_ARRAY:
+ case OBERON_TYPE_RECORD:
+ case OBERON_TYPE_POINTER:
+ return 'a';
+ break;
+ case OBERON_TYPE_REAL:
+ return (size <= 4) ? ('f') : ('d');
+ break;
+ default:
+ gen_error("jvm_get_postfix: wat");
+ break;
+ }
+
+ return '!';
+}
+
char *
jvm_get_field_full_name(oberon_object_t * x)
{
}
int
-jvm_cell_size_for_prefix(char prefix)
+jvm_cell_size_for_postfix(char postfix)
{
- switch(prefix)
+ switch(postfix)
{
case 'a':
case 'b':
case 's':
case 'i':
- case 'z':
case 'f':
return 1;
case 'l':
case 'd':
return 2;
default:
- gen_error("jvm_cell_size_for_prefix: unk prefix %c", prefix);
+ gen_error("jvm_cell_size_for_postfix: unk postfix %c", postfix);
}
return -666;