1. 28 Oct, 2014 2 commits
    • Kevin Modzelewski's avatar
      Make sure that we never reuse AST nodes · 548ad742
      Kevin Modzelewski authored
      We currently specify execution state by the AST node that
      represents it, which means that we have to not reuse AST nodes.
      Previous to this patch, we were doing that, so this patch
      fixes those up.
      
      This patch isn't the cleanest since I think this whole approach
      will go away when we transition to a proper bytecode system.
      548ad742
    • Kevin Modzelewski's avatar
      Whoops -- fix bug · 387e2b80
      Kevin Modzelewski authored
      387e2b80
  2. 27 Oct, 2014 2 commits
  3. 17 Oct, 2014 4 commits
  4. 16 Oct, 2014 3 commits
  5. 15 Oct, 2014 1 commit
    • Kevin Modzelewski's avatar
      Separate the CompilerType objects from the class definitions · 204b1da6
      Kevin Modzelewski authored
      Most code wants to have access to the basic types (INT, STR, etc)
      but doesn't need to know anything about what methods they support.
      
      Move the commonly-accessed parts of compvars.h into the always-included
      core/types.h, and remove almost all of the includes of compvars.h
      204b1da6
  6. 10 Oct, 2014 1 commit
  7. 09 Oct, 2014 3 commits
    • Kevin Modzelewski's avatar
      Enable patching of invokes · e5db59e7
      Kevin Modzelewski authored
      With the LLVM patch, it seems like this works.
      e5db59e7
    • Kevin Modzelewski's avatar
      Merge pull request #183 from undingen/isAlloc · 18d68780
      Kevin Modzelewski authored
      Fix isAllocCall check
      18d68780
    • Kevin Modzelewski's avatar
      For now, disallow allocation of callee-save registers in inline caches · 84bda3fd
      Kevin Modzelewski authored
      If we allocate a callee-save register that the parent function had
      not also allocated, change its value, and then call a function
      that then unwinds, the unwinder would pass the new (incorrect)
      value of the callee save register to the next frame.
      
      We either need to
      - make sure callee-save registers are restored before any potentially-throwing
        callsite, or
      - make the unwinder able to restore these registers for us, potentially
        by writing our own exception unwinder.
      
      For now, the easiest thing to do is to disallow allocation of those registers.
      (I'm not even sure how much we allocate them at all at the moment.)
      84bda3fd
  8. 08 Oct, 2014 4 commits
  9. 04 Oct, 2014 1 commit
  10. 02 Oct, 2014 2 commits
  11. 01 Oct, 2014 2 commits
  12. 30 Sep, 2014 2 commits
  13. 29 Sep, 2014 1 commit
  14. 25 Sep, 2014 1 commit
  15. 24 Sep, 2014 1 commit
    • Kevin Modzelewski's avatar
      Refactor some unwinding code · a239c80b
      Kevin Modzelewski authored
      Make some things owned by the cf rather than using global registries,
      so that 1) we can eventually free the right things when we start freeing
      cf's, and 2) we can have a single ip->cf mapping instead of lots of
      ip->other things mappings.
      
      Also added some helper classes for making stack crawling easier.
      a239c80b
  16. 23 Sep, 2014 2 commits
  17. 22 Sep, 2014 1 commit
  18. 20 Sep, 2014 1 commit
  19. 17 Sep, 2014 5 commits
  20. 16 Sep, 2014 1 commit