Commit Graph

30 Commits

Author SHA1 Message Date
sergei
74f9d719f1 * i386-win32 setjmp and longjmp: if SEH support is enabled, save/restore head of exception registration chain. Without this, a longjmp out of a function with exception frame(s) will leave these exception frames below ESP, which will fail integrity checks in OS and cause process termination if an exception occurs later on (or they may be overwritten by subsequent operations on stack and, again, cause undesired results).
* Additionally, use a branchless sequence to fix up result of longjmp.

git-svn-id: trunk@26238 -
2013-12-16 10:12:36 +00:00
sergei
c0f49951b1 * Fixed i386 longjmp, it must not return 0 if 'value' argument happens to be 0.
git-svn-id: trunk@22781 -
2012-10-19 19:49:33 +00:00
sergei
b36a930f26 - Cleaned out REGCALL defines
git-svn-id: trunk@19482 -
2011-10-13 17:02:23 +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
yury
c4ed91b9ff * Fixed warnings about EBP based access.
* Improved SetJmp and longJmp by not using stack frame.

git-svn-id: trunk@9112 -
2007-11-03 18:05:12 +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
16b121f8c4 * unblock signal in signalhandler, remove the sigprocmask call
from setjmp
2005-04-24 21:19:22 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
ae8b7b153b * include file cleanup 2005-02-13 20:01:37 +00:00
peter
7395e7e546 * restore sigprocmask for linux 2005-01-20 16:38:28 +00:00
peter
0d3948fc5f * register calling updates 2003-12-04 21:42:07 +00:00
peter
8f8b47194a * REGCALL define added 2003-11-11 21:08:17 +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
michael
e7aca136a1 + Initial import 2000-07-13 06:29:38 +00:00
pierre
d7afdbd8e6 * Preserve all registers in SetJmp
* set EAX to value filed in LongJmp instead of only 0 or 1
2000-05-04 09:47:40 +00:00
pierre
beecf1ec51 * remove fninit in longjump 2000-03-31 23:12:09 +00:00
florian
95d572ca04 * we don't need to to finit twice ... 2000-02-18 16:16:13 +00:00
florian
ff96d13e5f * fixed constants in rtti
* longjmp does now a finit
2000-02-18 15:23:01 +00:00
florian
4dd95e6a80 * longjump does now a finit 2000-02-09 22:12:54 +00:00
peter
6b66a55cd6 * truncated log 2000-02-09 16:59:28 +00:00
daniel
ec29a31834 * copyright 2000 2000-01-07 16:41:28 +00:00
pierre
e33295ceb0 * loading of esp value corrected 1999-08-18 10:42:13 +00:00
peter
af8a04a5af * use external names
* removed all direct assembler modes
1999-03-01 15:40:48 +00:00
peter
4620a73a9b * FPC_ names
* Heap manager is now system independent
1998-09-14 10:48:00 +00:00
peter
bd57e42086 * $ifdef ver0_99_5 updates 1998-08-11 00:04:46 +00:00
pierre
b495ca5d7d * problem with asmmode for bugfix branch 1998-08-04 18:22:02 +00:00
michael
11cbb1fd82 + Initial implementation 1998-07-28 20:36:41 +00:00