summaryrefslogtreecommitdiff
path: root/miniany/REQUIREMENTS
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2021-10-01 21:10:36 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2021-10-01 21:10:36 +0200
commit7f32ad51b0f08446d7f66e5403d69299d0d60021 (patch)
tree647f786b8f31bdc46b296f9b4b9d40c0375b583d /miniany/REQUIREMENTS
parentb0c6943121f186c79d2152694d209f82904ff1e1 (diff)
downloadcompilertests-7f32ad51b0f08446d7f66e5403d69299d0d60021.tar.gz
compilertests-7f32ad51b0f08446d7f66e5403d69299d0d60021.tar.bz2
c4: added strl* functions
cc: started peudo function parsing, currently for void main() only some philosophical thinking and testing around forward function declarations
Diffstat (limited to 'miniany/REQUIREMENTS')
-rw-r--r--miniany/REQUIREMENTS10
1 files changed, 9 insertions, 1 deletions
diff --git a/miniany/REQUIREMENTS b/miniany/REQUIREMENTS
index 985def7..a6fce03 100644
--- a/miniany/REQUIREMENTS
+++ b/miniany/REQUIREMENTS
@@ -130,5 +130,13 @@ TODO:
semicolon after the last triplet). IMHO a for loop makes sense for SIMD
operations only when we can use a stricter grammar to optimize certain
iterations.
-
+- c4: recursive descent parsing requires forward function declarations. Forward
+ function declarations are not that easy to implement, because you have to
+ generate a placeholder for the call address before you get the whole
+ definition of the forwarded function (especially its entry address).
+ Or we create sort of a temporary jump into a jump table (sort of a GOT) which
+ we patch when we know the address of the implementation of the function.
+ Having a global table at one place scales easier, as we don't have to keep
+ the whole generated code around just for patching (remember, we have tapes
+ and memory, no seek of files).