1. 24 Nov, 2016 1 commit
    • qinsoon's avatar
      fixed a few problems · 751795b1
      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)
  2. 22 Nov, 2016 1 commit
  3. 15 Nov, 2016 1 commit
    • qinsoon's avatar
      start using 8/16/32 bits registers · 38d18dda
      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
      4. after reg alloc, when replacing temp with a color, find corresponding
      GPR for the length recorded before
  4. 14 Nov, 2016 2 commits
  5. 11 Nov, 2016 1 commit
  6. 04 Nov, 2016 1 commit