diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-07-06 09:44:03 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-07-06 09:44:03 -0400 |
| commit | 7add85856a927766f218789aa946641228650c02 (patch) | |
| tree | 24de2f1aebf4435e3bef264b9110816cb0e6fa29 /docs/lifecycle | |
| parent | 482f005ff4a76ec69851e16ab8b332232e9befaa (diff) | |
add IR ast
Diffstat (limited to 'docs/lifecycle')
| -rw-r--r-- | docs/lifecycle/check.md | 10 | ||||
| -rw-r--r-- | docs/lifecycle/eval.md | 2 | ||||
| -rw-r--r-- | docs/lifecycle/import.md | 2 | ||||
| -rw-r--r-- | docs/lifecycle/ir.md | 2 | ||||
| -rw-r--r-- | docs/lifecycle/jit.md | 52 | ||||
| -rw-r--r-- | docs/lifecycle/parse.md | 2 | ||||
| -rw-r--r-- | docs/lifecycle/scope.md | 2 |
7 files changed, 72 insertions, 0 deletions
diff --git a/docs/lifecycle/check.md b/docs/lifecycle/check.md index 3e8177e..31685e1 100644 --- a/docs/lifecycle/check.md +++ b/docs/lifecycle/check.md @@ -1,3 +1,13 @@ # Check --- + +Type checking + +# Ops + +# Actions + +# Complete Function Definitions + +# Incomplete Function Invocations diff --git a/docs/lifecycle/eval.md b/docs/lifecycle/eval.md index 8572f21..11081a6 100644 --- a/docs/lifecycle/eval.md +++ b/docs/lifecycle/eval.md @@ -1,3 +1,5 @@ # Eval --- + +Reduce AST size by evaluating expressions diff --git a/docs/lifecycle/import.md b/docs/lifecycle/import.md index bf7635d..669e67b 100644 --- a/docs/lifecycle/import.md +++ b/docs/lifecycle/import.md @@ -1,3 +1,5 @@ # Import --- + +Find each import node and wait for the import to complete life cycle, then get a copy of its `export_tree` diff --git a/docs/lifecycle/ir.md b/docs/lifecycle/ir.md index fb5d70d..5db8091 100644 --- a/docs/lifecycle/ir.md +++ b/docs/lifecycle/ir.md @@ -1,3 +1,5 @@ # Ir --- + +Convert an AST into a list of 3 address instructions diff --git a/docs/lifecycle/jit.md b/docs/lifecycle/jit.md index 5515f55..3243385 100644 --- a/docs/lifecycle/jit.md +++ b/docs/lifecycle/jit.md @@ -1,3 +1,55 @@ # Jit --- + +Convert Ir Into X64 (X86_64) + +## Limitations + +#### No Segmentation Registers + +#### No X87 Support + +#### No access to the upper 8 bits of the lower 16 bits of registers AX, BX, CX, DX + +## Required Implicit Registers + +Instructions that implicitly modify a register now require the register as an operation + +# Operation + +Each instruction is written with varardic c functions with `TYPE`, `DATA` syntax + +## TYPE + +### General Registers Width + +### General Register Addresses Width + +### General Register Scale + +### General Register Id + +### General Register Memory Displacement + +### XMM Registers + +### MM Registers + +### Immediate Value + +### Relative Address + +### Label + +## DATA + +## Object Definitions + +```c +kpl_x64_lable(label) + +kpl_x64_inst(INSTRUCTION, [TYPE, VALUE]..., END) + +kpl_x64_inst_pfx(PREFIX, INSTRUCTION, [TYPE, VALUE]..., END) +``` diff --git a/docs/lifecycle/parse.md b/docs/lifecycle/parse.md index c9da979..1016a28 100644 --- a/docs/lifecycle/parse.md +++ b/docs/lifecycle/parse.md @@ -35,3 +35,5 @@ On type completion look up if type is a builtin ## Define `[]` ## Action `{}` + +# Operation diff --git a/docs/lifecycle/scope.md b/docs/lifecycle/scope.md index 849c52d..37ca355 100644 --- a/docs/lifecycle/scope.md +++ b/docs/lifecycle/scope.md @@ -10,6 +10,8 @@ Traverse AST and: ## Initialize Functions +## Split Process Into Tasks by `await` + ## Register Imports On finding an import node add a register task for the imported string |
