Commit Graph

25 Commits

Author SHA1 Message Date
Károly Balogh
3a78ff1ee4 m68k: on setjmp/longjmp also save/restore the FPCR register when FPU support is enabled
git-svn-id: trunk@38522 -
2018-03-13 23:44:54 +00:00
Károly Balogh
f4a8a29aea m68k: try to restore compilability with a 3.0 compiler
git-svn-id: trunk@37026 -
2017-08-22 09:05:20 +00:00
Károly Balogh
6a856f109e m68k: made setjmp and longjmp code work when register calling convention is the default
git-svn-id: trunk@34826 -
2016-11-06 19:10:47 +00:00
Károly Balogh
7293bb7fdb m68k: reworked setjmp/longjmp to also save the FPU registers (when compiled with HW FPU support), and to only save the nonvolatile registers
git-svn-id: trunk@34785 -
2016-11-05 22:02:50 +00:00
sergei
6bcaa88c3a * m68k: "or" without suffix is not accepted, must be "or.l"
git-svn-id: trunk@28184 -
2014-07-08 18:48:57 +00:00
sergei
cfe13734e0 * m68k: Fixed damage caused by r27573 and r28177:
* longjmp: restored loading of function result (d0) which got removed in r28177.
  * While at the point, added test for zero, because longjmp must never return zero values.
  * Assembler reader: 'fp' refers to frame pointer, not the stack pointer.

git-svn-id: trunk@28183 -
2014-07-08 15:04:54 +00:00
Károly Balogh
f98cd634fb m68k: reworked/cleaned setjmp/longjmp code to use the movem instruction with register lists
git-svn-id: trunk@28177 -
2014-07-06 13:18:56 +00:00
sergei
23a20f0e50 * m68k: fixed setjmp/longjmp:
* Data registers have to be saved/restored using 'move.l', because 'move' without suffix assumes 16-bit size.
  * setjmp must behave as a regular function w.r.t. removing its argument from the stack.

git-svn-id: trunk@28103 -
2014-07-01 11:46:10 +00:00
Károly Balogh
652d69d145 fixed typo
git-svn-id: trunk@23269 -
2013-01-01 02:44:01 +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
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
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
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
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
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
peter
9f31783a0a * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +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
michael
11cbb1fd82 + Initial implementation 1998-07-28 20:36:41 +00:00