Commit Graph

42801 Commits

Author SHA1 Message Date
marco
796be2656c * removed printer
git-svn-id: trunk@27409 -
2014-03-31 11:07:55 +00:00
sergei
fff45fa1d3 - Don't compile fpc_abs_real and fpc_sqr_real if they are already defined (Mantis #25342).
git-svn-id: trunk@27408 -
2014-03-31 10:10:04 +00:00
reiniero
b2813cc627 fcl-db: cosmetic:
* Rename deceptively named GetLogEvent
* Typos

git-svn-id: trunk@27407 -
2014-03-31 09:54:46 +00:00
nickysn
6cac29e1b5 + implemented InterLockedExchangeAdd for i8086
git-svn-id: trunk@27406 -
2014-03-31 09:49:37 +00:00
nickysn
d6cb55297c + symx86.pas added to ppc8086.lpi
git-svn-id: trunk@27405 -
2014-03-31 09:24:55 +00:00
nickysn
5b71ad3e3b + i8086 InterLockedExchange reimplemented in asm, added locking with cli
git-svn-id: trunk@27404 -
2014-03-31 09:24:23 +00:00
nickysn
3b2cc1baf5 - rm unused local vars from SysInitFPU and SysResetFPU
git-svn-id: trunk@27403 -
2014-03-30 23:03:51 +00:00
nickysn
8eaf8938f4 + support i8086 far data memory models in InterLockedDecrement and
InterLockedIncrement

git-svn-id: trunk@27402 -
2014-03-30 22:49:40 +00:00
nickysn
14ecc118ec + disable interrupts as a form of 'locking' in InterLockedDecrement and
InterLockedIncrement

git-svn-id: trunk@27401 -
2014-03-30 22:41:48 +00:00
nickysn
2dd9a36bdc * use si, instead of bp in InterLockedDecrement and InterLockedIncrement
git-svn-id: trunk@27400 -
2014-03-30 22:38:30 +00:00
Jonas Maebe
8364232049 + symx86 unit, forgot to commit (part of r27397)
git-svn-id: trunk@27399 -
2014-03-30 22:03:55 +00:00
nickysn
e86e108dc5 + added the newly added source files from r27379 to ppc8086.lpi
git-svn-id: trunk@27398 -
2014-03-30 21:25:33 +00:00
Jonas Maebe
338c064beb * moved x86-specific tpointerdef functionality to architecture-specific
descendants

git-svn-id: trunk@27397 -
2014-03-30 21:04:36 +00:00
Jonas Maebe
dae5d1ff62 + added class reference types of the architecture-specific t*def/t*sym
classes

git-svn-id: trunk@27396 -
2014-03-30 21:04:32 +00:00
Jonas Maebe
43992495cb * moved jvm tprocdef name mangling to jvm-specific descendant class
git-svn-id: trunk@27395 -
2014-03-30 21:04:29 +00:00
Jonas Maebe
f4c0daddb4 * moved jvm-specific exprasm field from tprocdef to jvm-specific descendant
git-svn-id: trunk@27394 -
2014-03-30 21:04:25 +00:00
nickysn
0a9f738167 + tcg8086.g_copyvaluepara_openarray: support source to be in a different segment
git-svn-id: trunk@27393 -
2014-03-30 19:55:11 +00:00
nickysn
4763723c75 + support compact, large and huge memory models in x86/cpubase.segment_regs_equal()
git-svn-id: trunk@27392 -
2014-03-30 19:36:21 +00:00
nickysn
1f8280e8f1 * load the destination segment in tcg8086.g_copyvaluepara_openarray from SS
instead of DS, because the destination is on the stack, but in some memory
  models DS may be different than SS

git-svn-id: trunk@27391 -
2014-03-30 19:10:21 +00:00
nickysn
070955bcd0 * fixed 'data element too large' error in i8086 far data memory models
git-svn-id: trunk@27390 -
2014-03-30 18:17:37 +00:00
nickysn
096bba90da * fixed Tcgx86.g_concatcopy not using the correct push instruction size when
pushing the source segment

git-svn-id: trunk@27389 -
2014-03-30 18:09:15 +00:00
nickysn
f4a0c08736 * fixed nested access to parent local variables in i8086 far data memory models
git-svn-id: trunk@27388 -
2014-03-30 17:50:35 +00:00
florian
8dfcc2b399 * do not reuse tmp. registers in tbasecgarm.handle_load_store
git-svn-id: trunk@27387 -
2014-03-30 17:28:45 +00:00
Jonas Maebe
11c7d5223c * moved ifdef'd jvm code from tprocvardef to jvm-specific descendant
git-svn-id: trunk@27386 -
2014-03-30 17:15:57 +00:00
Jonas Maebe
a05b078fa0 * made ppuload_platform() virtual (should have been part of r27378)
git-svn-id: trunk@27385 -
2014-03-30 17:15:53 +00:00
Jonas Maebe
721fd887c3 * moved all jvm-specific code from symsym to jvm/symcpu
git-svn-id: trunk@27384 -
2014-03-30 16:55:09 +00:00
Jonas Maebe
4a7e6b8b8f * instantiate the cpu-specific version of all defs/syms when loading them
from ppu (was only done for absolutevarsym until now)

git-svn-id: trunk@27383 -
2014-03-30 16:55:06 +00:00
Jonas Maebe
54964d92eb + forgot to commit, part of r26472
git-svn-id: trunk@27382 -
2014-03-30 16:55:03 +00:00
Jonas Maebe
49ccedbff1 * r27142 for the JVM target, so its system unit compiles again
git-svn-id: trunk@27381 -
2014-03-30 16:54:59 +00:00
nickysn
9ae26316e8 * fixed the handling of const resourcestrings in the i8086 far data memory models
git-svn-id: trunk@27380 -
2014-03-30 16:30:51 +00:00
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