extractng Nodes from son.rs
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
This commit is contained in:
parent
ec9bb886f8
commit
945e5c70f6
|
@ -2,8 +2,8 @@ use {
|
|||
super::{AssemblySpec, Backend},
|
||||
crate::{
|
||||
lexer::TokenKind,
|
||||
nodes::{Kind, Nid, Nodes, MEM},
|
||||
parser,
|
||||
son::{Kind, Nid, Nodes, MEM},
|
||||
ty::{self, Loc, Module, Offset, Size, Types},
|
||||
utils::{EntSlice, EntVec},
|
||||
},
|
||||
|
|
|
@ -5,8 +5,8 @@ use {
|
|||
HbvmBackend, Nid, Nodes, PLoc, Reloc, TypedReloc,
|
||||
},
|
||||
lexer::TokenKind,
|
||||
nodes::{Kind, ARG_START, MEM, VOID},
|
||||
parser, quad_sort,
|
||||
son::{Kind, ARG_START, MEM, VOID},
|
||||
ty::{self, Arg, Loc, Module, Offset, Sig, Types},
|
||||
utils::{BitSet, EntSlice},
|
||||
},
|
||||
|
|
|
@ -60,6 +60,7 @@ pub mod fmt;
|
|||
pub mod fs;
|
||||
pub mod fuzz;
|
||||
pub mod lexer;
|
||||
pub mod nodes;
|
||||
pub mod parser;
|
||||
pub mod son;
|
||||
pub mod ty;
|
||||
|
@ -67,8 +68,8 @@ pub mod ty;
|
|||
pub mod backend {
|
||||
use {
|
||||
crate::{
|
||||
nodes::Nodes,
|
||||
parser,
|
||||
son::Nodes,
|
||||
ty::{self, Module, Types},
|
||||
utils::EntSlice,
|
||||
},
|
||||
|
|
2194
lang/src/nodes.rs
Normal file
2194
lang/src/nodes.rs
Normal file
File diff suppressed because it is too large
Load diff
2277
lang/src/son.rs
2277
lang/src/son.rs
File diff suppressed because it is too large
Load diff
|
@ -50,21 +50,43 @@ optional:
|
|||
ADDI64 r254, r254, 16d
|
||||
JALA r0, r31, 0a
|
||||
optionala:
|
||||
ADDI64 r254, r254, -48d
|
||||
CP r17, r1
|
||||
ADDI64 r14, r254, 8d
|
||||
ADDI64 r15, r254, 16d
|
||||
ST r14, r254, 16a, 8h
|
||||
LI64 r16, 1d
|
||||
ST r16, r254, 24a, 8h
|
||||
ADDI64 r13, r254, 0d
|
||||
ST r13, r254, 32a, 8h
|
||||
ADDI64 r254, r254, -128d
|
||||
ST r31, r254, 64a, 64h
|
||||
CP r38, r1
|
||||
ADDI64 r33, r254, 48d
|
||||
JAL r31, r0, :some_index
|
||||
ST r1, r33, 0a, 16h
|
||||
LD r34, r254, 48a, 1h
|
||||
ANDI r34, r34, 255d
|
||||
JNE r34, r0, :0
|
||||
UN
|
||||
0: ADDI64 r34, r254, 8d
|
||||
ADDI64 r35, r254, 16d
|
||||
LRA r36, r0, :heap
|
||||
LD r33, r254, 56a, 8h
|
||||
ST r34, r254, 16a, 8h
|
||||
LI64 r37, 1d
|
||||
ADD64 r33, r33, r36
|
||||
ST r37, r254, 24a, 8h
|
||||
LD r33, r33, 0a, 1h
|
||||
ADDI64 r32, r254, 0d
|
||||
ST r32, r254, 32a, 8h
|
||||
ANDI r33, r33, 255d
|
||||
ST r0, r254, 0a, 8h
|
||||
ST r0, r254, 8a, 8h
|
||||
ST r0, r254, 40a, 8h
|
||||
BMC r15, r17, 32h
|
||||
ADDI64 r254, r254, 48d
|
||||
ST r33, r254, 40a, 8h
|
||||
BMC r35, r38, 32h
|
||||
LD r31, r254, 64a, 64h
|
||||
ADDI64 r254, r254, 128d
|
||||
JALA r0, r31, 0a
|
||||
code size: 556
|
||||
some_index:
|
||||
ADDI64 r254, r254, -16d
|
||||
LI8 r13, 1b
|
||||
ST r13, r254, 0a, 1h
|
||||
ST r0, r254, 8a, 8h
|
||||
LD r1, r254, 0a, 16h
|
||||
ADDI64 r254, r254, 16d
|
||||
JALA r0, r31, 0a
|
||||
code size: 769
|
||||
ret: 100
|
||||
status: Ok(())
|
||||
|
|
Loading…
Reference in a new issue