Commit Graph

41 Commits

Author SHA1 Message Date
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