- 20 Jan, 2017 1 commit
-
-
qinsoon authored
results in different code (the same as clang did)
-
- 19 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 18 Jan, 2017 1 commit
-
-
qinsoon authored
internally they do nothing (gc doesnt move in zebu atm)
-
- 17 Jan, 2017 2 commits
- 16 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 12 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 11 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 10 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 05 Jan, 2017 1 commit
-
-
qinsoon authored
-
- 25 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 24 Nov, 2016 3 commits
-
-
qinsoon authored
1. asm call do not use all argument registers (otherwise it will keep them alive) 2. spilling a register that is used and defined in one instruction will result in creating one new temporary, instead of two 3. spilling now deals with floating point 4. SELECT with int8 is implemented using conditional jump (cmov cannot take reg8) 5. postcall convention now deals correctly with fp return values 6. reg alloc conservative() was wrong in a few commits ago, fixed it 7. in liveness analysis, when finding a move between a temp and a register, find the color for the register (such as RAX for EAX)
-
qinsoon authored
-
qinsoon authored
-
- 23 Nov, 2016 1 commit
-
-
qinsoon authored
currently mov constant as imm to a GPR, then mov from GPR to xmm. A better approach should be put the immediate in memroy, and load it
-
- 17 Nov, 2016 2 commits
- 16 Nov, 2016 3 commits
- 15 Nov, 2016 2 commits
-
-
qinsoon authored
internally int1 is int8
-
qinsoon authored
1. compiler knows all the registers 2. but only 64bits register is a color (for reg alloc) 3. backend records the length of GPR for each operand during instruction selection 4. after reg alloc, when replacing temp with a color, find corresponding GPR for the length recorded before
-
- 14 Nov, 2016 2 commits
- 11 Nov, 2016 4 commits
- 10 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 09 Nov, 2016 1 commit
-
-
qinsoon authored
Note: made two places in api implementation as unimplemented as the instruction/type chnaged.
-
- 08 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 07 Nov, 2016 2 commits
- 04 Nov, 2016 2 commits
-
-
qinsoon authored
1. grow/shrink frame size in the pro/epilogue. Note: though we removed push/pop for unused callee saved registers, we still reserve frame space for them. Because we generate spill on frame before we know exactly how large a space is. The solution is to make spill locations patchable. 2. control flow will combine branches in switch instruction if they all target the same destination.
-
qinsoon authored
-
- 03 Nov, 2016 3 commits
- 02 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 01 Nov, 2016 1 commit
-
-
qinsoon authored
(throw, new not working)
-