nickysn
571e9c2e3e
+ added the new i8086 memory model flags to ppudump as well
...
git-svn-id: trunk@25366 -
2013-08-25 16:48:13 +00:00
nickysn
243e3bbb77
+ added i8086 memory model flags to the ppu flags and added a check that prevents the using of units compiled for different memory models
...
git-svn-id: trunk@25365 -
2013-08-25 16:45:04 +00:00
nickysn
b327eac688
- disable cs_opt_regvar from -O2 on i8086, since it's not working properly yet
...
git-svn-id: trunk@25364 -
2013-08-24 23:06:10 +00:00
nickysn
f9d0caa7c7
* pass the option -w-orphan-labels to nasm to avoid the spurious warnings about labels without a trailing colon and without an instruction on the same line
...
git-svn-id: trunk@25358 -
2013-08-23 23:40:24 +00:00
florian
7cef301e84
* disable optimization LdrbAnd2Ldrb for arm thumb as it is currently done
...
git-svn-id: trunk@25356 -
2013-08-23 18:41:26 +00:00
florian
f34bee1df7
* arm thumb does not support ror reg1,reg2,#imm
...
git-svn-id: trunk@25355 -
2013-08-23 18:41:24 +00:00
florian
950194678a
* handle jump tables correctly when inserting constant pools on arm thumb
...
git-svn-id: trunk@25354 -
2013-08-23 18:41:21 +00:00
Károly Balogh
6591a24bd3
removed some code which must never be called, added an internalerror() instead
...
git-svn-id: trunk@25352 -
2013-08-23 15:58:37 +00:00
florian
e514e84c83
* first_moddivint should not change the return type if div/mul/add is used
...
* use create_internal when creating internally add nodes
git-svn-id: trunk@25351 -
2013-08-23 15:23:00 +00:00
florian
3ebe708574
* do not use r13/r15 for certain data processing operations
...
* correct OP_AND with certain types of constants
git-svn-id: trunk@25350 -
2013-08-23 15:22:58 +00:00
florian
2fe48077b2
* using r13 and r15 is on arm thumb2 also forbidden under certain conditions for the instructions A_SUB,A_AND,A_BIC,A_EOR
...
git-svn-id: trunk@25349 -
2013-08-23 15:22:55 +00:00
florian
d5ddf39f73
* do not do the RedundantMovProcess optimization when the involved registers are r13 or r15 and if the target is arm thumb(2)
...
git-svn-id: trunk@25348 -
2013-08-23 15:22:53 +00:00
florian
b4c7b40049
* do not split statements following A_IT* instructions on arm thumb2 when inserting constant pools
...
git-svn-id: trunk@25347 -
2013-08-23 15:22:51 +00:00
florian
8884f1c0bf
* arm thumb2 supports only left shifted index registers up to 3 bits
...
git-svn-id: trunk@25346 -
2013-08-23 15:22:49 +00:00
florian
6df2917d93
* fix spilling of vfp instructions
...
* spelling mistake fixed
git-svn-id: trunk@25345 -
2013-08-23 15:22:46 +00:00
florian
c350c3a5e4
* arm thumb2 does not understand tst reg1,reg2,lsl reg3
...
git-svn-id: trunk@25344 -
2013-08-23 15:22:44 +00:00
florian
bb73a2891b
* prevent generation of mul/mla statements with illegal registers
...
git-svn-id: trunk@25343 -
2013-08-23 15:22:41 +00:00
sergei
bfcdf6b825
* Replaced tai_ent and tai_ent_end classes with tai_directive subtypes. Having separate classes for them is unnecessary complication.
...
git-svn-id: trunk@25338 -
2013-08-23 12:38:49 +00:00
sergei
108d3cb090
- Removed tai_label.is_global field, was used in just one place and is generally not needed: binding is controlled by 'bind' property of referenced AsmLabel.
...
git-svn-id: trunk@25336 -
2013-08-23 11:34:08 +00:00
sergei
b8a76c5da2
- Removed gen_proc_symbol procedure, no longer used, replaced by thlcgobj.gen_proc_symbol method.
...
git-svn-id: trunk@25335 -
2013-08-23 10:54:57 +00:00
Jonas Maebe
1af312c129
* don't overwrite result of librarysearchpath.FindFile() in
...
GetDarwinPrtobjName() if it found something
git-svn-id: trunk@25330 -
2013-08-22 21:37:06 +00:00
svenbarth
b57a587842
Fix for Mantis #24903 .
...
ncon.pas, tstringconstnode:
* buildderefimpl: don't build the deref if we don't need to
* derefimpl: do not try to resolve the deref if it wasn't stored at all
git-svn-id: trunk@25329 -
2013-08-22 20:18:14 +00:00
Jonas Maebe
528f5d1096
* initialise result of GetDarwinPrtobjName() in case GetDarwinCrt1ObjName()
...
returns an empty string
git-svn-id: trunk@25328 -
2013-08-22 19:55:57 +00:00
Jonas Maebe
4ec9ec2009
+ PIC support for Darwin/ARM:
...
o does not use GOT
o enabled by default like for other Darwin platforms
- removed Darwin/ARM call stub support: no longer needed with current
Xcode versions (at least Xcode 4.2+), and we didn't support PIC
in them yet
git-svn-id: trunk@25325 -
2013-08-22 08:14:24 +00:00
Jonas Maebe
8ffb704b8c
* don't split address labels from the instruction they belong with when
...
rescheduling (needed for GOT-less PIC)
git-svn-id: trunk@25324 -
2013-08-22 08:14:18 +00:00
Jonas Maebe
b31e5c2536
+ PIC support for ARM jump tables (only for plain ARM right now, not
...
yet for thumb/thumb2)
git-svn-id: trunk@25323 -
2013-08-21 22:28:24 +00:00
Jonas Maebe
936bd3c902
* fixed definitions/uses of asmsymbols: always explicitly define local
...
symbols as local, don't use RefAsmSymbol for symbols that may still
be defined/used as local symbols later
git-svn-id: trunk@25318 -
2013-08-21 09:49:07 +00:00
florian
6606955b88
+ basic support for pic on arm-linux
...
git-svn-id: trunk@25297 -
2013-08-19 21:35:37 +00:00
nickysn
a1fa1954b8
* i8086 medium model fixes in Tresourcestrings.CreateResourceStringData
...
git-svn-id: trunk@25292 -
2013-08-18 21:18:22 +00:00
nickysn
e4f84b0f5d
* i8086 medium model fixes in tnodeutils.InsertResourceTablesTable
...
git-svn-id: trunk@25290 -
2013-08-18 20:37:18 +00:00
florian
2806947a8f
+ FindRegAllocBackward
...
* search reg. allocations backward in RemoveSuperfluousMove because the changed instruction could be the first one in a list
git-svn-id: trunk@25289 -
2013-08-18 18:56:56 +00:00
florian
bca6dafbc5
* mark the current procedure if it has a non local exit, not the targetted one
...
git-svn-id: trunk@25288 -
2013-08-18 18:55:53 +00:00
nickysn
10db067372
* specify Tasmsymtype=AT_FUNCTION and use Create_nil_codeptr when generating the code pointers in the InitFinal table
...
git-svn-id: trunk@25286 -
2013-08-18 18:27:48 +00:00
florian
e147895f80
* make symbols generated in procedures global when auto-inlining is on
...
git-svn-id: trunk@25285 -
2013-08-18 17:32:47 +00:00
paul
17ef986b17
compiler: don't treat methods without self node (static class methods, class contructors, destructors, operators) as method pointers, fix comparison of procdef and procvardef to allow assignment of a static class method to a regular procedural variable (issue #24486 )
...
git-svn-id: trunk@25284 -
2013-08-18 17:29:23 +00:00
florian
a2a405581c
* don't call the ansistring val variant for a zero based array if not necessary to avoid ansistring usage in embedded applications
...
git-svn-id: trunk@25283 -
2013-08-18 17:04:06 +00:00
florian
38f3448e22
* applied patch by Cyrax to fix #24722 , revertes partially r25054 which was wrong
...
git-svn-id: trunk@25282 -
2013-08-18 16:05:43 +00:00
paul
dc95ba5b07
compiler: handle other places where we check current_procdef for self node
...
git-svn-id: trunk@25281 -
2013-08-18 13:09:32 +00:00
paul
4b76782691
compiler: fix property access from a nested routine of the static class method and extend a test
...
git-svn-id: trunk@25280 -
2013-08-18 12:36:04 +00:00
sergei
38058505ba
* Changed linking infrastructure to look like assembler one:
...
* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
* RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
- TAbstractLinker is no longer necessary, removed.
This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.
git-svn-id: trunk@25279 -
2013-08-18 12:01:21 +00:00
sergei
9e3d17778d
- Removed TAbstractAssembler and TAbstractAssemblerClass, they are not used anymore.
...
git-svn-id: trunk@25278 -
2013-08-18 11:03:30 +00:00
sergei
eec8129738
* TInternalLinker.Load_ReadStaticLibrary: exit if error has occurred while opening a static library or dynamic object, continuing can cause other errors/crashes in this case.
...
* t_linux.pas: use sysrootpath when specifying dynamic interpreter (for cross-linking).
git-svn-id: trunk@25277 -
2013-08-18 09:14:16 +00:00
nickysn
088c06d308
* fixed class VMT generation for the i8086 medium memory model (near code, far data) by setting correctly the Tasmsymtype to each symbol according to whether it points to code or data
...
git-svn-id: trunk@25276 -
2013-08-18 00:03:55 +00:00
Jonas Maebe
57cdd8c106
* set symbol type/binding of data referred by ppc and arm/darwin stubs (part
...
of r25264, fixes internalerror 2013081601 after r25266)
git-svn-id: trunk@25275 -
2013-08-17 16:26:37 +00:00
paul
5c33644e5c
compiler: fix calling class methods from a nested routine of a static class method (mantis #0024865 )
...
git-svn-id: trunk@25274 -
2013-08-17 04:44:19 +00:00
paul
89e154bc10
compiler: if method has no self node then load it as a usual identifier (issue #0024871 )
...
git-svn-id: trunk@25273 -
2013-08-17 02:54:55 +00:00
sergei
d11ec8ac47
- Reverted r25269 and commented out r25261. The former one is wrong because it changes unit initialization order. The latter one causes RTL build failures on some targets, needs testing and likely RTL/makefiles patching.
...
git-svn-id: trunk@25271 -
2013-08-16 15:17:25 +00:00
sergei
e1ddd914ac
* Do not implicitly load Variants unit when compiling units. Doing so is mostly waste of time, and introduces unwanted build dependencies. It is enough to set uf_uses_variants flag for units, and examine these flags when compiling program/library. Resolves #24880 .
...
git-svn-id: trunk@25269 -
2013-08-16 12:42:47 +00:00
Jonas Maebe
da6d9cf3f3
* give an internalerror when we try to change the type of an asmsymbol from
...
anything but none (= undefined) to local
git-svn-id: trunk@25266 -
2013-08-16 10:10:38 +00:00
Jonas Maebe
d8c84706dd
* use Tai_symbol.Create_global() when emitting a global symbol for an
...
abstract method wrapper (tai_symbol.create() currently overrides the
symbol type from global to local; will fix in next commit)
* only generate global abstract method wrappers for the class in which
the abstract method is declared to prevent duplicate symbol errors
after the above fix
git-svn-id: trunk@25265 -
2013-08-16 10:09:37 +00:00