Commit Graph

47295 Commits

Author SHA1 Message Date
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
0c904e92ff * moved TResourceStringRecord from the objpas to the system unit so it can be
used in the compiler when emitting resourcestrings

git-svn-id: trunk@32208 -
2015-10-30 20:45:19 +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
500743c65d + extended test with many more reference syntaxes, accepted by TP7
git-svn-id: trunk@32190 -
2015-10-29 15:48:18 +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
nickysn
1eaa77d2f9 + added test for i8086 inline asm access to procedure data
git-svn-id: trunk@32186 -
2015-10-29 14:47:26 +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
deef6953f9 * fixed compilation after r30351 (mantis #27918)
git-svn-id: trunk@32184 -
2015-10-28 21:49:29 +00:00
michael
acff5a6170 * Implemented otherwise parsing
git-svn-id: trunk@32183 -
2015-10-28 21:39:34 +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
nickysn
ce7672b750 + added test for local label data access from i8086 inline asm
git-svn-id: trunk@32178 -
2015-10-28 17:00:35 +00:00
nickysn
83d90c7888 + extended test with call/jmp [d]word ptr const, which produces an indirect call or jump under BP7
git-svn-id: trunk@32177 -
2015-10-28 15:22:33 +00:00
nickysn
a7a71f8b9f + extended test with many more variants, supported by BP7 for specifying an indirect call/jmp
git-svn-id: trunk@32176 -
2015-10-28 14:57:35 +00:00
nickysn
1fc1739c1d + added calls to local labels in a far procedure to the test as well
git-svn-id: trunk@32175 -
2015-10-28 14:33:32 +00:00
nickysn
85f4b8aa5e + added calls to labels to the tests
git-svn-id: trunk@32174 -
2015-10-28 13:59:35 +00:00
nickysn
fe3711bf6a + added interrupt procedures to the tests
git-svn-id: trunk@32173 -
2015-10-28 13:49:48 +00:00
nickysn
13441261f2 + extended tests with some additional ways to produce call relative near/absolute far in BP7's inline asm
git-svn-id: trunk@32172 -
2015-10-28 13:32:18 +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
Jonas Maebe
f0c0b00467 * avoid threadvar memory leaks for external hooked threads if the tlskey
thread data is finalised by libpthread before the CleanupKey routine
    is called (based on patch by Derek, mantis #28806)

git-svn-id: trunk@32168 -
2015-10-27 21:52:05 +00:00
nickysn
e2ed8f2251 * fixed various procvars being casted to pointer instead of codepointer in the rtl
git-svn-id: trunk@32167 -
2015-10-27 17:25:27 +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
nickysn
30718a2601 + added i8086 inline asm near relative and far absolute call tests (TP7
compatible, but not yet working under FPC, unfortunately)

git-svn-id: trunk@32164 -
2015-10-27 14:39:02 +00:00