From 03b88a8a76e919a61c410deec2477c9afb51df1c Mon Sep 17 00:00:00 2001 From: nilspolek Date: Sat, 27 Jan 2024 10:25:27 +0100 Subject: [PATCH] added some things to GC --- GC.c | 52 +++++++++++++++++++++++++++++++++-- bigint/build/bin/testbip | Bin 72952 -> 72952 bytes bigint/build/lib/libbigint.a | Bin 27544 -> 27544 bytes bigint/src/libbigint.a | Bin 27544 -> 27544 bytes bigint/tst/testbip | Bin 72952 -> 72952 bytes njvm.c | 3 +- njvm.o | Bin 53592 -> 55808 bytes record.c | 2 +- stack.c | 3 +- stackslot.c | 2 +- 10 files changed, 53 insertions(+), 9 deletions(-) diff --git a/GC.c b/GC.c index b6a65fa..de25be0 100644 --- a/GC.c +++ b/GC.c @@ -12,9 +12,12 @@ typedef struct { unsigned int freiZeiger; unsigned int size; - ObjRef *data; + unsigned char *data; } *heapPartRef; +// SDA +struct sda sda; + // Stack struct stack stack; #define SIZE 64 @@ -38,15 +41,58 @@ void copy(ObjRef obj){ if(obj->brokenHeart == true) return; obj->brokenHeart = true; if (IS_PRIMITIVE(obj)){ - obj->forward_pointer = memcpy(secondary->data[secondary->freiZeiger],obj,obj->size); + if(obj->size > secondary->size-secondary->freiZeiger) perror("Heap is to Small"); + obj->forward_pointer = memcpy((void *) secondary->data[secondary->freiZeiger], obj, obj->size); secondary->freiZeiger += obj->size; } else { + if(sizeof(*obj) + (GET_ELEMENT_COUNT(obj) * sizeof(void *)) > secondary->size-secondary->freiZeiger) perror("Heap is to Small"); GET_ELEMENT_COUNT(obj); - obj->forward_pointer = memcpy(secondary->data[secondary->freiZeiger],obj,sizeof(*obj) + (GET_ELEMENT_COUNT(obj) * sizeof(void *))); + obj->forward_pointer = memcpy((void *) secondary->data[secondary->freiZeiger], obj, sizeof(*obj) + (GET_ELEMENT_COUNT(obj) * sizeof(void *))); secondary->freiZeiger += sizeof(*obj) + (GET_ELEMENT_COUNT(obj) * sizeof(void *)); for (int i = 0; i < GET_ELEMENT_COUNT(obj); ++i) { copy(getField(obj,i)); } } } + +void runGC(){ + int rootSize = *sda.size + *reg.size + *stack.size + 4; + ObjRef* rootObjs = malloc(sizeof(ObjRef) * rootSize); + if(rootObjs == NULL) perror("malloc"); + int counter = 0; + //Bip + rootObjs[0] = bip.op1; + rootObjs[counter++] = bip.op2; + rootObjs[counter++] = bip.res; + rootObjs[counter++] = bip.rem; + //SDA + for (int i = 0; i < *sda.size; ++i) { + rootObjs[counter++] = sda.sda[i]; + } + //REG + for (int i = 0; i < *reg.size; ++i) { + rootObjs[counter++] = reg.stack[i].u.objRef; + } + //STACK + for (int i = 0; i < *stack.size; ++i) { + rootObjs[counter++] = stack.stack[i].u.objRef; + } + + for (int i = 0; i < rootSize; ++i) { + if(rootObjs[i] == NULL) continue; + copy(rootObjs[i]); + } + heapPartRef temp = primary; + primary = secondary; + secondary = temp; + +} + +void *alloc(size_t size){ + if(primary->size-primary->freiZeiger < size){ + runGC(); + } + primary->freiZeiger += size; + return (void *) primary->data[primary->freiZeiger - size]; +} #endif diff --git a/bigint/build/bin/testbip b/bigint/build/bin/testbip index 84ced157297668661a4f86aadf8c6eca66307d54..b026b0ccfc98bb649556ca68148c7c6900511c02 100755 GIT binary patch delta 140 zcmV;70CWHNxdiyR1h8lX5VxbK3SqQ1jhdg-^)23zz=L=Mmv{sLNCRlfw70_q0o?`z zXv(ygqYDB318B;$x1$UJ5e^^>_r{?_n~g}nGaNp_ceTrRrVU=V1?~)dn^nGrQC(-lUwF5&5d-64SDRjnZE0eM0Pi{@bgtv3vU!DaHqk s3T!gvrV_Ja7iJtg-c&S)|3&V@XS@GbxEz(L3ig%GuDCS)iVUL)0HF&&5&!@I diff --git a/bigint/build/lib/libbigint.a b/bigint/build/lib/libbigint.a index 3d8c43a9ffed5dd73f3c742a4a19a7baa4418a9d..84a5d14304a2c98aad9d2005b8c4628ecdba6583 100644 GIT binary patch delta 31 icmbPnopHu>#tAZP#wO;5hUOcUv=|{wqs>8#Zdm}E#|X9n delta 31 jcmbPnopHu>#tAZPMwUkAmc|>Ev>3rm3yaM`jBZ%~obw3L diff --git a/bigint/src/libbigint.a b/bigint/src/libbigint.a index 3d8c43a9ffed5dd73f3c742a4a19a7baa4418a9d..84a5d14304a2c98aad9d2005b8c4628ecdba6583 100644 GIT binary patch delta 31 icmbPnopHu>#tAZP#wO;5hUOcUv=|{wqs>8#Zdm}E#|X9n delta 31 jcmbPnopHu>#tAZPMwUkAmc|>Ev>3rm3yaM`jBZ%~obw3L diff --git a/bigint/tst/testbip b/bigint/tst/testbip index 84ced157297668661a4f86aadf8c6eca66307d54..b026b0ccfc98bb649556ca68148c7c6900511c02 100755 GIT binary patch delta 140 zcmV;70CWHNxdiyR1h8lX5VxbK3SqQ1jhdg-^)23zz=L=Mmv{sLNCRlfw70_q0o?`z zXv(ygqYDB318B;$x1$UJ5e^^>_r{?_n~g}nGaNp_ceTrRrVU=V1?~)dn^nGrQC(-lUwF5&5d-64SDRjnZE0eM0Pi{@bgtv3vU!DaHqk s3T!gvrV_Ja7iJtg-c&S)|3&V@XS@GbxEz(L3ig%GuDCS)iVUL)0HF&&5&!@I diff --git a/njvm.c b/njvm.c index 4d19931..f16e77a 100644 --- a/njvm.c +++ b/njvm.c @@ -5,7 +5,6 @@ #include "stack.c" #include "program.c" #include "codeReader.c" -#include "SDA.c" #include "debugMenu.c" #include "bigint.h" #include "record.c" @@ -311,7 +310,7 @@ int main(int argc, char *argv[]) { int current = 0; stack.size = &size; stack.current = ¤t; - stack.stack = malloc(SIZE * 10024); + stack.stack = malloc(SIZE * 1024); // Initialize the registery int rSize = 1000; diff --git a/njvm.o b/njvm.o index b389ffddc90f0a1742de058825be2873ef501b81..d5a90df481d7e536120552a0b549a73b8d261dab 100644 GIT binary patch delta 22828 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 WT2wM~>UpER=!d1=M;{LIS^pQkp`2U* diff --git a/record.c b/record.c index a9c6eb1..3428583 100644 --- a/record.c +++ b/record.c @@ -32,7 +32,7 @@ void setField(ObjRef arr, int point, ObjRef value){ if(0 > point || point > getSize(arr)){ printf("Index %i out of bounds for length %i\n",point, getSize(arr)); } - GET_REFS_PTR(arr)[point] = malloc(8); + GET_REFS_PTR(arr)[point] = malloc(20); * (ObjRef *)GET_REFS_PTR(arr)[point]->data = value; } diff --git a/stack.c b/stack.c index 0b2ae46..2079fbe 100755 --- a/stack.c +++ b/stack.c @@ -9,8 +9,7 @@ #include "stackslot.c" #include "sda.c" -// SDA -struct sda sda; + struct stack { int* size; diff --git a/stackslot.c b/stackslot.c index 875f81d..24d2140 100644 --- a/stackslot.c +++ b/stackslot.c @@ -22,7 +22,7 @@ typedef struct { ObjRef getIntObj(int val) { ObjRef intObject; - unsigned int objSize = sizeof(unsigned int) + sizeof(int); + unsigned int objSize = sizeof(ObjRef) + sizeof(int); if ((intObject = malloc(objSize)) == NULL) { perror("malloc"); }