Commit Graph

202 Commits

Author SHA1 Message Date
Jonas Maebe
335bc9fd46 + PIC support for darwin/ppc32 (-Cg works now, no regressions in test
suite compiled with -Cg compared to without -Cg)
  + support for using a virtual register as PIC/got base register
  * moved got loading code from ncgutil to cgobj/cgcpu (can't test whether
    it didn't break anything under linux/i386, because "make cycle OPT=-Cg"
    was already broken due to the *prt*.as -> si_*.pp changes)

git-svn-id: trunk@8651 -
2007-09-26 16:41:32 +00:00
micha
d95b9082bb * add memory barrier prototypes + implementation for i386 and sparc + use lwsync for powerpc64
git-svn-id: trunk@8240 -
2007-08-07 20:37:08 +00:00
micha
7475f656f8 + add memory barrier routines for powerpc/64
git-svn-id: trunk@8179 -
2007-07-28 12:47:48 +00:00
Jonas Maebe
5cf2511283 - removed/disabled all normalset code (except for bootstrapping), since
it's no longer needed

git-svn-id: trunk@7403 -
2007-05-20 11:19:36 +00:00
Jonas Maebe
a0b57eddb5 * new internal set format for big endian systems. Advantages:
* varsets ({$packset x}) are now supported on big endian targets
    * gdb now displays sets properly on big endian systems
    * cleanup of generic set code (in, include/exclude, helpers), all
      based on "bitpacked array[] of 0..1" now
  * there are no helpers available yet to convert sets from the old to
    the new format, because the set format will change again slightly
    in the near future (so that e.g. a set of 24..31 will be stored in
    1 byte), and creating two classes of set conversion helpers would
    confuse things (i.e., it's not recommended to use trunk currently for
    programs  which load sets stored to disk by big endian programs compiled
    by previous FPC versions)
  * cross-endian compiling has been tested and still works, but one case
    is not supported: compiling a compiler for a different endianess
    using a starting compiler from before the current revision (so first
    cycle natively, and then use the newly created compiler to create a
    cross-compiler)

git-svn-id: trunk@7395 -
2007-05-19 17:15:15 +00:00
florian
fc027d16c5 * syntax error in last commit fixed
git-svn-id: trunk@5966 -
2007-01-14 10:45:21 +00:00
florian
b3a1868ff0 * correct masking of exceptions in genmath code
git-svn-id: trunk@5965 -
2007-01-14 10:44:10 +00:00
peter
2f0ce31751 * string concat changed from function to procedure to
allow runtime optimization if the destination is the
    same as a source parameter
  * tassignmentnode now sets aktassignmentnode global that can be used
    to use the left node as a destination parameter and
    skip the assignment
  * disabled all cpu specific shortstr concat/append

git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
tom_at_work
aa8d214759 * 2.0.4 fix: fixed move()/fillchar() for linux, avoiding use of dcbz which causes crashes on G5
git-svn-id: trunk@4137 -
2006-07-09 18:25:41 +00:00
Jonas Maebe
bf1e95e024 + InterlockedCompareExchange (+ changed line endings from dos to unix)
git-svn-id: trunk@3945 -
2006-06-25 18:16:32 +00:00
peter
4c065bce45 * move InterLocked functions to system unit
git-svn-id: trunk@3933 -
2006-06-25 09:26:23 +00:00
Jonas Maebe
35fe1b27cd * GetExceptionMask returned inverted result for exInvalidOp
git-svn-id: trunk@3148 -
2006-04-05 07:46:18 +00:00
Jonas Maebe
0517ce08e2 * fixed ppc fpu exception mask stuff in math unit
+ added test for this functionality

git-svn-id: trunk@3136 -
2006-04-03 11:29:37 +00:00
Jonas Maebe
76857dbca9 * set result of SetPrecisionMode()
git-svn-id: trunk@2055 -
2005-12-26 15:52:57 +00:00
Jonas Maebe
5b9f58ef73 * reverted r2037 because of braindead "out" semantics for refcounted
types

git-svn-id: trunk@2045 -
2005-12-24 01:06:05 +00:00
Jonas Maebe
84aab46550 * changed formal "var" paramters of move, movechar0 and fill* into
"out" parameters to avoid wrong "uninitialized" warnings

git-svn-id: trunk@2037 -
2005-12-23 20:59:08 +00:00
tom_at_work
174297c4cf * ppc32: added FPU configuration code in math unit (fixes tw3161)
git-svn-id: trunk@1787 -
2005-11-20 01:21:55 +00:00
tom_at_work
9e7d550455 * fixed last commit (1337) which broke some files in the repository
git-svn-id: trunk@1338 -
2005-10-08 17:23:44 +00:00
tom_at_work
f7f0f9c426 * makefile adaption to be able to cycle compiler and RTL on PowerPC64 target
* some fixes for PowerPC64 target in the code generator and the RTL
* stabs generation for PowerPC64 is okay now (untested)

git-svn-id: trunk@1337 -
2005-10-08 15:48:39 +00:00
Károly Balogh
ccc29a13f3 * added SysResetFPU, which is required for MorphOS
git-svn-id: trunk@1279 -
2005-10-03 22:49:44 +00:00
Jonas Maebe
4292e7f939 - removed obsolete FPC_MTFSB0_CORRECTED macro
git-svn-id: trunk@487 -
2005-06-24 18:34:58 +00:00
michael
3a2eaa94b1 + Removed INTERNCONSTINTF define
git-svn-id: trunk@267 -
2005-06-07 22:04:18 +00:00
michael
93ba0409be + Removed HASCOMPILERPROC define
git-svn-id: trunk@265 -
2005-06-07 21:41:02 +00:00
michael
db5d9d75aa + Removed INTERNCOPY define
git-svn-id: trunk@259 -
2005-06-07 21:11:49 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
olle
381f243243 * Fixed bug in stack crawling routines for macos 2005-04-28 18:29:01 +00:00
olle
eb96e72bdc * Fixed loding of magic constant for macos 2005-04-28 18:22:34 +00:00
Jonas Maebe
8306e44f45 * mini scheduling optimization 2005-03-11 12:41:41 +00:00
Jonas Maebe
4b6030beb9 * fixed overflow detection, + some small optimizations 2005-02-19 14:16:02 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
olle
beecc57e21 * Fixed stack frame access for macos 2005-01-31 20:57:41 +00:00
Jonas Maebe
b6a6e78db1 * fixed remaining compilation problems 2004-11-21 16:14:59 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
Jonas Maebe
cfeaa8aa65 * some compilation fixes for powerpc after all the internconst and
internproc changes, still crashes with internalerror(88) for ppc1
    on real2str.inc(193,39)
2004-11-20 15:49:21 +00:00
Jonas Maebe
42b6daebee * use "round to nearest" rounding mode again, just like C (affects
results of divisions as well)
2004-11-08 08:54:51 +00:00
Jonas Maebe
edbec6f2b4 * use generic round, the ppc-specific one is buggy 2004-11-07 19:09:02 +00:00
Jonas Maebe
94caa0761e * fixed redzone usage in fillchar 2004-10-24 14:43:26 +00:00
Jonas Maebe
296013d111 * fixed default rounding mode 2004-10-24 14:20:21 +00:00
Jonas Maebe
fb693982b1 + "nostackframe" modifier, because the automatic detection in the
compiler to determine that a stack frame is not needed no longer works
2004-10-19 18:51:15 +00:00
Jonas Maebe
0f26252376 + cgenmath with libc math functions. Faster than the routines in genmath
and also have full double support (exp() only has support for values in
    the single range in genmath, for example). Used in FPC_USE_LIBC is
    defined
  * several fixes to allow compilation with -dHASINLINE, but internalerrors
    because of missing support for inlining assembler code
2004-10-09 21:00:46 +00:00
olle
0c65f27b35 * bugfix 2004-08-17 13:34:15 +00:00
Jonas Maebe
38a5902dfd * fixed stricomp() and strlicomp() 2004-08-09 16:43:33 +00:00
Jonas Maebe
9696691c8c * fixed overflow checking for qword multiplication 2004-05-29 21:35:54 +00:00
Jonas Maebe
f1fcf6dc6e * use some more string routines from libc if FPC_USE_LIBC is used 2004-05-01 17:02:37 +00:00
peter
269d24955a * inclocked_longint ifdef fixed 2004-04-29 20:00:47 +00:00
marco
e546db7a23 * interlocked* changed to longints, including winapi. (which was a bug) 2004-03-05 12:17:50 +00:00
olle
4372f8ef91 * fixed global variable access in asm 2004-02-09 20:21:06 +00:00
Jonas Maebe
ec84cc8788 + assembler FPC_MUL_QWORD routine 2004-01-12 21:35:51 +00:00