fpc/compiler/i8086
Jonas Maebe 99de108c68 * renamed all paramanagers to tcpuparamanager so the llvm paramanager can
derive from them without ifdefs

git-svn-id: branches/hlcgllvm@26039 -
2013-11-11 11:15:27 +00:00
..
aoptcpu.pas + enable jump optimizer for i8086 2013-05-01 13:54:13 +00:00
aoptcpub.pas + enable jump optimizer for i8086 2013-05-01 13:54:13 +00:00
aoptcpud.pas + enable jump optimizer for i8086 2013-05-01 13:54:13 +00:00
cgcpu.pas * optimized SAR by 31 to use only one SAR instruction in tcg8086.a_op_const_reg 2013-10-30 16:53:59 +00:00
cpubase.inc Implement support for saving and restoring address registers. 2013-10-05 21:43:42 +00:00
cpuinfo.pas - disable cs_opt_regvar from -O2 on i8086, since it's not working properly yet 2013-08-24 23:06:10 +00:00
cpunode.pas + i8086 specific far proc aware implementation of ttypeconvnode.second_proc_to_procvar 2013-06-10 01:19:01 +00:00
cpupara.pas * renamed all paramanagers to tcpuparamanager so the llvm paramanager can 2013-11-11 11:15:27 +00:00
cpupi.pas - rm ti8086procinfo.allocate_got_register as it isn't used on the i8086 2013-04-14 14:35:51 +00:00
cputarg.pas all the extra i8086 units added 2013-03-08 00:04:45 +00:00
hlcgcpu.pas * handle 4-byte records in registers as well in location_force_mem on i8086 2013-11-09 21:57:29 +00:00
i8086att.inc + added the NEC V20/V30 instructions 2013-10-11 21:27:56 +00:00
i8086atts.inc + added the NEC V20/V30 instructions 2013-10-11 21:27:56 +00:00
i8086int.inc + added the NEC V20/V30 instructions 2013-10-11 21:27:56 +00:00
i8086nop.inc - rm LEA reg,imm from x86ins.dat, as that's not a valid x86 instruction, 2013-10-18 23:26:58 +00:00
i8086op.inc + added the NEC V20/V30 instructions 2013-10-11 21:27:56 +00:00
i8086prop.inc + added the NEC V20/V30 instructions 2013-10-11 21:27:56 +00:00
i8086tab.inc + handle 32 bit references on x86-64 so lea can be used for 32 bit arithmetics 2013-11-01 19:01:39 +00:00
n8086add.pas * do a 32-bit comparison on far and huge pointers 2013-07-16 07:57:49 +00:00
n8086cal.pas + added n8086cal.pas, based on n386cal.pas; this pulls in nx86cal.pas as well and fixes compilation of the system unit on i8086 after the merge of the i8086 branch to trunk 2013-04-26 20:19:57 +00:00
n8086cnv.pas * fixed the assignment of global functions to nested procvars in i8086 far code 2013-10-19 20:42:39 +00:00
n8086con.pas * i8086 specific code from tcgpointerconstnode.pass_generate_code moved to an i8086 specific overriden method 2013-05-24 17:16:55 +00:00
n8086inl.pas - removed ti8086inlinenode.second_round_real, second_trunc_real and load_fpu_location as they mostly repeat the code in tx86inlinenode.load_fpu_location; tx86inlinenode.load_fpu_location adapted for i8086 instead 2013-04-14 14:25:22 +00:00
n8086mat.pas + implemented 64-bit shl and shr for i8086 2013-03-17 02:11:25 +00:00
n8086mem.pas + getting the address of a label now returns a far pointer in i8086 far code memory models; this fixes the call to fpc_raiseexception in the raise node 2013-09-17 22:45:13 +00:00
r8086ari.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
r8086att.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
r8086con.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
r8086dwrf.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
r8086int.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
r8086iri.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
r8086nasm.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
r8086nor.inc * i8086 versions of i386*.inc and r386*.inc renamed to i8086*.inc and r8086*.inc 2013-04-12 12:06:28 +00:00
r8086nri.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
r8086num.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
r8086ot.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
r8086rni.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
r8086sri.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
r8086stab.inc * i8086 versions of i386*.inc and r386*.inc renamed to i8086*.inc and r8086*.inc 2013-04-12 12:06:28 +00:00
r8086std.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
ra8086att.pas * changed the default i8086 asmmode to Intel 2013-09-21 18:43:34 +00:00
ra8086int.pas * changed the default i8086 asmmode to Intel 2013-09-21 18:43:34 +00:00
rgcpu.pas * when a i8086 reference uses only one register, choose it from the set [BX,BP,SI,DI] as it can be treated either as a base or an index, depending on what's convenient 2013-07-29 21:03:10 +00:00