From f3fc1ea5b80317fa8f4bf8f805e89f1e57c7c7b8 Mon Sep 17 00:00:00 2001 From: cetio Date: Wed, 22 May 2024 11:43:52 -0400 Subject: [PATCH] snuff --- source/fnc/emission/ir.d | 2 +- source/fnc/emission/x86.d | 302 +++++++++++++++++++------------------- source/fnc/symbols.d | 5 +- 3 files changed, 154 insertions(+), 155 deletions(-) diff --git a/source/fnc/emission/ir.d b/source/fnc/emission/ir.d index 6fe6564..ed48094 100644 --- a/source/fnc/emission/ir.d +++ b/source/fnc/emission/ir.d @@ -1043,7 +1043,7 @@ final: static if (isSigned!(typeof(arg))) attr |= SymAttr.SIGNED; - operands ~= new Symbol(glob, attr, null, null, null, null, Marker(arg)); + operands ~= new Symbol(attr, null, null, null, null, Marker(arg)); } } diff --git a/source/fnc/emission/x86.d b/source/fnc/emission/x86.d index a7b40a6..860b0b9 100644 --- a/source/fnc/emission/x86.d +++ b/source/fnc/emission/x86.d @@ -203,159 +203,159 @@ public enum CPUID1_EDX } public: -static const cr0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-1, 0, false)); -static const cr2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-1, 2, false)); -static const cr3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-1, 3, false)); -static const cr4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-1, 4, false)); - -static const dr0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 0, false)); -static const dr1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 1, false)); -static const dr2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 2, false)); -static const dr3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 3, false)); -static const dr6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 6, false)); -static const dr7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-2, 7, false)); - -static const st0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 0, false)); -static const st1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 1, false)); -static const st2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 2, false)); -static const st3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 3, false)); -static const st4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 4, false)); -static const st5 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 5, false)); -static const st6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 6, false)); -static const st7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(-3, 7, false)); - -static const al = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 0, false)); -static const cl = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 1, false)); -static const dl = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 2, false)); -static const bl = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 3, false)); -static const ah = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 4, false)); -static const ch = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 5, false)); -static const dh = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 6, false)); -static const bh = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 7, false)); -static const spl = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 4, true)); -static const bpl = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 5, true)); -static const sil = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 6, true)); -static const dil = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 7, true)); -static const r8b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 8, false)); -static const r9b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 9, false)); -static const r10b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 10, false)); -static const r11b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 11, false)); -static const r12b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 12, false)); -static const r13b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 13, false)); -static const r14b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 14, false)); -static const r15b = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(8, 15, false)); - -static const ax = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 0, false)); -static const cx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 1, false)); -static const dx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 2, false)); -static const bx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 3, false)); -static const sp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 4, false)); -static const bp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 5, false)); -static const si = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 6, false)); -static const di = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 7, false)); -static const r8w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 8, false)); -static const r9w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 9, false)); -static const r10w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 10, false)); -static const r11w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 11, false)); -static const r12w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 12, false)); -static const r13w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 13, false)); -static const r14w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 14, false)); -static const r15w = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(16, 15, false)); - -static const eax = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 0, false)); -static const ecx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 1, false)); -static const edx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 2, false)); -static const ebx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 3, false)); -static const esp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 4, false)); -static const ebp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 5, false)); -static const esi = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 6, false)); -static const edi = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 7, false)); -static const r8d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 8, false)); -static const r9d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 9, false)); -static const r10d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 10, false)); -static const r11d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 11, false)); -static const r12d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 12, false)); -static const r13d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 13, false)); -static const r14d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 14, false)); -static const r15d = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(32, 15, false)); - -static const rax = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 0, false)); -static const rcx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 1, false)); -static const rdx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 2, false)); -static const rbx = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 3, false)); -static const rsp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 4, false)); -static const rbp = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 5, false)); -static const rsi = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 6, false)); -static const rdi = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 7, false)); -static const r8 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 8, false)); -static const r9 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 9, false)); -static const r10 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 10, false)); -static const r11 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 11, false)); -static const r12 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 12, false)); -static const r13 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 13, false)); -static const r14 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 14, false)); -static const r15 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 15, false)); +static const cr0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-1, 0, false)); +static const cr2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-1, 2, false)); +static const cr3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-1, 3, false)); +static const cr4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-1, 4, false)); + +static const dr0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 0, false)); +static const dr1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 1, false)); +static const dr2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 2, false)); +static const dr3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 3, false)); +static const dr6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 6, false)); +static const dr7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-2, 7, false)); + +static const st0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 0, false)); +static const st1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 1, false)); +static const st2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 2, false)); +static const st3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 3, false)); +static const st4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 4, false)); +static const st5 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 5, false)); +static const st6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 6, false)); +static const st7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(-3, 7, false)); + +static const al = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 0, false)); +static const cl = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 1, false)); +static const dl = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 2, false)); +static const bl = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 3, false)); +static const ah = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 4, false)); +static const ch = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 5, false)); +static const dh = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 6, false)); +static const bh = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 7, false)); +static const spl = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 4, true)); +static const bpl = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 5, true)); +static const sil = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 6, true)); +static const dil = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 7, true)); +static const r8b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 8, false)); +static const r9b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 9, false)); +static const r10b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 10, false)); +static const r11b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 11, false)); +static const r12b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 12, false)); +static const r13b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 13, false)); +static const r14b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 14, false)); +static const r15b = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(8, 15, false)); + +static const ax = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 0, false)); +static const cx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 1, false)); +static const dx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 2, false)); +static const bx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 3, false)); +static const sp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 4, false)); +static const bp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 5, false)); +static const si = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 6, false)); +static const di = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 7, false)); +static const r8w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 8, false)); +static const r9w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 9, false)); +static const r10w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 10, false)); +static const r11w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 11, false)); +static const r12w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 12, false)); +static const r13w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 13, false)); +static const r14w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 14, false)); +static const r15w = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(16, 15, false)); + +static const eax = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 0, false)); +static const ecx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 1, false)); +static const edx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 2, false)); +static const ebx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 3, false)); +static const esp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 4, false)); +static const ebp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 5, false)); +static const esi = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 6, false)); +static const edi = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 7, false)); +static const r8d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 8, false)); +static const r9d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 9, false)); +static const r10d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 10, false)); +static const r11d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 11, false)); +static const r12d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 12, false)); +static const r13d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 13, false)); +static const r14d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 14, false)); +static const r15d = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(32, 15, false)); + +static const rax = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 0, false)); +static const rcx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 1, false)); +static const rdx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 2, false)); +static const rbx = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 3, false)); +static const rsp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 4, false)); +static const rbp = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 5, false)); +static const rsi = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 6, false)); +static const rdi = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 7, false)); +static const r8 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 8, false)); +static const r9 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 9, false)); +static const r10 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 10, false)); +static const r11 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 11, false)); +static const r12 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 12, false)); +static const r13 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 13, false)); +static const r14 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 14, false)); +static const r15 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 15, false)); // TODO: MM and first 8 R64 can be used interchangably, this is bad! -static const mm0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 0, false)); -static const mm1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 1, false)); -static const mm2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 2, false)); -static const mm3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 3, false)); -static const mm4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 4, false)); -static const mm5 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 5, false)); -static const mm6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 6, false)); -static const mm7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(64, 7, false)); - -static const xmm0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 0, false)); -static const xmm1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 1, false)); -static const xmm2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 2, false)); -static const xmm3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 3, false)); -static const xmm4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 4, false)); -static const xmm5 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 5, false)); -static const xmm6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 6, false)); -static const xmm7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 7, false)); -static const xmm8 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 8, false)); -static const xmm9 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 9, false)); -static const xmm10 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 10, false)); -static const xmm11 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 11, false)); -static const xmm12 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 12, false)); -static const xmm13 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 13, false)); -static const xmm14 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 14, false)); -static const xmm15 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(128, 15, false)); - -static const ymm0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 0, false)); -static const ymm1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 1, false)); -static const ymm2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 2, false)); -static const ymm3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 3, false)); -static const ymm4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 4, false)); -static const ymm5 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 5, false)); -static const ymm6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 6, false)); -static const ymm7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 7, false)); -static const ymm8 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 8, false)); -static const ymm9 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 9, false)); -static const ymm10 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 10, false)); -static const ymm11 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 11, false)); -static const ymm12 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 12, false)); -static const ymm13 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 13, false)); -static const ymm14 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 14, false)); -static const ymm15 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(256, 15, false)); - -static const zmm0 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 0, false)); -static const zmm1 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 1, false)); -static const zmm2 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 2, false)); -static const zmm3 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 3, false)); -static const zmm4 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 4, false)); -static const zmm5 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 5, false)); -static const zmm6 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 6, false)); -static const zmm7 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 7, false)); -static const zmm8 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 8, false)); -static const zmm9 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 9, false)); -static const zmm10 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 10, false)); -static const zmm11 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 11, false)); -static const zmm12 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 12, false)); -static const zmm13 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 13, false)); -static const zmm14 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 14, false)); -static const zmm15 = new Symbol(null, SymAttr.LOCAL, null, null, null, null, Marker(512, 15, false)); +static const mm0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 0, false)); +static const mm1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 1, false)); +static const mm2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 2, false)); +static const mm3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 3, false)); +static const mm4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 4, false)); +static const mm5 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 5, false)); +static const mm6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 6, false)); +static const mm7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(64, 7, false)); + +static const xmm0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 0, false)); +static const xmm1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 1, false)); +static const xmm2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 2, false)); +static const xmm3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 3, false)); +static const xmm4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 4, false)); +static const xmm5 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 5, false)); +static const xmm6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 6, false)); +static const xmm7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 7, false)); +static const xmm8 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 8, false)); +static const xmm9 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 9, false)); +static const xmm10 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 10, false)); +static const xmm11 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 11, false)); +static const xmm12 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 12, false)); +static const xmm13 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 13, false)); +static const xmm14 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 14, false)); +static const xmm15 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(128, 15, false)); + +static const ymm0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 0, false)); +static const ymm1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 1, false)); +static const ymm2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 2, false)); +static const ymm3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 3, false)); +static const ymm4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 4, false)); +static const ymm5 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 5, false)); +static const ymm6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 6, false)); +static const ymm7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 7, false)); +static const ymm8 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 8, false)); +static const ymm9 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 9, false)); +static const ymm10 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 10, false)); +static const ymm11 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 11, false)); +static const ymm12 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 12, false)); +static const ymm13 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 13, false)); +static const ymm14 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 14, false)); +static const ymm15 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(256, 15, false)); + +static const zmm0 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 0, false)); +static const zmm1 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 1, false)); +static const zmm2 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 2, false)); +static const zmm3 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 3, false)); +static const zmm4 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 4, false)); +static const zmm5 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 5, false)); +static const zmm6 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 6, false)); +static const zmm7 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 7, false)); +static const zmm8 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 8, false)); +static const zmm9 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 9, false)); +static const zmm10 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 10, false)); +static const zmm11 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 11, false)); +static const zmm12 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 12, false)); +static const zmm13 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 13, false)); +static const zmm14 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 14, false)); +static const zmm15 = new Symbol(SymAttr.LOCAL, null, null, null, null, Marker(512, 15, false)); enum ubyte es = 0x26; enum ubyte cs = 0x2e; diff --git a/source/fnc/symbols.d b/source/fnc/symbols.d index 63c4dee..f1baeee 100644 --- a/source/fnc/symbols.d +++ b/source/fnc/symbols.d @@ -103,9 +103,9 @@ public class Symbol { public: final: - Glob glob; SymAttr symattr; string name; + // TODO: Only one parent! Symbol[] parents; Symbol[] children; Symbol[string] attributes; @@ -129,9 +129,8 @@ final: // stupid ass language forces an explicit default constructor to be written } - this(Glob glob, SymAttr symattr, string name, Symbol[] parents, Symbol[] children, Symbol[string] attributes, Marker marker) + this(SymAttr symattr, string name, Symbol[] parents, Symbol[] children, Symbol[string] attributes, Marker marker) { - this.glob = glob; this.symattr = symattr; this.name = name; this.parents = parents;