translator: add sources for kotlinclib

This commit is contained in:
Alexey Stepanov
2016-08-09 14:48:55 +03:00
parent e5ef16832a
commit ceaf9841ef
2 changed files with 89 additions and 0 deletions
@@ -0,0 +1,32 @@
extern char *malloc(int size);
int malloc_array(int x) {
return (int) malloc(x);
}
char kotlinclib_get_byte(int data, int index) {
return *((char *) data + index);
}
void kotlinclib_set_byte(int data, int index, char value) {
char *ptr = (char *) data;
*(ptr + index) = value;
}
int kotlinclib_get_int(int data, int index) {
return *((int *) data + index);
}
void kotlinclib_set_int(int data, int index, int value) {
int *ptr = (int *) data;
*(ptr + index) = value;
}
short kotlinclib_get_short(int data, int index) {
return *((short *) data + index);
}
void kotlinclib_set_short(int data, int index, short value) {
short *ptr = (short *) data;
*(ptr + index) = value;
}
@@ -0,0 +1,57 @@
#define MAKE_CONVERT(from, from_type, to, to_type) to_type kotlinclib_ ## from ## To ## to ( from_type value ) { return (to_type) value;}
MAKE_CONVERT(int, int, Byte, char)
MAKE_CONVERT(int, int, Char, char)
MAKE_CONVERT(int, int, Short, short)
MAKE_CONVERT(int, int, Long, long)
MAKE_CONVERT(int, int, Float, float)
MAKE_CONVERT(int, int, Double, double)
MAKE_CONVERT(byte, char, Char, char)
MAKE_CONVERT(byte, char, Short, short)
MAKE_CONVERT(byte, char, Int, int)
MAKE_CONVERT(byte, char, Long, long)
MAKE_CONVERT(byte, char, Float, float)
MAKE_CONVERT(byte, char, Double, double)
MAKE_CONVERT(char, char, Byte, char)
MAKE_CONVERT(char, char, Short, short)
MAKE_CONVERT(char, char, Int, int)
MAKE_CONVERT(char, char, Long, long)
MAKE_CONVERT(char, char, Float, float)
MAKE_CONVERT(char, char, Double, double)
MAKE_CONVERT(short, short, Byte, char)
MAKE_CONVERT(short, short, Char, char)
MAKE_CONVERT(short, short, Int, int)
MAKE_CONVERT(short, short, Long, long)
MAKE_CONVERT(short, short, Float, float)
MAKE_CONVERT(short, short, Double, double)
MAKE_CONVERT(long, long, Byte, char)
MAKE_CONVERT(long, long, Char, char)
MAKE_CONVERT(long, long, Short, short)
MAKE_CONVERT(long, long, Int, int)
MAKE_CONVERT(long, long, Float, float)
MAKE_CONVERT(long, long, Double, double)
MAKE_CONVERT(float, float, Byte, char)
MAKE_CONVERT(float, float, Char, char)
MAKE_CONVERT(float, float, Short, short)
MAKE_CONVERT(float, float, Int, int)
MAKE_CONVERT(float, float, Long, long)
MAKE_CONVERT(float, float, Double, double)
MAKE_CONVERT(double, double, Byte, char)
MAKE_CONVERT(double, double, Char, char)
MAKE_CONVERT(double, double, Short, short)
MAKE_CONVERT(double, double, Int, int)
MAKE_CONVERT(double, double, Long, long)
MAKE_CONVERT(double, double, Float, float)