1. 16 Aug, 2016 33 commits
  2. 15 Aug, 2016 5 commits
  3. 11 Aug, 2016 2 commits
    • Keith Randall's avatar
      [dev.ssa] cmd/compile: simplify 386+PIC+globals a bit · 94c8e59a
      Keith Randall authored
      We shouldn't issue instructions like MOVL foo(SB), AX directly from the
      SSA backend.  Instead we should do LEAL foo(SB), AX; MOVL (AX), AX.
      
      This simplifies obj logic because now only LEAL needs to be treated
      specially.  The register allocator uses the LEAL to in effect allocate
      the temporary register required for the shared library thunk calls.
      
      Also, the LEALs can now be CSEd.  So code like
          var g int
          func f() { g += 5 }
      Requires only one thunk call instead of 2.
      
      Change-Id: Ib87d465f617f73af437445871d0ea91a630b2355
      Reviewed-on: https://go-review.googlesource.com/26814
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      94c8e59a
    • Keith Randall's avatar
      [dev.ssa] cmd/compile: fix fp constant loads for 386+PIC · 8f955d36
      Keith Randall authored
      In position-independent 386 code, loading floating-point constants from
      the constant pool requires two steps: materializing the address of
      the constant pool entry (requires calling a thunk) and then loading
      from that address.
      
      Before this CL, the materializing happened implicitly in CX, which
      clobbered that register.
      
      Change-Id: Id094e0fb2d3be211089f299e8f7c89c315de0a87
      Reviewed-on: https://go-review.googlesource.com/26811
      Run-TryBot: Keith Randall <khr@golang.org>
      Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      8f955d36