mirror of
https://github.com/emptyynes/LIVM.git
synced 2025-01-06 16:42:25 +03:00
Delete LIVM.c
This commit is contained in:
parent
bbcd65b937
commit
3cbd326e03
1 changed files with 0 additions and 163 deletions
163
LIVM.c
163
LIVM.c
|
@ -1,163 +0,0 @@
|
||||||
uint64_t pc, cc;
|
|
||||||
void* ram;
|
|
||||||
|
|
||||||
uint8_t* ramu8;
|
|
||||||
uint16_t* ramu16;
|
|
||||||
uint32_t* ramu32;
|
|
||||||
uint64_t* ramu64;
|
|
||||||
int8_t* ram8;
|
|
||||||
int16_t* ram16;
|
|
||||||
int32_t* ram32;
|
|
||||||
int64_t* ram64;
|
|
||||||
float* ramf;
|
|
||||||
double* ramd;
|
|
||||||
|
|
||||||
|
|
||||||
#include "device.c"
|
|
||||||
|
|
||||||
|
|
||||||
void allocLIVM(uint64_t size) {
|
|
||||||
ram = malloc(size);
|
|
||||||
ramu8 = (uint8_t*)ram, ramu16 = (uint16_t*)ram,
|
|
||||||
ramu32 = (uint32_t*)ram, ramu64 = (uint64_t*)ram;
|
|
||||||
ram8 = (int8_t*)ram, ram16 = (int16_t*)ram,
|
|
||||||
ram32 = (int32_t*)ram, ram64 = (int64_t*)ram;
|
|
||||||
ramf = (float*)ram, ramd = (double*)ram;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum opcode {
|
|
||||||
NOP, END, // 2
|
|
||||||
LDA, LDB, LDC, // 3
|
|
||||||
ULA, ULB, ULC, // 3
|
|
||||||
CST, SSM, // 2
|
|
||||||
JMP, IVE, SLE, SIP, // 4
|
|
||||||
SUB, SUM, MUL, DIV, MOD, POW, // 6
|
|
||||||
INC, DEC, // 2
|
|
||||||
AND, BOR, XOR, NOT, // 4
|
|
||||||
EQU, LTH, GTH, // 3
|
|
||||||
OFR, WAI, OUT, GET, // 4
|
|
||||||
ALC, RLC, FRE, CPY, ADD, CAT, // 6
|
|
||||||
PRC // 1
|
|
||||||
/*
|
|
||||||
TODO: PRC
|
|
||||||
PRC - process
|
|
||||||
PRC 0 - create a new process with id = a
|
|
||||||
PRC 1 - kill process with id = a
|
|
||||||
PRC 2 - set offset = b for process with id = a
|
|
||||||
*/
|
|
||||||
};
|
|
||||||
|
|
||||||
void print_ullram() {
|
|
||||||
for (int i = 0; i < 100; i++) printf("%llu ", ramu64[i]);
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void run() {
|
|
||||||
register uint_least64_t ip = 0;
|
|
||||||
register uint_least64_t a = 0, b = 0, c = 0, s = 0, op, arg;
|
|
||||||
register uint8_t running = 1, mode_int = 1, size_mode = 1;
|
|
||||||
|
|
||||||
while (running) {
|
|
||||||
switch (size_mode) {
|
|
||||||
case 0:
|
|
||||||
running = 0;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype uint8_t
|
|
||||||
#define xram ramu8
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype int8_t
|
|
||||||
#define xram ram8
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype uint16_t
|
|
||||||
#define xram ramu16
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype int16_t
|
|
||||||
#define xram ram16
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype uint32_t
|
|
||||||
#define xram ramu32
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype int32_t
|
|
||||||
#define xram ram32
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype uint64_t
|
|
||||||
#define xram ramu64
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype int64_t
|
|
||||||
#define xram ram64
|
|
||||||
#include "xcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 9:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype float
|
|
||||||
#define xram ramf
|
|
||||||
#include "xfcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 10:
|
|
||||||
while (mode_int) {
|
|
||||||
#define xtype double
|
|
||||||
#define xram ramd
|
|
||||||
#include "xfcase.c"
|
|
||||||
#undef xtype
|
|
||||||
#undef xram
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
mode_int = 1;
|
|
||||||
}
|
|
||||||
free(ram);
|
|
||||||
}
|
|
||||||
|
|
||||||
void loadBIOS(uint64_t length, uint64_t* data) {
|
|
||||||
for (register uint64_t i = 0; i < length; ++i) ramu64[i] = data[i];
|
|
||||||
}
|
|
Loading…
Reference in a new issue