mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 11:29:24 +02:00
+ moved handling of pointer comparison in pass_1 to new virtual method
taddnode.first_cmppointer. To be overriden for i8086 huge pointer comparisons. git-svn-id: trunk@28156 -
This commit is contained in:
parent
7f9fa145e8
commit
e80ecd4d5b
@ -60,6 +60,7 @@ interface
|
||||
{ the code generator for performance reasons (JM) }
|
||||
function first_add64bitint: tnode; virtual;
|
||||
function first_addpointer: tnode; virtual;
|
||||
function first_cmppointer: tnode; virtual;
|
||||
|
||||
{ override and return false if you can handle 32x32->64 }
|
||||
{ bit multiplies directly in your code generator. If }
|
||||
@ -2679,6 +2680,13 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function taddnode.first_cmppointer: tnode;
|
||||
begin
|
||||
result:=nil;
|
||||
expectloc:=LOC_FLAGS;
|
||||
end;
|
||||
|
||||
|
||||
function taddnode.first_addfloat : tnode;
|
||||
var
|
||||
procname: string[31];
|
||||
@ -3082,7 +3090,7 @@ implementation
|
||||
if nodetype in [addn,subn,muln,andn,orn,xorn] then
|
||||
result:=first_addpointer
|
||||
else
|
||||
expectloc:=LOC_FLAGS;
|
||||
result:=first_cmppointer;
|
||||
end
|
||||
|
||||
else if is_implicit_pointer_object_type(ld) then
|
||||
|
Loading…
Reference in New Issue
Block a user