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
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
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
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
Jonas Maebe
3cde2b2d84
* fixed check for bitpacked accesses (mantis #24007 )
...
git-svn-id: trunk@23705 -
2013-03-07 15:44:41 +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
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
sergei
a1b50f643e
- removed never used function.
...
git-svn-id: trunk@23697 -
2013-03-05 18:05:52 +00:00
yury
63d1c3aa94
* Set default CPU armv5t for arm-android. Issue #23973 .
...
git-svn-id: trunk@23693 -
2013-03-04 21:46:36 +00:00
sergei
6fcd9979dd
+ MIPS: doing progress with linker, implemented processing of local symbols in PIC code and stuff needed to link shared libraries.
...
git-svn-id: trunk@23690 -
2013-03-04 20:48:33 +00:00
yury
268b2d56d7
* Fixed displaying of compilation time in some cases. For example, if the compilation time is 0.99 seconds, it has been displayed as 0.10. Now it is correctly displayed as 1.0.
...
git-svn-id: trunk@23689 -
2013-03-04 16:02:51 +00:00
svenbarth
168c9d152f
Small optimization for the search of operator overloads. Add a flag "sto_has_generic" to all symtables that contain an operator overload (the flag propagates up the owning symtables) and check this flag when searching for units with operators.
...
symconst.pas:
+ add "sto_has_operator" to "tsymtableoption"
pdecsub.pas:
+ include the flag "sto_has_operator" for all operator declarations and their owning symtables
htypechk.pas, tcallcandidates:
* create_candidate_list: only check for operator overloads if the record does indeed declare some
* collect_overloads_in_units: only check for operator overloads if the unit does indeed declare some
utils/ppudump.pp:
+ respect the new "sto_has_operator" flag
git-svn-id: trunk@23688 -
2013-03-04 16:02:18 +00:00
florian
9198630ce3
* fix armv7m compiler
...
git-svn-id: trunk@23686 -
2013-03-03 21:59:34 +00:00
sergei
6484911f05
* TExeOutput.FixupRelocations method made virtual.
...
* TElfExeOutput.MemPos_Start split into four smaller methods.
git-svn-id: trunk@23684 -
2013-03-03 20:01:54 +00:00
florian
1eeeb309c7
* intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
...
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
sergei
1421998752
* MIPS register spilling: relocations are not needed to load constant values, and offset limit is 32767, not 4095.
...
git-svn-id: trunk@23675 -
2013-02-28 20:43:38 +00:00
yury
ee0a338127
* Use the unixcp unit to set a default code page for ansistrings on unix-like systems.
...
git-svn-id: trunk@23671 -
2013-02-28 18:24:29 +00:00
sergei
5812cf3b46
* MIPS: allocate 16-byte outgoing parameter area also for procedures declared as 'assembler' without 'nostackframe'. This is a half-measure because there is no way to determine correct size to allocate for such procedures (probably we must add some directive to specify it). The same generally applies to all targets with fixed stack, not just MIPS.
...
git-svn-id: trunk@23663 -
2013-02-25 22:47:09 +00:00
sergei
d2995cbf14
- Removed ConcatPasString procedure, it duplicates ConcatString (it the past they probably used to differ, but today both preserve null characters).
...
git-svn-id: trunk@23662 -
2013-02-25 22:09:39 +00:00
sergei
d190d4676b
- MIPS: removed comment generation in function prologues, it clutters listing more than it helps. Also removed some unused variables.
...
git-svn-id: trunk@23661 -
2013-02-25 21:40:03 +00:00