Commits on Mar 12, 2015
  1. Merge branch 'darwin'

    committed Mar 12, 2015
  2. Darwin i386 fixes

    committed Mar 12, 2015
Commits on Mar 10, 2015
  1. OS X support for amd64.

    The big difference here is that OS X runs with a small-code PIC code
    model, which doesn't place code in the low 4G of RAM. So we need to
    switch everything to be PC-relative, and do some shenanigans to try to
    get a code allocation near our .text segment -- in particular, since the
    allocator just starts at the binary and works upwards, we need to make
    sure that we allocate the buffer *before* we do the 4G map for the
    image's address space.
    committed Mar 10, 2015
  2. 32-bit libstdc++

    committed Mar 10, 2015
  3. add an instructions.h dep x86.h

    committed Mar 10, 2015
  4. Travis configuration.

    committed Mar 10, 2015
Commits on Aug 7, 2012
  1. Switch around the order of arguments to create a SIB reference.

    Put the offset last and make it optional.
    committed Aug 7, 2012
Commits on Aug 6, 2012
  1. Clarify a comment on amd64.

    committed Aug 6, 2012
  2. Use a dedicated register to hold the memory base on amd64.

    Since we don't have %fs, this saves some indirection while accessing
    memory, and speeds things up measurably.
    We should really just use one of the extra registers we have on amd64,
    but our assembler doesn't support REX.{r,x,b} yet.
    committed Aug 6, 2012
Commits on Aug 5, 2012
  1. Add some assertions about operand size.

    We don't support generating 32-bit addresses using aso in 64-bit mode,
    so for now let's just assert that no one has requested them.
    committed Aug 5, 2012
  2. Allocate space for JIT'd code below the 4G mark.

    This ensures that generated code can call into the runtime using only
    a 4-byte relative call.
    committed Aug 5, 2012
  3. Correctly handle memory accesses on amd64.

    Instead of using a segment register, map an entire 4G memory image as
    PROT_NONE, and map the image into the beginning. Then do the address
    calculation explicitly. The 4G map, and the 32-bit offset, ensures
    that any illegal acceses will land into the unmapped space and fault.
    committed Aug 5, 2012
Commits on Aug 4, 2012
  1. Add -g to ASFLAGS

    committed Aug 4, 2012
Commits on Aug 2, 2012
Commits on Jun 26, 2012
Commits on Apr 22, 2012
  1. Update BT comments.

    committed Apr 22, 2012
Commits on Apr 21, 2012
  1. And while we're at it, allocate R1 into %edi.

    All 8 x86 "GPR"s are now accounted for, so doing anything further
    would require more cleverness.
    committed Apr 21, 2012
  2. Simplify bt_translate_interp.

    Rather than generating the code to save/restore CPU<->registers every
    time, include it in an inline helper in bt_helper.S. As a bonus, this
    means that the code that translates between bt_cpu and machine
    registers now lives entirely in two macros in bt_helper.S
    committed Apr 21, 2012
Commits on Apr 20, 2012
  1. Statically allocate registers for BP and SP.

    This is a noticeable performance improvement on some
    benchmarks (Richards, in particular, is impressive).
    committed Apr 20, 2012
Commits on Jun 1, 2011
  1. Merge branch 'master' into cpp

    committed Jun 1, 2011
  2. Don't set O_ASYNC on stdout.

    committed Jun 1, 2011
Commits on Feb 18, 2011