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
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
marcus
0fc9148784
Amiga, AROS: Missing MUI Field Tag
...
git-svn-id: trunk@32161 -
2015-10-26 20:30:46 +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
6b89ea1af2
+ added an i8086 inline assembler test for the near and far ret instructions
...
git-svn-id: trunk@32158 -
2015-10-26 17:06:17 +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
yury
05ecee1895
* tinterlockedmt test: Ensure all threads have started.
...
git-svn-id: trunk@32156 -
2015-10-26 10:14:47 +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
80902035e0
* moved excepth.inc include from the system unit implementation to interface
...
so that we can still find the type definitions in it once we don't store
the entire implementation symtable to the ppu anymore
git-svn-id: trunk@32151 -
2015-10-25 19:21:54 +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
yury
1127689dba
* tinterlockedmt test: Reduced the thread count.
...
git-svn-id: trunk@32148 -
2015-10-25 17:35:36 +00:00
joost
61409cd9a8
* Add include files to fpmake.pp
...
git-svn-id: trunk@32147 -
2015-10-25 16:29:23 +00:00
joost
74e9510476
* Add include file to fpmake.pp
...
git-svn-id: trunk@32146 -
2015-10-25 13:12:54 +00:00
joost
26f0d7a8a9
* Add include file to fpmake.pp
...
git-svn-id: trunk@32145 -
2015-10-25 12:57:22 +00:00
joost
bfd1e4a861
* Add include files to fomake.pp
...
git-svn-id: trunk@32144 -
2015-10-25 12:00:18 +00:00
joost
7798d639a9
Add include files to fpmake.pp
...
git-svn-id: trunk@32143 -
2015-10-25 11:30:51 +00:00
joost
c0bdce1330
* Fixed problem with search-masks in fpmake.pp-files in subdirectories
...
git-svn-id: trunk@32142 -
2015-10-24 22:09:06 +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
marcus
2f83eeba39
AROS: shortname in system description to uppercase (usual form)
...
git-svn-id: trunk@32140 -
2015-10-24 09:01:05 +00:00
joost
18f37f783d
* Add include file to fpmake.pp
...
git-svn-id: trunk@32139 -
2015-10-23 20:26:41 +00:00
joost
7c41b9dbf6
* Add include file to fpmake.pp
...
git-svn-id: trunk@32138 -
2015-10-23 20:20:53 +00:00
lacak
e4369ba51b
fcl-db: implement CompareBookmarks in Delphi compatible way.
...
"value less than 0 if Bookmark1 is less than Bookmark2, 0 if the bookmarks are identical, and a value greater than 0 if Bookmark1 is greater than Bookmark2."
Also FPC documentation: "It returns a negative value if Bookmark1 is located before Bookmark2, zero if they refer to the same record, and a positive value if the second bookmark appears before the first bookmark."
Special case is if one of bookmarks is nil:
nil, "not nil" returns 1
"not nil", nil returns -1
Bug #28730
git-svn-id: trunk@32131 -
2015-10-23 08:57:23 +00:00
joost
fa1eacb387
* Add include-files to fpmake.pp
...
git-svn-id: trunk@32129 -
2015-10-22 20:33:35 +00:00
joost
4e1e8777a1
* Add include-files to fpmake.pp
...
git-svn-id: trunk@32128 -
2015-10-22 19:48:07 +00:00
joost
5439ceab06
* Add include-files to fpmake.pp
...
git-svn-id: trunk@32127 -
2015-10-22 19:27:28 +00:00
joost
b37995cbfa
* Add include-files to fpmake.pp
...
git-svn-id: trunk@32126 -
2015-10-22 19:10:09 +00:00
florian
0ffe6157a8
* cast hsym with the correct type, should resolve issue #28862
...
git-svn-id: trunk@32125 -
2015-10-22 19:07:31 +00:00
joost
ad28a21b45
* Add gdbver_nogdb.inc to fpmake.inc
...
git-svn-id: trunk@32124 -
2015-10-22 17:19:14 +00:00