Skip to content


Subversion checkout URL

You can clone with
Download ZIP
branch: master
Commits on Mar 12, 2015
  1. Remaining 32-bit Darwin fixes.

  2. Merge branch 'darwin'

  3. Darwin i386 fixes

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.
  2. 32-bit libstdc++

  3. Travis configuration.

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.
Commits on Aug 6, 2012
  1. Clarify a comment on amd64.

  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.
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.
  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.
  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.
Commits on Aug 4, 2012
  1. Add -g to ASFLAGS

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

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.
  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
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).
Commits on Jun 1, 2011
  1. Merge branch 'master' into cpp

  2. Don't set O_ASYNC on stdout.

Commits on Feb 18, 2011
Something went wrong with that request. Please try again.