diff options
Diffstat (limited to 'docs/lifecycle/jit.md')
| -rw-r--r-- | docs/lifecycle/jit.md | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/docs/lifecycle/jit.md b/docs/lifecycle/jit.md new file mode 100644 index 0000000..3243385 --- /dev/null +++ b/docs/lifecycle/jit.md @@ -0,0 +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) +``` |
