From 906ea30be235064e6e89835d2752209608488f19 Mon Sep 17 00:00:00 2001 From: Elias Bennour Date: Thu, 18 Jan 2024 18:25:00 +0100 Subject: [PATCH] update --- CMakeLists.txt | 2 ++ Makefile | 2 +- njvm.c | 37 ++++++++++++++++++++++++------------- njvm.o | Bin 52424 -> 46360 bytes support.o | Bin 4856 -> 3432 bytes 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d648b47..f1186eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,5 +5,7 @@ set(CMAKE_C_STANDARD 99) add_compile_options(-g -Wall -pedantic) +include_directories("./bigint/build/include") + add_executable(ninja njvm.c SDA.c) diff --git a/Makefile b/Makefile index f56f609..452f957 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ CC = gcc # program to Run -F = prog.bin +F = programs/prog1.bin # Compiler flags CFLAGS = -g -Wall -Ibigint/build/include diff --git a/njvm.c b/njvm.c index 226326b..ecf1c1b 100644 --- a/njvm.c +++ b/njvm.c @@ -9,6 +9,7 @@ #include "SDA.c" #include "debugMenu.c" #include "bigint.h" + // Debug int debug = 0; @@ -49,7 +50,7 @@ void execute(struct program program) { StackSlot tempSlot; ObjRef tempObj; for (i = 0; i < *program.size; ++i) { - if (debug == 1) debugMenu(fp,stack,&debug); + if (debug == 1) debugMenu(fp, stack, &debug); switch (program.program[i] >> 24) { case HALT: if (debug == 1) printf("halt\n"); @@ -59,8 +60,11 @@ void execute(struct program program) { push(stack, stackSlotWithObjRef(getIntObj(SIGN_EXTEND(IMMEDIATE(program.program[i]))))); break; case ADD: - if (debug == 1) printf("add: %i + %i\n",peek(stack, 2),peek(stack, 1)); - push(stack, stackSlotWithObjRef(getIntObj(getIntValfromStackSlot(pop(stack)) + getIntValfromStackSlot(pop(stack))))); + if (debug == 1) printf("add: %i + %i\n", peek(stack, 2), peek(stack, 1)); + bip.op1 = pop(stack).u.objRef; + bip.op2 = pop(stack).u.objRef; + bigAdd(); + push(stack, stackSlotWithObjRef(bip.res)); break; case SUB: if (debug == 1) printf("sub: %i - %i\n", peek(stack, 2), peek(stack, 1)); @@ -69,7 +73,8 @@ void execute(struct program program) { break; case MUL: if (debug == 1) printf("mul: %i * %i\n", peek(stack, 2), peek(stack, 1)); - push(stack, stackSlotWithObjRef(getIntObj(getIntValfromStackSlot(pop(stack)) * getIntValfromStackSlot(pop(stack))))); + push(stack, stackSlotWithObjRef( + getIntObj(getIntValfromStackSlot(pop(stack)) * getIntValfromStackSlot(pop(stack))))); break; case DIV: if (debug == 1) printf("div: %i / %i\n", peek(stack, 2), peek(stack, 1)); @@ -119,7 +124,7 @@ void execute(struct program program) { if (debug == 1) printf("rsf: %i\n", SIGN_EXTEND(IMMEDIATE(program.program[i]))); *stack.current = fp; if (debug == 1) printf("pop: %i\n", peek(stack, 1)); - tempSlot = pop(stack) ; + tempSlot = pop(stack); fp = tempSlot.u.number; break; case POPL: @@ -132,12 +137,18 @@ void execute(struct program program) { break; case NE: if (debug == 1) printf("ne: %i != %i\n", peek(stack, 2), peek(stack, 1)); - if (getIntValfromStackSlot(pop(stack)) != getIntValfromStackSlot(pop(stack))) push(stack, stackSlotWithObjRef(getIntObj(1))); + if (getIntValfromStackSlot(pop(stack)) != getIntValfromStackSlot(pop(stack))) push(stack, + stackSlotWithObjRef( + getIntObj( + 1))); else push(stack, stackSlotWithObjRef(getIntObj(0))); break; case EQ: if (debug == 1) printf("eq: %i == %i\n", peek(stack, 2), peek(stack, 1)); - if (getIntValfromStackSlot(pop(stack)) == getIntValfromStackSlot(pop(stack))) push(stack, stackSlotWithObjRef(getIntObj(1))); + if (getIntValfromStackSlot(pop(stack)) == getIntValfromStackSlot(pop(stack))) push(stack, + stackSlotWithObjRef( + getIntObj( + 1))); else push(stack, stackSlotWithObjRef(getIntObj(0))); break; case LT: @@ -199,21 +210,21 @@ void execute(struct program program) { if (debug == 1) printf("new i: %i\n", i); break; case DROP: - if(debug ==1) printf("drop\n"); + if (debug == 1) printf("drop\n"); *stack.current = *stack.current - SIGN_EXTEND(IMMEDIATE(program.program[i])); break; case DUP: - if (debug==1) printf("dup\n"); + if (debug == 1) printf("dup\n"); tempObj = pop(stack).u.objRef; push(stack, stackSlotWithObjRef(tempObj)); push(stack, stackSlotWithObjRef(tempObj)); break; case POPR: - if (debug==1) printf("popr") ; + if (debug == 1) printf("popr"); push(reg, pop(stack)); break; case PUSHR: - if(debug == 1) printf("pushr"); + if (debug == 1) printf("pushr"); push(stack, pop(reg)); break; } @@ -234,7 +245,7 @@ int main(int argc, char *argv[]) { stack.size = &size; stack.current = ¤t; stack.stack = s; - + // Initialize the registery int rSize = SIZE; int rCurrent = 0; @@ -267,7 +278,7 @@ int main(int argc, char *argv[]) { } else if (strcmp(argv[i], "--stack") == 0) { i++; // TODO: implement stack size - } else if(strcmp(argv[i], "--heap") == 0) { + } else if (strcmp(argv[i], "--heap") == 0) { i++; // TODO: implement heap size } else { diff --git a/njvm.o b/njvm.o index 0390d9104acea7126b3ad5216aa59b598eed09b2..d790adbd311699fe2488f46c48f7b33d4655ad9f 100644 GIT binary patch literal 46360 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

yF?^L!^Yx)k&)r0+?KUIF?z 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 O(xFC#QOW9_^#1@Vi0@7S literal 52424 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 vIU5@&ZDf4