Brendan Hansknecht
fd77d92851
Add AArch64 stack operations
2020-11-30 22:16:38 -08:00
Brendan Hansknecht
dbf335a79d
Add AArch64 to dev backend object generation
2020-11-30 02:47:18 +00:00
Brendan Hansknecht
ce55313515
Add AArch64 dev backend frame
2020-11-29 18:23:00 -08:00
Brendan Hansknecht
eb8ec4a08d
Reorginize assembler to be more risc friendly
2020-11-27 20:38:40 -08:00
Brendan Hansknecht
6335555f97
Move functions into assembler
2020-11-27 19:57:33 -08:00
Brendan Hansknecht
75a4a728aa
Shorten asm function names
2020-11-27 19:53:18 -08:00
Brendan Hansknecht
04cd953246
Revamp stack setup and clean. This will be needed for other 64bit backends
2020-11-27 19:46:49 -08:00
Brendan Hansknecht
6a95738b1c
Properly align the stack when used
2020-11-26 15:14:53 -08:00
Brendan Hansknecht
c32cedc1bd
Switch to constants in calling conventions and inline assembly
2020-11-25 23:43:43 -08:00
Brendan Hansknecht
2decae8006
Fix typo
2020-11-25 22:38:04 -08:00
Richard Feldman
213ea8a79d
fix typos in comment
2020-11-26 00:02:05 -05:00
Brendan Hansknecht
0d0eb440db
Properly generate main function name
2020-11-24 23:37:41 -08:00
Richard Feldman
6e126b3465
Update gen_dev tests to use new module format
2020-11-24 20:23:33 -05:00
Brendan Hansknecht
bd8046056f
Fix not leaf function
2020-11-23 22:18:52 -08:00
Brendan Hansknecht
09410d7a02
Rename ret_near to ret and temporarily allow dead relocations
2020-11-23 22:09:44 -08:00
Brendan Hansknecht
67c104d506
Nit clippy stuff
2020-11-23 00:17:57 -08:00
Brendan Hansknecht
3430a08d3d
Major refactor for generic 64 bit with traits
2020-11-23 00:16:42 -08:00
Brendan Hansknecht
c8dbcdcf64
Add some optimization comments
2020-11-22 18:13:52 -08:00
Brendan Hansknecht
215ec63abb
Fix some nit clippy complaints
2020-11-22 13:46:12 -08:00
Brendan Hansknecht
7fd7407724
Add lazy literal loading optimization
2020-11-22 13:44:38 -08:00
Brendan Hansknecht
902bbef60a
Add storing variables in the stack
2020-11-22 12:48:09 -08:00
Brendan Hansknecht
6df15eada4
Correct stack use assumption
2020-11-21 19:58:03 -08:00
Brendan Hansknecht
1156e4f108
Some reorganization and removal of unneeded layout
2020-11-21 18:04:57 -08:00
Brendan Hansknecht
4b3926be50
Add Num.add as inlined function
2020-11-21 00:08:12 -08:00
Brendan Hansknecht
65d6d64102
Fix symbol lifetime
2020-11-20 23:37:50 -08:00
Brendan Hansknecht
13781a6f8f
Add Num.abs as inlined function
2020-11-20 23:04:35 -08:00
Brendan Hansknecht
9e6eb85166
Define register use information for stack saving
2020-11-20 17:40:25 -08:00
Brendan Hansknecht
6da6faa35f
Rename Register to GPReg and add return regs to backend
2020-11-20 17:17:04 -08:00
Brendan Hansknecht
65e14f2941
Add Reuse and Reset to last seen map
2020-11-19 12:12:42 -08:00
Brendan Hansknecht
a4b823a269
Add basic elf relocation handling
2020-11-18 23:50:42 -08:00
Brendan Hansknecht
2b6039d683
Fix error propagation
2020-11-18 23:10:55 -08:00
Brendan Hansknecht
4e973b9236
Mixed refactoring
...
Add error return value as opposed to using panic! and unimplemented!
Reorder some functions
Return relocations
Scan ast for variable lifetimes
Probably put too much into this cl, but it would be annoying to change
at this piont.
2020-11-18 23:07:41 -08:00
Brendan Hansknecht
44d6c3bc02
Add extra comment on performance
2020-11-17 20:39:59 -08:00
Brendan Hansknecht
06ceace7a1
Use ImSet for register types
2020-11-17 20:35:42 -08:00
Brendan Hansknecht
35fd54b8fd
Define basics of x86_64 calling conventions
2020-11-16 23:37:02 -08:00
Brendan Hansknecht
44ef41f9bb
Add some register use information
2020-11-16 23:10:58 -08:00
Brendan Hansknecht
9644b65ca5
Add unit tests to assembly generation
2020-11-15 22:27:10 -08:00
Brendan Hansknecht
ec4e19d01f
Extract remain assembly to asm.rs
2020-11-15 21:05:53 -08:00
Brendan Hansknecht
0fcb1df344
Refactor x86_64 backend and add first assembly methods
2020-11-15 20:43:14 -08:00
Brendan Hansknecht
a8986087f9
Add ability to return int literals
2020-11-15 14:06:20 -08:00
Brendan Hansknecht
86c3c0a409
Add base structure for dev compiler backend
...
Currently we only generate a single static function, but it is probably
loaded and run with jit. This is the base to start generating proper
code.
2020-11-14 18:43:02 -08:00