Commit Graph

42921 Commits

Author SHA1 Message Date
Jonas Maebe
4a79481c51 * isolated segment-related functionality of tabsolutevarsym into i386/i8086-
specific descendent classes and moved the code that deals with this in the
    code generator also to target-specific classes -> only ifdefs left in
    pdecvar

git-svn-id: trunk@27379 -
2014-03-30 15:42:53 +00:00
Jonas Maebe
2474369dde * made all ppuwrite methods in leaf classes "final", because you cannot
override them safely in subclasses to add more data (they finalise
    writing their ibentry)
  * removed "virtual" from all ppuload constructors for similar reason
    as above
  + added virtual (empty) ppuwrite_plaform() method that is called from
    tstoreddef/tstoredsym.ppuwrite(), which can be safely overridden in
    child classes to add extra data (called centrally from a new
    tstoreddef/sym.writeentry() method)
  + added virtual (empty) ppuload_platform() method that is called from
    tstoreddef/tstoredsym.ppuload(), which can be safely overridden in
    child classes to read the extra data (unfortunately cannot be called
    from one single location, and these calls had to be added for each
    generic subclass separately)

git-svn-id: trunk@27378 -
2014-03-30 15:42:49 +00:00
nickysn
e4437bcd51 + initialize the segment of __stktop, __stkbottom, __nearheap_start and
__nearheap_end in i8086 far data memory models.
+ 'Hello world!' now works in the i8086 compact and large memory models!

git-svn-id: trunk@27377 -
2014-03-30 15:32:44 +00:00
marco
a818559481 * clocale moved to rtl-extra.
git-svn-id: trunk@27376 -
2014-03-30 15:27:35 +00:00
marco
2994c55a99 * Patch from Ocean, mantis #25938
- Add missing types from stdole2.tlb
 - IOleCache, IOleCache2, IOleCacheControl, IOleItemContainer from OleIdl
 - Removed useless function name comments

git-svn-id: trunk@27375 -
2014-03-30 13:36:55 +00:00
nickysn
7f37a3300d + added an i8086 asm implementation of move()
git-svn-id: trunk@27374 -
2014-03-30 13:22:52 +00:00
marco
d6f5ca21b9 * moved units ipc for *BSD, darwin/iphonesim and linux. The others are
makefile cleanups.

git-svn-id: trunk@27373 -
2014-03-30 13:13:13 +00:00
marco
70088d12a8 * eliminate classes unit from the compiler by copying an array of string based
extractstrings to cclasses.

git-svn-id: trunk@27372 -
2014-03-30 12:03:10 +00:00
nickysn
66d7beb7fe * i8086 far data memory model fix for except_buf_size
git-svn-id: trunk@27371 -
2014-03-30 12:00:20 +00:00
marco
56277b18db * move fpcsubst to utils/ because it uses classes
git-svn-id: trunk@27370 -
2014-03-30 11:45:51 +00:00
nickysn
5ae9443d66 * moved the EXCEPT_BUF_SIZE const to be local to ncgutils.get_exception_temps,
because that's the only place where it's used

git-svn-id: trunk@27369 -
2014-03-30 11:27:07 +00:00
nickysn
1f98dfc3b4 * i8086 far data memory model fixes in FPC_SETJMP. FPC_LONGJUMP not converted
yet.

git-svn-id: trunk@27368 -
2014-03-30 10:56:42 +00:00
sergei
d251c131a5 * i386: replaced fpc_exp_real with a port from AMath library. It has better accuracy and is faster on CPUs that suffer penalties from changing x87 control word.
git-svn-id: trunk@27367 -
2014-03-30 09:41:06 +00:00
sergei
1744988962 * Modified behavior of CExtended type in overload selection: it is made more compatible to Extended than to Double and Single. Also an Extended parameter selects a CExtended overload (if available) instead of Double.
+ Test.

git-svn-id: trunk@27366 -
2014-03-30 07:31:58 +00:00
sergei
eb984a5adb * Replaced last remaining C tokens.
git-svn-id: trunk@27365 -
2014-03-30 05:03:55 +00:00
sergei
20cc82dfea * Two more "&& vs &" porting bugs fixed.
git-svn-id: trunk@27364 -
2014-03-30 04:37:52 +00:00
nickysn
aba62b11f4 + enabled compilation of unit printer on i8086-msdos after the move to rtl-extra
git-svn-id: trunk@27363 -
2014-03-30 00:03:31 +00:00
nickysn
7a965374e9 * fixed i8086-msdos compilation after r27349
git-svn-id: trunk@27362 -
2014-03-29 23:54:30 +00:00
Jonas Maebe
b57c95043f + support overriding tdef/tsym methods with target-specific functionality:
o made all (non-abstract) tdef and tsym constructors virtual
   o added c*def/c*sym classref types for every (non-abstract) t*def/t*sym
     class
   o added cpusym unit for every architecture that derives a tcpu*def/tcpu*sym
     class from the base classes, and initialises the c*def/c*sym classes with
     them. This is done so that the llvm target will be able to derive from
     the tcpu*def/sym classes without umpteen ifdefs, and it also means that
     the WPO can devirtualise everything because the c* variables are only
     initialised with one class type
   o replaced all t*def/t*sym constructor calls with c*def/c*sym constructor
     calls

git-svn-id: trunk@27361 -
2014-03-29 22:31:55 +00:00
Jonas Maebe
b5fd71c3b9 * removed {$ifndef i8086} in tx86vecnode, instead reset cvecnode to
tcgvecnode in the n8086mem initcode

git-svn-id: trunk@27360 -
2014-03-29 22:31:49 +00:00
Jonas Maebe
57859963d6 - removed {$ifdef compress} code (it hasn't been activated/maintained since
a very long time)

git-svn-id: trunk@27359 -
2014-03-29 22:31:46 +00:00
Jonas Maebe
6b16c05a98 * fixed compilation for i8086 with 2.6.x (it gave an unreachable code
warning)

git-svn-id: trunk@27358 -
2014-03-29 22:31:43 +00:00
Jonas Maebe
0edb7b2288 * fixed r27320 for darwin, as its mangled names get prefixed with '_'
and hence the generated mangled name did not start with a '$' as
    expected

git-svn-id: trunk@27357 -
2014-03-29 22:31:36 +00:00
nickysn
381d09d03f + added extra_data_offset constant, similar to extra_param_offset but for data
pointer size fixups

git-svn-id: trunk@27356 -
2014-03-29 21:43:09 +00:00
florian
1247b86f9a * fix win32 compilation after printer and serial were moved
git-svn-id: trunk@27355 -
2014-03-29 21:29:35 +00:00
nickysn
4eeff66922 + compact and large memory model support added to the MsDos and Intr procedures
git-svn-id: trunk@27354 -
2014-03-29 21:28:57 +00:00
marco
c6424b2e0b * moved unit terminfo to rtl-console
git-svn-id: trunk@27353 -
2014-03-29 21:00:50 +00:00
marco
bd902a7550 * properly construct the overall package OS matrix from unit deps.
git-svn-id: trunk@27352 -
2014-03-29 20:51:42 +00:00
marco
959ea7f5bb * printer unit moved. Amiga unit also moved but it is not actively used.
git-svn-id: trunk@27351 -
2014-03-29 20:35:28 +00:00
marco
7f8a9bcf6e * serial to rtl-extra
git-svn-id: trunk@27350 -
2014-03-29 20:06:36 +00:00
marco
c465d3d64a * moving 4 cp9* units. These are 16-bit and big.
git-svn-id: trunk@27349 -
2014-03-29 19:43:13 +00:00
nickysn
17a8c03e41 * declare the group dgroup even in i8086 far data memory models
git-svn-id: trunk@27348 -
2014-03-29 19:35:54 +00:00
florian
c38e52bb27 * create shorter code for -<single/double> when generating avx code
git-svn-id: trunk@27347 -
2014-03-29 19:35:41 +00:00
michael
7ee72ef5a8 * Init threading when setting C thread manager
git-svn-id: trunk@27346 -
2014-03-29 19:31:12 +00:00
michael
360f1a30a0 * Added overloads for unicodestring strings
git-svn-id: trunk@27345 -
2014-03-29 19:01:25 +00:00
michael
07108c150b * Patch from Michael van Ham to fix object from array of const demo (bug ID 25935)
git-svn-id: trunk@27344 -
2014-03-29 18:47:48 +00:00
michael
48a7259ec3 * Patch from Reinier to test library loader for SQlite
git-svn-id: trunk@27343 -
2014-03-29 18:43:28 +00:00
michael
dbf13fc77a * Patch from Reinier to implement library loader for Sqlite
git-svn-id: trunk@27342 -
2014-03-29 18:42:12 +00:00
nickysn
0082db46ea * i8086 far data memory model fix in tcgloadnode.generate_nested_access.
The system unit now compiles in the compact and large memory models again.

git-svn-id: trunk@27341 -
2014-03-29 18:32:01 +00:00
nickysn
75f29aacc3 * i8086 far data memory model fixes in tcgsubscriptnode.pass_generate_code
git-svn-id: trunk@27340 -
2014-03-29 18:30:32 +00:00
marco
ed3a49372d * strutils moved to packages/rtl-objpas
git-svn-id: trunk@27339 -
2014-03-29 17:51:44 +00:00
marco
eb32c54953 * minor cleanups makefile.
git-svn-id: trunk@27338 -
2014-03-29 17:34:29 +00:00
marco
67df7aebcf * minor updates
git-svn-id: trunk@27337 -
2014-03-29 17:31:00 +00:00
nickysn
d43d7e59b5 * partially converted the threadvar handling in tcgloadnode.pass_generate_code
to use the hlcg in order to support the i8086 far data memory models. Only the
  instructions that handle the case when there's no thread manager installed
  (FPC_THREADVAR_RELOCATE=nil) are converted, since that's what's used on the
  msdos target. The rest still uses the low level code generator.

git-svn-id: trunk@27336 -
2014-03-29 16:22:48 +00:00
marco
cee8a7c527 * cleaning out old makefile rules.
git-svn-id: trunk@27335 -
2014-03-29 16:12:40 +00:00
nickysn
409b047b59 * i8086 far data memory model fixes for the handling of dynamic (ansi/wide/
unicode) strings and dynarrays in tcgvecnode.pass_generate_code

git-svn-id: trunk@27334 -
2014-03-29 14:39:22 +00:00
nickysn
4e60d2316f * support implicit pointer types (classes, dynarrays, ansistrings, etc.) in
i8086's thlcgcpu.getaddressregister and thlcgcpu.reference_reset_base

git-svn-id: trunk@27333 -
2014-03-29 14:00:24 +00:00
nickysn
ce59c4616f * assume SS for the segment of references that have BP as base in
thlcgcpu.a_loadaddr_ref_reg

git-svn-id: trunk@27332 -
2014-03-29 13:25:11 +00:00
florian
a4b6e99db1 * increase refs of hidden high parameter if the corresponding open/const array is used
git-svn-id: trunk@27331 -
2014-03-29 13:10:54 +00:00
florian
601d210763 * formatting
git-svn-id: trunk@27330 -
2014-03-29 13:10:50 +00:00