Commit Graph

39453 Commits

Author SHA1 Message Date
nickysn
da37d03dd7 alink support added and enabled by default
git-svn-id: branches/i8086@23784 -
2013-03-10 19:25:57 +00:00
florian
8c24a85462 * turn off stack frame stripping for i8086 for now, it cannot do sp relative addressing
git-svn-id: branches/i8086@23783 -
2013-03-10 18:53:49 +00:00
florian
b321f867c6 + trgintcpu.add_cpu_interferences for i8086 so references are properly build
* empty make_simple_ref code path for i8086

git-svn-id: branches/i8086@23782 -
2013-03-10 18:51:42 +00:00
nickysn
28f8a8e51d i8086-msdos linking with tlink support added
git-svn-id: branches/i8086@23781 -
2013-03-10 18:28:20 +00:00
florian
451c634532 * treat msdos as 8.3 target in the makefiles as the compiler does
git-svn-id: branches/i8086@23780 -
2013-03-10 18:19:52 +00:00
florian
64ffe8f5ef + basic Makefile infrastructure for msdos
git-svn-id: branches/i8086@23779 -
2013-03-10 17:31:53 +00:00
florian
2fccd4be13 + msdos
+ i8086

git-svn-id: branches/i8086@23778 -
2013-03-10 17:30:35 +00:00
nickysn
3768914a3d slight rtl update for i8086-msdos
git-svn-id: branches/i8086@23777 -
2013-03-10 16:57:15 +00:00
nickysn
7d883e7d52 implemented tcg8086.g_flags2reg and g_flags2ref
git-svn-id: branches/i8086@23764 -
2013-03-09 23:45:42 +00:00
nickysn
8d346d162b added n8086add.pas (copy of n386add.pas), TODO: adapt to i8086
git-svn-id: branches/i8086@23762 -
2013-03-09 23:17:23 +00:00
nickysn
a03f0d84ea high level code generator: const types changed from aint to tcgint to avoid problems on < 32-bit cpus; ppcjvm should also be updated, but isn't yet
git-svn-id: branches/i8086@23761 -
2013-03-09 22:16:03 +00:00
nickysn
e2ba9f14e1 initial implementation of tcg8086.a_op_const_reg; supports 32-bit add, sub, and, or, xor
git-svn-id: branches/i8086@23759 -
2013-03-09 21:07:43 +00:00
nickysn
11f0b0b5aa tlocation.value (for LOC_CONSTANTs) changed to TCGInt to avoid trouble on < 32-bit cpus
git-svn-id: branches/i8086@23758 -
2013-03-09 20:57:19 +00:00
nickysn
f5d8f0599f applied fix from trunk for building with fpc 2.6.x on unix
git-svn-id: branches/i8086@23755 -
2013-03-09 18:35:24 +00:00
nickysn
c467035a1c added group directive, so that the .data, .rodata and .bss sections go to the same segment
git-svn-id: branches/i8086@23754 -
2013-03-09 18:30:11 +00:00
nickysn
2393cd5eef added DebugWrite and DebugWriteLn to the minimal msdos rtl
git-svn-id: branches/i8086@23753 -
2013-03-09 18:29:23 +00:00
nickysn
1937ef8300 implemented OP_SHL, OP_SHR and OP_SAR in tcg8086.a_op_reg_reg
git-svn-id: branches/i8086@23751 -
2013-03-09 17:14:00 +00:00
nickysn
588b12200b 16-bit ALU fix in tcgunaryminusnode.second_integer
git-svn-id: branches/i8086@23745 -
2013-03-09 15:13:08 +00:00
nickysn
4ac508a2b9 fixed bug in tunaryplusnode.pass_typecheck introduced in my previous commit r23737
git-svn-id: branches/i8086@23744 -
2013-03-09 14:05:09 +00:00
nickysn
63ac46c74c 16-bit ALU fixes in tunaryminusnode.pass_typecheck and tunaryplusnode.pass_typecheck
git-svn-id: branches/i8086@23743 -
2013-03-09 13:24:42 +00:00
nickysn
54d804d06e implemented tcg8086.a_op_reg_reg with support for 32-bit neg,not,add,sub,and,or and xor
git-svn-id: branches/i8086@23742 -
2013-03-09 12:28:48 +00:00
nickysn
95b15d15bd another nested ifdef cleaned up
git-svn-id: branches/i8086@23741 -
2013-03-09 11:35:42 +00:00
nickysn
981f0a5c6c nested ifdefs converted to series of elseif + some other ifdefs cleaned up
git-svn-id: branches/i8086@23740 -
2013-03-09 11:25:25 +00:00
nickysn
ded6b87acc 16-bit and 8-bit ALU fixes for int types in taddnode.pass_typecheck_internal
git-svn-id: branches/i8086@23737 -
2013-03-09 01:12:48 +00:00
nickysn
a3295bd520 use ncgadd in cpunode
git-svn-id: branches/i8086@23736 -
2013-03-09 00:03:15 +00:00
nickysn
e4d66dd95c i8086 fix for taddnode.pass_typecheck_internal and real types
git-svn-id: branches/i8086@23735 -
2013-03-08 22:56:50 +00:00
nickysn
fd328eda44 really minimal msdos rtl added
git-svn-id: branches/i8086@23722 -
2013-03-08 00:54:54 +00:00
nickysn
1c08561525 added lpi for easy building the i8086 compiler with lazarus
git-svn-id: branches/i8086@23721 -
2013-03-08 00:39:14 +00:00
nickysn
5f7d432ff9 i8086 fixes in Tcgx86.g_concatcopy and TCGSize2OpSize
git-svn-id: branches/i8086@23720 -
2013-03-08 00:13:02 +00:00
nickysn
27e4048ed6 16-bit and 8-bit alu fix in thlcg2ll.location_force_reg
git-svn-id: branches/i8086@23719 -
2013-03-08 00:10:10 +00:00
nickysn
eff0894a66 all the extra i8086 units added
git-svn-id: branches/i8086@23718 -
2013-03-08 00:04:45 +00:00
nickysn
0684e783ae added the files autogenerated from x86ins.dat; TODO: these are shared with i386, so move them to a common directory
git-svn-id: branches/i8086@23717 -
2013-03-07 23:34:07 +00:00
nickysn
6fb9e3cfa5 the basic i8086 units: cpuinfo and cpubase
git-svn-id: branches/i8086@23716 -
2013-03-07 23:09:03 +00:00
nickysn
72fcc2b9bd added 'msdos' 16-bit real mode dos target
git-svn-id: branches/i8086@23715 -
2013-03-07 23:07:20 +00:00
nickysn
4440015db3 added i8086 specific adaptations to the NASM assembly writer
git-svn-id: branches/i8086@23714 -
2013-03-07 22:51:42 +00:00
nickysn
a4b1a9011b i8086 specific stuff added to x86/cpubase.pas
git-svn-id: branches/i8086@23713 -
2013-03-07 22:49:35 +00:00
nickysn
a9809323dc some more generic i8086 defines added
git-svn-id: branches/i8086@23712 -
2013-03-07 22:46:00 +00:00
nickysn
94e8690e2e oops, forgot about systems.pas in the previous commit
git-svn-id: branches/i8086@23711 -
2013-03-07 22:40:52 +00:00
nickysn
44ffc298d5 cpu_i8086 and system_i8086_msdos added to the systems.inc enums
git-svn-id: branches/i8086@23710 -
2013-03-07 22:38:35 +00:00
nickysn
3a4135c07b ifdef cpu86 replaced with ifdef cpui386
git-svn-id: branches/i8086@23709 -
2013-03-07 22:21:27 +00:00
florian
ca277c873e + branch for i8086 port development
git-svn-id: branches/i8086@23707 -
2013-03-07 20:21:25 +00:00
svenbarth
da7b24e242 Avoid multiple threadvar lookups when querying the current TThread. Inspired by Michael Schnell.
rtl/objpas/classes/classes.inc, TThread.GetCurrentThread:
	* instead of checking CurrentThreadVar and reading it again afterwards we read it first into Result and check this value; this way we have one read access in the normal case and one read and one write access in the worst case

git-svn-id: trunk@23706 -
2013-03-07 20:15:32 +00:00
Jonas Maebe
3cde2b2d84 * fixed check for bitpacked accesses (mantis #24007)
git-svn-id: trunk@23705 -
2013-03-07 15:44:41 +00:00
pierre
eeae77bfc2 Fix wrong cursor pos for 64 bit systems, hopefully fixes bug report 23957
git-svn-id: trunk@23704 -
2013-03-07 13:55:55 +00:00
lacak
2cfcf32725 fcl-db: odbc: enable 64bit support (use SQLLEN, SQLULEN instead of SQLINTEGER, SQLUINTEGER) after ODBC header file was updated for 64 bit support in rev.23702
git-svn-id: trunk@23703 -
2013-03-07 09:17:52 +00:00
michael
94e021157b * Windows 64-bit patches from Laco
git-svn-id: trunk@23702 -
2013-03-07 08:57:18 +00:00
pierre
d9758e5d0e Avoid TARGET_DIRS_TARGET_DIRS garbage by explicitly setting result of string function in AddTargetDefines method to empty at startup
git-svn-id: trunk@23701 -
2013-03-06 16:40:04 +00:00
Jonas Maebe
5d628b29bb * set the subregsize of OS_M64 SSE registers to R_SUBQ so we can
differentiate between 64 bit and 128 bit (R_SUBMMWHOLE) SSE vector regs,
    and support spilling/assembling for R_SUBQ SSE registers (8 bytes)
    (mantis #23962)

    We currently never use the full 128 bit of an SSE register, and
    spilling for those hasn't been implemented yet either (R_SUBMMWHOLE
    SSE regs are spilled into a 4-byte temp currently -> can overwrite data)

git-svn-id: trunk@23700 -
2013-03-06 12:42:46 +00:00
michael
02f64db373 * Fixes for typos from Reinier Olislagers (bug 23895)
git-svn-id: trunk@23699 -
2013-03-06 08:34:20 +00:00
sergei
823e3ea398 MIPS: reworked PIC/call code:
+ Favor 'weak' parameter in a_call_name of both thlcgmips and TCGMIPS.
* make_simple_ref and a_loadaddr_ref_reg: require input references to be 'raw' (no refaddr=addr_pic, etc) and do not use GP as base/index. If it's not true, raise an internal error. When addr_pic_call16 or so needs to be generated, it must be done without calling the mentioned methods.
* thlcgmips.a_call_name: generate PIC sequence for procedures declared as 'external', instead of 'cdecl', this is more correct because ABI has only one calling convention.
- make_simple_ref_fpu removed, there's no reason to handle references to floating-point data in different way.
- a_loadaddr_ref_cgpara override also removed, generic method does the job just well.
- thlcgmips.a_call_ref and a_call_reg overrides removed because indirect calls are now always done using $t9.

git-svn-id: trunk@23698 -
2013-03-05 19:31:20 +00:00