fpc/compiler/i386
florian f576b0c01b * make use of xor reg,reg by generating it directly instead of hoping for the peephole
optimizer which cannot do this properly due to missing information about flags. By doing
  so the size of the compiler executable gets reduced by ~1 %

git-svn-id: trunk@33524 -
2016-04-15 19:27:22 +00:00
..
aopt386.pas - removed long deprecated/buggy assembler cse optimiser for i386 2015-05-09 17:25:07 +00:00
cgcpu.pas Extend the x86 targets by the ability to handle indirect symbols. 2016-03-18 21:45:41 +00:00
cpubase.inc * optimize mov/lea 2013-11-01 19:01:14 +00:00
cpuelf.pas Switch back to emitting BLX instructions and fix calculation of constant offsets(should rarely/never happen). 2014-12-14 16:28:35 +00:00
cpuinfo.pas + added 486 to the list of supported CPUs on the i8086 and i386 targets 2016-03-23 15:07:56 +00:00
cpunode.pas * isolated segment-related functionality of tabsolutevarsym into i386/i8086- 2014-03-30 15:42:53 +00:00
cpupara.pas * support marking defs created via the getreusable*() class methods as 2015-11-04 20:46:18 +00:00
cpupi.pas * Keep the GOT offset in a virtual register for i386 non-darwin platforms. 2015-10-12 08:02:56 +00:00
cputarg.pas merged/updated AROS/i386 target to trunk from AROS branch, to support Marcus Sackrow's work on AROS support which will hopefully benefit all Amiga-like targets (classic, MorphOS) on the long run. Compiler only, RTL comes in the next run. 2014-08-17 18:18:07 +00:00
daopt386.pas * unify x86 peephole optimizer helpers 2015-09-27 09:36:39 +00:00
hlcgcpu.pas * Fixed calling of external procs for i386 non-darwin targets when PIC is enabled. 2015-11-26 17:04:55 +00:00
i386att.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386atts.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386int.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386nop.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386op.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386prop.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
i386tab.inc + support xgetbv instruction, resolves issue #29958 2016-04-03 20:53:10 +00:00
n386add.pas * replaced current_procinfo.currtrue/falselabel with storing the true/false 2015-08-27 18:28:57 +00:00
n386cal.pas * re-read the libbase already pushed on the stack for AROS syscalls, instead of trying to re-resolve it. should fix threadvar libbases on AROS. 2016-04-08 22:42:29 +00:00
n386flw.pas ncal.pas: 2015-09-18 14:48:54 +00:00
n386inl.pas + i386: generate optimized code for 64-bit arithmetic shifts by constant amount. Shifts by 63 and by less than 32 take just two instructions, shifts by 32..62 bits are done with 3 instructions. 2013-10-29 16:10:13 +00:00
n386ld.pas * factored out the loading of threadvars in its own method, and put the 2015-09-12 23:32:53 +00:00
n386mat.pas * i386: switch the div/mod node to shared code, leaving in place the specific optimization for division by power of 2. 2014-06-15 16:20:53 +00:00
n386mem.pas * moved x86-specific tpointerdef functionality to architecture-specific 2014-03-30 21:04:36 +00:00
n386set.pas * cleanup of unused units 2013-07-07 20:00:33 +00:00
popt386.pas * make use of xor reg,reg by generating it directly instead of hoping for the peephole 2016-04-15 19:27:22 +00:00
r386ari.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386att.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386con.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386dwrf.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386int.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386iri.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386nasm.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386nor.inc
r386nri.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386num.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386ot.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386rni.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386sri.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
r386stab.inc
r386std.inc * x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files. 2013-10-03 08:08:04 +00:00
ra386att.pas * standard assembler reader for i386 2005-06-07 13:20:14 +00:00
ra386int.pas
rgcpu.pas
symcpu.pas * changed getpointerdef() into a tpointerdef.getreusable() class method 2015-06-22 08:17:49 +00:00