summaryrefslogtreecommitdiff
path: root/compiler/ncgutil.pas
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-30 12:00:20 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-03-30 12:00:20 +0000
commita60669916624f6f2165a6d6f994db1f1de70cea4 (patch)
tree337b2fcc10c054cb2fab17cf867896c2ca4efe7b /compiler/ncgutil.pas
parenteaffa521a30958068fae96bb4942bb90004daa4b (diff)
downloadfpc-a60669916624f6f2165a6d6f994db1f1de70cea4.tar.gz
* i8086 far data memory model fix for except_buf_size
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27371 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgutil.pas')
-rw-r--r--compiler/ncgutil.pas10
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas
index ae3e688216..e0689a512b 100644
--- a/compiler/ncgutil.pas
+++ b/compiler/ncgutil.pas
@@ -382,11 +382,15 @@ implementation
*****************************************************************************}
procedure get_exception_temps(list:TAsmList;var t:texceptiontemps);
- const
- EXCEPT_BUF_SIZE = 3*sizeof(pint);
+ var
+ except_buf_size: longint;
begin
+ { todo: is there a way to retrieve the except_buf_size from the size of
+ the TExceptAddr record from the system unit (like we do for jmp_buf_size),
+ without moving TExceptAddr to the interface part? }
+ except_buf_size:=voidpointertype.size*2+sizeof(pint);
get_jumpbuf_size;
- tg.GetTemp(list,EXCEPT_BUF_SIZE,sizeof(pint),tt_persistent,t.envbuf);
+ tg.GetTemp(list,except_buf_size,sizeof(pint),tt_persistent,t.envbuf);
tg.GetTemp(list,jmp_buf_size,jmp_buf_align,tt_persistent,t.jmpbuf);
tg.GetTemp(list,sizeof(pint),sizeof(pint),tt_persistent,t.reasonbuf);
end;