index 2b9b5483efa3b7b76050a4c105d3cb4b20dc655c..aad9747f25cbf4d091e86db1f0ea9a3d098753dc 100644 (file)
break;
}
break;
+ case OBERON_TYPE_CHAR:
+ switch(type -> size)
+ {
+ case 1:
+ return new_string("B");
+ break;
+ case 2:
+ return new_string("C");
+ break;
+ case 4:
+ return new_string("I");
+ break;
+ case 8:
+ return new_string("J");
+ break;
+ default:
+ gen_error("jvm_get_descriptor: unsupported char size %i", type -> size);
+ break;
+ }
+ break;
case OBERON_TYPE_BOOLEAN:
return new_string("Z");
break;
{
case OBERON_TYPE_BOOLEAN:
case OBERON_TYPE_INTEGER:
+ case OBERON_TYPE_CHAR:
return (size <= 4) ? ('i') : ('l');
break;
case OBERON_TYPE_PROCEDURE:
case OBERON_TYPE_REAL:
return (size <= 4) ? ('f') : ('d');
break;
+ default:
+ gen_error("jvm_get_prefix: wat");
+ return '!';
+ break;
}
-
- gen_error("jvm_get_prefix: wat");
- return '!';
}
char
break;
}
break;
+ case OBERON_TYPE_CHAR:
+ switch(size)
+ {
+ case 1:
+ return 'b';
+ break;
+ case 2:
+ return 'c';
+ break;
+ case 4:
+ return 'i';
+ break;
+ case 8:
+ return 'l';
+ break;
+ default:
+ gen_error("jvm_get_postfix: char wat");
+ break;
+ }
+ break;
case OBERON_TYPE_PROCEDURE:
case OBERON_TYPE_ARRAY:
case OBERON_TYPE_RECORD: