Tristan B. Velloza Kildaire
b5488d5c92
Stuff
2022-01-20 10:43:12 +02:00
Tristan B. Velloza Kildaire
49de425e45
Static initialization for classes, including class memory allocation and then static variable (member) initialization has now been implemented for the code generator
2021-11-11 12:48:49 +02:00
Tristan B. Velloza Kildaire
3a32ecfea5
Or do it like that
2021-11-11 12:31:42 +02:00
Tristan B. Velloza Kildaire
a45d2bc30b
Variable's name is full path so resolve from the module
2021-11-11 12:30:40 +02:00
Tristan B. Velloza Kildaire
263bf5edb7
Bug fixed
...
Should not be parent of, but rather should be the class itself
2021-11-11 10:07:25 +02:00
Tristan B. Velloza Kildaire
3da50e9eab
Got some sort of class allocator node created, now to re-order it by using Context to be able to know when the StaticVariableDeclaration is within class.
...
This then generates code to allocate space for the class, once done we can be assured the declarations (placed after it now) will be assigning to properly allocated space (paged and maped for example)
2021-11-10 17:15:27 +02:00
Tristan B. Velloza Kildaire
cae3cfe88c
Updated
2021-11-10 17:01:17 +02:00
Tristan B. Velloza Kildaire
c58bf07bb1
WIP: Trying to get literal encoding working (but it is currently broken)
2021-11-10 17:01:12 +02:00
Tristan B. Velloza Kildaire
6ed33a8051
Done with work for today, good refactoring, now to work on class static initoialization.
...
Instance initialization and unique-ness, and same for Functions with their "FunctionData" will come later
2021-11-10 17:00:56 +02:00
Tristan B. Velloza Kildaire
cb6fb5f86f
Removed unused commented blocks of code
2021-11-10 16:45:08 +02:00
Tristan B. Velloza Kildaire
020847cb76
Added nested class static initialization to test case
2021-11-10 16:44:46 +02:00
Tristan B. Velloza Kildaire
d74f8cb046
Updated test case
2021-11-10 16:42:54 +02:00
Tristan B. Velloza Kildaire
47edb41e17
Seems like generalised generalPass() is working
2021-11-10 16:42:15 +02:00
Tristan B. Velloza Kildaire
3eddf73b7b
Added some stuff
...
FunctionData adding, some generation stuff, but reworking to make a general pass function
2021-11-10 16:17:42 +02:00
Tristan B. Velloza Kildaire
60f490d8e8
Refactored dependency tree generation code (and all related modules) to its own directory
2021-11-09 19:16:51 +02:00
Tristan B. Velloza Kildaire
fffcc953ab
Refactored Context class
2021-11-09 19:00:23 +02:00
Tristan B. Velloza Kildaire
7dd8f2df75
Updated test case
2021-11-09 18:27:01 +02:00
Tristan B. Velloza Kildaire
f0b0f83c45
Added note to be used later
2021-11-09 18:26:50 +02:00
Tristan B. Velloza Kildaire
c9997c60d0
Made public
2021-11-09 18:26:39 +02:00
Tristan B. Velloza Kildaire
beaad7e7f1
Added the thing
2021-11-09 18:26:30 +02:00
Tristan B. Velloza Kildaire
6499abb616
Fixed up all other `getStatements()` for other Container types
2021-11-09 16:54:00 +02:00
Tristan B. Velloza Kildaire
b39fea5e10
Fixed `getStatements()` for Module container type to be stable. Not having it so caused bad affects and re-ordering that should have NOT happened
2021-11-09 16:50:04 +02:00
Tristan B. Kildaire
7fe3ea342c
Added note on name resolution for correct stack offset mapping
2021-11-09 15:51:08 +02:00
Tristan B. Kildaire
de261ec511
Copy Context information from the ParserNode across to the Instruction node (only so far for Module Variable Declaration DNodes' embedded PNode
2021-11-09 15:50:04 +02:00
Tristan B. Kildaire
3b36113a5b
Added Context
2021-11-09 15:49:59 +02:00
Tristan B. Kildaire
8a8ddcee3a
Added notes on ceogeneration
2021-11-09 15:40:35 +02:00
Tristan B. Kildaire
b88943d2ed
Fixed `pushVariable()` to ACTUALLY add to the stackOffsetMap
2021-11-09 15:40:28 +02:00
Tristan B. Kildaire
bef0bced14
Addes some stub functions for writing of variables to the stack (code to generate it)
2021-11-09 15:35:45 +02:00
Tristan B. Kildaire
6c1dac5f2a
On variable declaration maintain a mapping of offsets of variables on the stack
2021-11-09 15:30:37 +02:00
Tristan B. Velloza Kildaire
fb927eeb17
Yesh
2021-11-06 12:38:13 +02:00
Tristan B. Kildaire
15416aa655
Fixed register generation for Rochard registers on x86_64
2021-11-02 17:24:08 +02:00
Tristan B. Kildaire
4df1aac54c
Prevent segmentation faults for now by returning bogus register and bogus emit
2021-11-02 17:16:46 +02:00
Tristan B. Kildaire
f75a3cfa5f
Added missing register file initialization
2021-11-02 17:14:15 +02:00
Tristan B. Kildaire
90151a2af1
Basic register usage should now be here
2021-11-02 17:13:48 +02:00
Tristan B. Kildaire
94d3128efe
Added missing implementation of `getUsableName()`
2021-11-02 17:06:36 +02:00
Tristan B. Kildaire
4dd7e281a2
Renamed method to implement
2021-11-02 17:05:47 +02:00
Tristan B. Kildaire
8bfbb2423c
Set to abstract for Register
2021-11-02 17:05:24 +02:00
Tristan B. Kildaire
09233633a0
WIP: Register allocator
2021-11-02 17:03:38 +02:00
Tristan B. Kildaire
0352f96c16
Do not initialize stack variables
2021-11-02 15:29:04 +02:00
Tristan B. Kildaire
536206fdc5
Code emitter can now emit all variable sizes
2021-11-02 15:27:17 +02:00
Tristan B. Kildaire
43891b1dfb
Added testing files
2021-11-02 15:14:03 +02:00
Tristan B. Kildaire
ff9890437d
Working code emitter and doing some code gen with it too
2021-11-02 15:13:44 +02:00
Tristan B. Kildaire
2d46eb4458
Removed unused (old) type
2021-11-02 13:58:36 +02:00
Tristan B. Velloza Kildaire
3dba481260
Refactored code emitter sub-system
2021-11-02 10:41:03 +02:00
Tristan B. Velloza Kildaire
3d79531978
Removed emitter code from data.d
2021-11-02 10:38:09 +02:00
Tristan B. Kildaire
ad5e26602f
Removed unused method
2021-11-02 09:43:02 +02:00
Tristan B. Kildaire
7a78a4e5b1
Removed old cruft
2021-11-02 09:42:50 +02:00
Tristan B. Kildaire
12087b8fdf
Removed old VTReeNode commented-out code
2021-11-02 09:42:21 +02:00
Tristan B. Kildaire
60b97f90aa
Removed unused commented code
2021-11-02 09:41:30 +02:00
Tristan B. Kildaire
9987c46497
Re-enabled a unit test for the type checker
2021-11-02 09:36:15 +02:00