sergei
29bf988ca7
+ Implemented m68k-specific (actually, softfloat-specific) part of Math unit.
...
git-svn-id: trunk@27216 -
2014-03-21 05:24:09 +00:00
sergei
0255eb880e
- Removed mathuh.inc files which are identical for all targets (except m68k, see below), their contents moved into math.pp.
...
+ m68k/mathu.inc: added stub implementations for missing functions.
git-svn-id: trunk@27180 -
2014-03-18 20:01:15 +00:00
Károly Balogh
50c59a1cc2
don't try to fillchar/move by a negative amount, fixes tmem test
...
git-svn-id: trunk@26827 -
2014-02-22 03:30:58 +00:00
Károly Balogh
e27db65085
really fixed FillChar and fixed FillWord. fixes 8 tests.
...
git-svn-id: trunk@25621 -
2013-10-02 12:33:52 +00:00
svenbarth
83f4344c20
Fix around 30 tests for m68k by fixing FillChar:
...
* completely disable the DBRA part for CPUs without DBRA
* replace CMP/BNE with BPL which uses the flags of the SUB instruction
Additional fixes for the other two (still disabled) DBRA alternatives:
* use BPL instead of BMI (which is wrong)
git-svn-id: trunk@25587 -
2013-09-27 20:57:55 +00:00
svenbarth
dfb0c7da24
Forgot to commit this the last time: Use CPUM68K_HAS_DBRA instead of CPUCOLDFIRE (which does not exist anymore).
...
git-svn-id: trunk@25586 -
2013-09-27 20:54:54 +00:00
svenbarth
83af4e93f7
rtl/m68k/m68k.inc:
...
* InterlockedIncrement & InterlockedDecrement: return the modified value, not the original one
git-svn-id: trunk@23432 -
2013-01-17 21:19:27 +00:00
svenbarth
f5e94a02cd
rtl/m68k/m68k.inc:
...
* fillchar & fillword: check whether the count is 0 before filling anything
This fixes cases like "Writeln('')" which is used inside InternalExit if an unhandled exception happened.
git-svn-id: trunk@23431 -
2013-01-17 21:17:13 +00:00
Károly Balogh
652d69d145
fixed typo
...
git-svn-id: trunk@23269 -
2013-01-01 02:44:01 +00:00
Károly Balogh
0702109f37
get_frame to return a5 on Amiga
...
git-svn-id: trunk@23268 -
2013-01-01 02:37:39 +00:00
Károly Balogh
79a0f706de
save/restore FP from A5 on Amiga
...
git-svn-id: trunk@23267 -
2013-01-01 02:27:53 +00:00
svenbarth
e240856e43
* rtl/m68k/setjumph.inc:
...
data registers stored are 1 to 7, not 0 to 7
* rtl/m68k/setjump.inc:
don't use "S" or "value" to reference the parameters as the code generator does not use "sp" instead of "fp" in case of "nostackframe"
restore a0 at the end of setjmp
git-svn-id: trunk@23240 -
2012-12-28 13:00:28 +00:00
pierre
76ba2ea6c7
Save complete register set for setjmp/longjmp
...
git-svn-id: trunk@23174 -
2012-12-18 14:05:52 +00:00
pierre
0e14a3c5bd
add fpc_longword_to_double if needed
...
git-svn-id: trunk@23173 -
2012-12-18 14:04:14 +00:00
Károly Balogh
e2f02faca0
do not refer reg a6 directly, base pointer might differ among platforms (a5 on m68k-amiga)
...
git-svn-id: trunk@23167 -
2012-12-18 02:13:43 +00:00
svenbarth
4d1e42e891
rtl/m68k/setjump.inc:
...
* implement "fpc_setjmp" and "fpc_longjmp"
rtl/m68k/m68k.inc:
* add "nostackframe" to "get_frame" and "sptr"
+ add "get_pc_addr"
=> allows stack traces to be displayed correctly
git-svn-id: trunk@22899 -
2012-11-01 16:00:14 +00:00
svenbarth
fb873d6f02
rtl/m68k/m68k.inc:
...
dummyplement Interlocked* functions; they are not locking in any way, but at least they do what they should
git-svn-id: trunk@22884 -
2012-10-31 06:24:08 +00:00
svenbarth
f204f84f6a
rtl/m68k/m68k.inc, move:
...
completely disable the "fast loop" code for Coldfire instead of "hackfixing" it; with this StdIO starts to work (though one byte is missing at the end...)
git-svn-id: trunk@22883 -
2012-10-31 06:10:03 +00:00
svenbarth
58d9b0853c
* rtl/m68k/m68k.inc, move:
...
add a check for "count = 0" which happens e.g. inside of System.Assign if called with '' as filename (which is the case inside OpenStdIO)
git-svn-id: trunk@22841 -
2012-10-24 05:03:08 +00:00
svenbarth
a266d73409
* rtl/m68k/setjump.inc:
...
correctly dummy out setjump as "d0 <> 0" means that longjmp was executed (and d0 could be set from the calling function)
git-svn-id: trunk@22797 -
2012-10-21 13:56:48 +00:00
svenbarth
322dbe5b65
Various adjustments to the RTL for m68k:
...
* enable the 6 parameter syscall variant (still everything dummied out though)
* add termios constants
* don't change signal handlers for now
* disable assembly set routines as set handling was changed
git-svn-id: trunk@22743 -
2012-10-18 20:12:02 +00:00
svenbarth
43d8da7aa3
Replace DBRA instruction for Coldfire with a SUB/BRA combination in the for-loop-code-
...
generation and the assembly helpers in the RTL as DBRA is not supported by Coldfire.
git-svn-id: trunk@22740 -
2012-10-18 20:11:45 +00:00
svenbarth
6034866050
rtl/m68k: Added mathu(h).inc with dummy implementations of SetExceptionMask and GetExceptionMask
...
git-svn-id: trunk@22729 -
2012-10-18 20:10:48 +00:00
pierre
8469741700
+ Added additional addr pointer parameter to
...
get_caller_frame, get_caller_addr and dump_stack
with default NIL value to systemh.inc.
+ Added new get_addr function.
system.inc: Use get_addr and get_frame to call
HandleErrorAddrFrame instead of HandleErrorFrame
in several error functions.
Modify dump_stack to use frame and addr parameters.
Provide a dummy get_addr function returning nil.
i386/i386.inc, x86_64./x86_64.inc: Provide real
implementation of get_addr function.
git-svn-id: trunk@21697 -
2012-06-24 21:22:09 +00:00
florian
24fea58b92
+ initial implementation of iso style gotos in iso mode
...
* made setjmp/longjmp accessible to the compiler by compiler proc, they are used by the iso goto code
git-svn-id: trunk@15711 -
2010-08-05 19:20:46 +00:00
florian
d127e002d8
* use default helpers for now
...
git-svn-id: trunk@5556 -
2006-12-07 20:44:52 +00:00
florian
b07cd83892
* made system unit on m68k-linux compilable
...
git-svn-id: trunk@5266 -
2006-11-06 18:42:47 +00:00
Károly Balogh
572c8430ac
+ more mess to make the skeleton amiga rtl compile
...
git-svn-id: trunk@2393 -
2006-02-01 15:35:33 +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
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
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
cd81fa77ea
+ added currency and widestring support to TWriter and TReader
2004-05-23 12:42:42 +00:00
florian
91733f9237
* some m68k and amiga related stuff fixed
2004-05-05 21:26:34 +00:00
Jonas Maebe
6bd3eccdac
+ fpc_cpuinit procedure to allow cpu/fpu initialisation before any unit
...
initialises
+ fpu exceptions for invalid operations and division by zero enabled for
ppc
2004-01-02 17:21:50 +00:00
carl
af2000b0f7
* make the jmp_buf record packed, just in case
2002-10-20 11:53:14 +00:00
peter
9f31783a0a
* old logs removed and tabs fixed
2002-09-07 16:01:16 +00:00
peter
24384c648b
* moved genrtti.inc code to rtti
...
* removed rttip.inc, the generic code is almost as fast and
much easier to maintain and has less risks on bugs
2002-09-02 18:42:41 +00:00
michael
586c4cea50
+ Conditionals fixed
2000-07-14 10:33:09 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
pierre
a41bd45aad
* 0**n where n<>0 is 0; 0**0 generates RTE 207
2000-05-02 10:37:50 +00:00
daniel
ec29a31834
* copyright 2000
2000-01-07 16:41:28 +00:00
daniel
a79b4a404b
* copyright 2000 added
2000-01-07 16:32:21 +00:00
carl
a166bd1bca
* FillChar and FillObject bugfix, count was compared with byte
1998-10-17 14:34:37 +00:00
pierre
850e611770
* added code for vmt_offset in destructors
1998-10-16 13:37:45 +00:00
pierre
2312760103
+ first step of variable vmt offset
...
offset is stored in R_EDI (R_D0)
if objectvmtoffset is defined
1998-10-15 11:35:02 +00:00
pierre
93d5b064b0
* some bugs related to FPC_ prefix fixed
...
* problems with pbyte sometimes defined and sometimes not for rttip.inc solved
1998-10-13 08:00:04 +00:00
peter
4620a73a9b
* FPC_ names
...
* Heap manager is now system independent
1998-09-14 10:48:00 +00:00
pierre
0471257bec
* small modifications
1998-09-04 17:27:09 +00:00
pierre
d5df96ef6a
* corrected a bug introduced by my last change
...
(allocating 1Mb but only using a small part !!)
1998-08-25 14:15:51 +00:00
pierre
69aed4ad5c
* bug allocation of more than 1 MB failed corrected
1998-08-24 14:44:04 +00:00
carl
26319a738a
* bugfix of heaperror, was pushing wrong parameter
1998-08-17 12:27:17 +00:00
carl
5093dda4d7
+ simple cleanup of comments
1998-08-17 12:26:04 +00:00
michael
4e11459938
+ Added support for ErrorProc variable. All internal functions are required
...
to call HandleError instead of runerror from now on.
This is necessary for exception support.
1998-07-30 13:26:14 +00:00
carl
f86a9ccb28
* set_sub_sets bugfix, was not using correct operation
1998-07-30 12:16:29 +00:00
michael
11cbb1fd82
+ Initial implementation
1998-07-28 20:36:41 +00:00
peter
702043e165
* support_fixed, becuase fixed is not 100% yet for the m68k
1998-07-10 11:02:38 +00:00
carl
df00344700
+ reinstated hepasize function
...
* renamed HEAPSIZE global var to HEAP_SIZE to remove conflicts
1998-07-08 11:54:40 +00:00
michael
eb9df35117
Undid carls changes, but renamed _heapsize to _internal_heapsize. Make cycle now works
1998-07-02 14:24:08 +00:00
carl
9aeafd0cc0
- removed heapsize function, would cause conflicts with HEAPSIZE var
...
* GetHeapstart was misplaced
1998-07-02 12:22:38 +00:00
carl
7632ce3279
+ Io-Error and overflow print erroraddr in hex now
1998-07-02 12:20:58 +00:00
carl
a218bfc8ce
* LONGDIV bugfixed with signed and modulo
...
* LONGDIV bugfix when divisor is less then 16 bits
1998-07-01 14:28:32 +00:00
carl
14272ace40
* set_set and set_in bugfix
1998-07-01 14:27:13 +00:00
carl
daf43ca204
* strconcat was copying one byte too much
...
* strcopy bugfix was using signed comparison
+ STRCOPY uses register calling conventions
* FillChar bugfix was loading a word instead of a byte
1998-07-01 14:25:57 +00:00
carl
0acb09468b
* bugfix of set_in_byte, long must be used at start, same is true for
...
another routine
1998-06-17 13:59:08 +00:00
michael
b36e918420
+ Implemented DecRef
1998-06-08 19:26:53 +00:00
michael
4b73216117
+ Split rtti according to processor. Implemented optimized i386 code.
1998-06-08 15:32:08 +00:00
carl
5ad930412e
* single_cmp, comparison was reversed!
1998-06-05 12:33:16 +00:00
carl
89fd9e9c5d
* calculating sets is COMPLETELY different from the intel in
...
determining the bit number
* new passing parameters conventions
* misc bugfixes
1998-06-05 12:32:07 +00:00
carl
26d45eee6d
* all string internal routines fixed and tested (to my knowledge)
...
* bugfix of missing typecast with a call to halt with a word
1998-06-05 12:28:58 +00:00
peter
d0ce4085d3
* comp,extended are only i386 added support_comp,support_extended
1998-06-04 23:45:56 +00:00
carl
57dbf2308a
* strcopy bugfix
...
* co bugfix with stack
1998-05-25 12:18:48 +00:00
michael
dbe0135764
Changed makefile system to use -I compiler option, and streamlined i a bit
1998-05-06 09:09:07 +00:00
michael
62001bab9a
+ Changed Random() function. Moved from system to processor dependent files (from Pedro Gimeno)
1998-04-08 07:53:31 +00:00
carl
b170680325
* bugfix of STRCONCAT alignment problem
1998-03-27 23:48:06 +00:00
carl
1988f09fb0
* bugfix of FLAGS as return values for SET_IN_BYTE and SET_SET_BYTE
1998-03-27 23:47:35 +00:00
root
d1a1f501c8
Initial revision
1998-03-25 11:18:12 +00:00