mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-27 10:29:29 +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_assigned: tnode; virtual;
|
||||||
function first_assert: tnode; virtual;
|
function first_assert: tnode; virtual;
|
||||||
function first_popcnt: tnode; virtual;
|
function first_popcnt: tnode; virtual;
|
||||||
|
{ override these for Seg() support }
|
||||||
|
function typecheck_seg: tnode; virtual;
|
||||||
|
function first_seg: tnode; virtual;
|
||||||
|
|
||||||
private
|
private
|
||||||
function handle_str: tnode;
|
function handle_str: tnode;
|
||||||
@ -2805,10 +2808,7 @@ implementation
|
|||||||
|
|
||||||
in_seg_x :
|
in_seg_x :
|
||||||
begin
|
begin
|
||||||
if target_info.system in systems_managed_vm then
|
result := typecheck_seg;
|
||||||
message(parser_e_feature_unsupported_for_vm);
|
|
||||||
set_varstate(left,vs_read,[]);
|
|
||||||
result:=cordconstnode.create(0,s32inttype,false);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
in_pred_x,
|
in_pred_x,
|
||||||
@ -3571,7 +3571,9 @@ implementation
|
|||||||
internalerror(2000101001);
|
internalerror(2000101001);
|
||||||
|
|
||||||
in_seg_x :
|
in_seg_x :
|
||||||
internalerror(200104046);
|
begin
|
||||||
|
result:=first_seg;
|
||||||
|
end;
|
||||||
|
|
||||||
in_settextbuf_file_x,
|
in_settextbuf_file_x,
|
||||||
in_reset_typedfile,
|
in_reset_typedfile,
|
||||||
@ -3996,6 +3998,21 @@ implementation
|
|||||||
end;
|
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;
|
function tinlinenode.handle_box: tnode;
|
||||||
begin
|
begin
|
||||||
result:=nil;
|
result:=nil;
|
||||||
|
Loading…
Reference in New Issue
Block a user