* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes...
authoryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>
Mon, 12 Oct 2015 08:02:56 +0000 (08:02 +0000)
committerRaspbian forward porter <root@raspbian.org>
Sun, 25 Dec 2016 11:36:11 +0000 (11:36 +0000)
commit241d3fa93a61ad3e57bb5ebf7dfbfacb993306b6
tree55d4e0b763ece7a6e304b807302cf9776d475722
parenta98533703f36f5780d6da279f7ac06d57e423976
* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes PIC code generation with GOT for i386 with enabled optimizations. Bugs #28667, #28668. Prior the fix I have not been able to compile even RTL with -O2 due to not enough free registers, since EBX is reserved for GOT.

  It can be further optimized to teach register allocator to not spill the GOT register if possible.

git-svn-id: http://svn.freepascal.org/svn/ fpc/trunk@32020 3ad0048d-3df7-0310-abae-a5850022a9f2

Gbp-Pq: Name Keep-the-GOT-offset-in-a-virtual-register-for-i386-n.patch
fpcsrc/compiler/i386/cgcpu.pas
fpcsrc/compiler/i386/cpupi.pas
fpcsrc/compiler/i386/hlcgcpu.pas
fpcsrc/compiler/x86/aasmcpu.pas