mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-14 00:49:09 +02:00
* the default Seg() handling moved to virtual methods, so that they can be overriden in the i8086 code generator
git-svn-id: branches/i8086@24070 -
This commit is contained in:
parent
27559aa5f8
commit
917a1eb0f2
@ -79,6 +79,9 @@ interface
|
||||
function first_assigned: tnode; virtual;
|
||||
function first_assert: tnode; virtual;
|
||||
function first_popcnt: tnode; virtual;
|
||||
{ override these for Seg() support }
|
||||
function typecheck_seg: tnode; virtual;
|
||||
function first_seg: tnode; virtual;
|
||||
|
||||
private
|
||||
function handle_str: tnode;
|
||||
@ -2805,10 +2808,7 @@ implementation
|
||||
|
||||
in_seg_x :
|
||||
begin
|
||||
if target_info.system in systems_managed_vm then
|
||||
message(parser_e_feature_unsupported_for_vm);
|
||||
set_varstate(left,vs_read,[]);
|
||||
result:=cordconstnode.create(0,s32inttype,false);
|
||||
result := typecheck_seg;
|
||||
end;
|
||||
|
||||
in_pred_x,
|
||||
@ -3571,7 +3571,9 @@ implementation
|
||||
internalerror(2000101001);
|
||||
|
||||
in_seg_x :
|
||||
internalerror(200104046);
|
||||
begin
|
||||
result:=first_seg;
|
||||
end;
|
||||
|
||||
in_settextbuf_file_x,
|
||||
in_reset_typedfile,
|
||||
@ -3996,6 +3998,21 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function tinlinenode.typecheck_seg: tnode;
|
||||
begin
|
||||
if target_info.system in systems_managed_vm then
|
||||
message(parser_e_feature_unsupported_for_vm);
|
||||
set_varstate(left,vs_read,[]);
|
||||
result:=cordconstnode.create(0,s32inttype,false);
|
||||
end;
|
||||
|
||||
|
||||
function tinlinenode.first_seg: tnode;
|
||||
begin
|
||||
internalerror(200104046);
|
||||
end;
|
||||
|
||||
|
||||
function tinlinenode.handle_box: tnode;
|
||||
begin
|
||||
result:=nil;
|
||||
|
Loading…
Reference in New Issue
Block a user