Jonas Maebe
f004227d91
* ignore the name of class con- and destructors (patch by Ondrej Pokorny,
...
mantis #28801 )
git-svn-id: trunk@32223 -
2015-11-03 18:10:08 +00:00
nickysn
75dc2ad7e1
+ implemented Seg(procedure) on i8086
...
git-svn-id: trunk@32222 -
2015-11-02 16:37:19 +00:00
Jonas Maebe
8087389f63
* support assigning static methods to regular procvars in (obj)fpc mode
...
(patch by Ondrej Pokorny, mantis #27414 )
git-svn-id: trunk@32216 -
2015-11-01 18:02:46 +00:00
Jonas Maebe
2c5187cb97
* fixed size when storing arrayconstructor vtype field
...
git-svn-id: trunk@32215 -
2015-10-31 14:25:56 +00:00
Jonas Maebe
af4d69f446
* always write the entire integer field when storing a value < integer in an
...
arrayconstructor, so the upper bits get zeroed (tbs/tb0581)
git-svn-id: trunk@32214 -
2015-10-31 14:25:54 +00:00
Jonas Maebe
5e32590741
* handle variant record fields in
...
thlcgllvm.g_set_addr_nonbitpacked_record_field_ref()
git-svn-id: trunk@32213 -
2015-10-31 14:25:50 +00:00
nickysn
94a5364c2c
* fixed 'array of const' in the i8086 tiny/small/medium memory models
...
git-svn-id: trunk@32212 -
2015-10-31 11:43:04 +00:00
nickysn
a55b728d34
* optimizations for ofs() on i8086 to load only the offset (in a temporary
...
register), without the segment
git-svn-id: trunk@32211 -
2015-10-30 21:27:35 +00:00
Jonas Maebe
998cdbfe79
- removed useless ansistring pointer def creation from r32209
...
git-svn-id: trunk@32210 -
2015-10-30 20:56:34 +00:00
Jonas Maebe
0dee7cb4a0
* converted emitting resourcestring references to the high level typed
...
constant builder
git-svn-id: trunk@32209 -
2015-10-30 20:45:22 +00:00
Jonas Maebe
4670e0abc9
* converted "array of const" handling to the high level code generator
...
git-svn-id: trunk@32207 -
2015-10-30 20:45:15 +00:00
Jonas Maebe
ccf1c67665
* converted large set constant emission to high level typed const builder
...
git-svn-id: trunk@32206 -
2015-10-30 20:45:11 +00:00
nickysn
072139cdb7
* fixed ofs(procedure) as well
...
git-svn-id: trunk@32205 -
2015-10-30 19:30:33 +00:00
nickysn
c25585daee
* fixed addr(procedure), mantis #28775
...
git-svn-id: trunk@32204 -
2015-10-30 15:17:48 +00:00
Jonas Maebe
79866f9824
* free a bunch of extra data after a unit is compiled, as it is no longer
...
needed
git-svn-id: trunk@32203 -
2015-10-30 15:12:37 +00:00
Jonas Maebe
4decb81ac4
* correctly handle code page names specified in upper case (mantis #28934 )
...
git-svn-id: trunk@32202 -
2015-10-30 15:10:26 +00:00
Jonas Maebe
c2caa6641c
* free typedconstbuilder after generating rtti
...
git-svn-id: trunk@32201 -
2015-10-30 14:17:13 +00:00
pierre
6d0c5b234b
Avoid unsupported .uleb128 with diff of two sympbols for native solaris assembler
...
git-svn-id: trunk@32200 -
2015-10-30 13:38:03 +00:00
pierre
f380b80b3e
Also set cs_create_pic in init_settings so that units are compiled with this setting if tf_library_needs_pic is in target info flags
...
git-svn-id: trunk@32199 -
2015-10-30 13:37:03 +00:00
pierre
1abf9df1b0
Solaris assembler does not accept %st instead of %st(0), at least for some instructions
...
git-svn-id: trunk@32198 -
2015-10-30 11:20:10 +00:00
pierre
61aa4b6a40
Solaris assembler does not want 0x90 fill pattern for text section alignment
...
git-svn-id: trunk@32197 -
2015-10-30 11:19:14 +00:00
pierre
6b0e87b95c
Correct error in last commit that generate new failures in tbs/tb0587 test for GNU as, as the change was not correctly limited to Solaris Assembler
...
git-svn-id: trunk@32196 -
2015-10-30 08:34:01 +00:00
nickysn
2e30b92c79
* removed the 'near ignored' and 'far ignored' inline asm warning messages on
...
the i8086, as 'near' and 'far' actually work there. Some forms may even work
on the i386, but that's not tested very well for now, so we leave the messages
there on i386 and x86_64.
git-svn-id: trunk@32195 -
2015-10-29 22:47:40 +00:00
nickysn
9e110e8e7e
* treat interrupt procedures as 'near' in the i8086 inline assembler for TP7
...
compatibility
git-svn-id: trunk@32194 -
2015-10-29 22:43:41 +00:00
nickysn
dd9e5ea6f6
* convert 'call/jmp [proc]' properly to a near or far call/jmp, depending on
...
proc's call model
git-svn-id: trunk@32193 -
2015-10-29 22:05:09 +00:00
nickysn
ed09b4fcaa
* in i8086 inline asm, convert 'call/jmp [proc/label]' to 'call/jmp proc/label'.
...
This is BP7 compatible and fixes e.g. 'call near ptr label' and 'call far ptr label'.
git-svn-id: trunk@32192 -
2015-10-29 17:07:23 +00:00
nickysn
77159d2806
+ also add a cs: prefix to references such as [2+label]
...
git-svn-id: trunk@32191 -
2015-10-29 16:17:34 +00:00
nickysn
823deb39ac
+ also add an implicit cs: prefix on i8086 in tx86intreader.BuildOperand.AddLabelOperand
...
git-svn-id: trunk@32189 -
2015-10-29 15:35:09 +00:00
pierre
90ff332b49
Add -Aas-sol to use native Solaris assembler
...
git-svn-id: trunk@32188 -
2015-10-29 15:10:27 +00:00
nickysn
92a39c93f5
+ add a CS: override for references without an explicitly set segment override, which are relative to a function entry point
...
git-svn-id: trunk@32187 -
2015-10-29 14:48:59 +00:00
pierre
885b0034c5
Allow use of stabs for 64-bit systems with -dUSE_STABS_64
...
git-svn-id: trunk@32185 -
2015-10-29 09:23:30 +00:00
Jonas Maebe
9ffadf2941
* write nil instead of a reference to _objc_empty_vtable for iOS and the
...
iOS simulator (based on clang source)
git-svn-id: trunk@32182 -
2015-10-28 21:00:57 +00:00
Jonas Maebe
56a4051296
* replaced another {$ifdef x86} with a virtual method call (the pointer type
...
of voidpointertype corresponds to the default pointer type)
git-svn-id: trunk@32181 -
2015-10-28 18:25:26 +00:00
Jonas Maebe
4f7b4a2735
* changed {$ifdef x86} code in defcmp into virtual methods
...
git-svn-id: trunk@32180 -
2015-10-28 18:06:27 +00:00
nickysn
ef5e368327
+ support local label data access in the i8086 inline asm (fixes test tlbldat1.pp)
...
git-svn-id: trunk@32179 -
2015-10-28 17:22:37 +00:00
Jonas Maebe
9c0d550320
* immediately register interface defs so their defid cannot vary depending
...
on the implementation (which would change the interface crc, even though
the interface didn't change)
git-svn-id: trunk@32171 -
2015-10-28 13:19:01 +00:00
nickysn
dc6119bab7
* also convert 'jmp farprocsymbol' to 'jmp far farprocsymbol' in the i8086
...
inline assembler
git-svn-id: trunk@32170 -
2015-10-28 00:19:42 +00:00
nickysn
cb36b2d3bd
* i8086 inline asm: convert 'call symbol' to 'call far symbol' only for symbols
...
that are an entry point of a function with a far call model
git-svn-id: trunk@32169 -
2015-10-28 00:17:54 +00:00
nickysn
a159ebdbad
* fixed comparison of two procvars in the i8086 compact and medium memory models
...
git-svn-id: trunk@32166 -
2015-10-27 17:24:33 +00:00
nickysn
e2740f0fd7
* disallow procvar to pointer conversion, if the pointer type isn't the default
...
code pointer type for the current memory model
git-svn-id: trunk@32165 -
2015-10-27 17:23:50 +00:00
Jonas Maebe
cf0164b460
+ support for classrefdef
...
git-svn-id: trunk@32163 -
2015-10-26 21:24:33 +00:00
Jonas Maebe
d7bda793f2
* record rather than immediately append encountered defs, so that we don't
...
emit the same def multiple times
git-svn-id: trunk@32162 -
2015-10-26 21:24:29 +00:00
Jonas Maebe
7d5262ef78
* free unregistered elements of the localsymtable after a module has been
...
compiled
git-svn-id: trunk@32160 -
2015-10-26 19:56:09 +00:00
Jonas Maebe
ed211b9888
* don't use symid anymore as fallback when sorting fields, as it's no longer
...
guaranteed to be set. Instead, temporarily assign fieldoffsets to determine
their order in the sort function (fixes webtbs/tw15415 with -O4 after
r32153)
git-svn-id: trunk@32159 -
2015-10-26 17:31:11 +00:00
nickysn
c068c96302
* on i8086 convert the 'ret' inline asm instruction to either 'retn' or 'retf',
...
depending on the call model of the current function (which is BP7 compatible
behaviour)
git-svn-id: trunk@32157 -
2015-10-26 16:01:50 +00:00
Jonas Maebe
2cea723a0d
* only write the parts of the unit localsymtables that are actually needed:
...
the defs and syms (recursively) referred by inline routines and by the WPO
info
o defs and syms are no longer added immediately to the module's deflist/
symlist, even if they are created as "registered". Instead,
"doregister=true" simply means "add it to the symbol table at the
top of the symtable stack"
o normally only when a sym/def is deref'ed, it gets added to the module
symlist/deflist and defid/symid gets a (unique) value
o in cases where we use(d) the defid to construct unique names within the
current module, you now have to call call the tdef.new unique_id_str()
method. If the def was not yet registered, we will reserve room for it
in the deflist (to get a unique id), but the defid gets set to a
negative value computed from its position in the deflist. Should it
have to be written to the ppu file later on, the defid will be
modified to the actual position in the deflist. For both values,
new unique_id_str() will return the same result so that references
to this def before and after actual registrations are the same (needed
for the JVM backend, but also a good principle in general)
Overall: don't directly use symid/defid anymore to get unique identifiers,
but use tdef.new unique_id_str() instead (if necessary, a similar routine
for tsym can be added)
The result is the ppu file size gets reduced significantly after its big
increase as a result of the high level typed constant builder (which creates
a lot of defs). The result is even more efficient than before, as other
unneeded defs/syms from the localsymtables don't get saved/restored anymore
either.
git-svn-id: trunk@32153 -
2015-10-25 19:22:00 +00:00
Jonas Maebe
d440daf47f
* fixed compilation with -Oodfa/-O3
...
git-svn-id: trunk@32152 -
2015-10-25 19:21:57 +00:00
Jonas Maebe
8c90941d89
* use the enymsym's name rather converting its symid to a string when creating
...
the rtti record's fields
git-svn-id: trunk@32150 -
2015-10-25 19:21:51 +00:00
Jonas Maebe
4aa6c95ced
* call inherited method from t*sym.buildderef (currently still empty,
...
but won't stay that way)
git-svn-id: trunk@32149 -
2015-10-25 19:21:48 +00:00
nickysn
1491d9655c
+ fixed the emitting of non-nil far and huge pointer constptrs in typed
...
constants on i8086
git-svn-id: trunk@32141 -
2015-10-24 20:25:49 +00:00