|
@@ -41,6 +41,8 @@ interface
|
|
protected
|
|
protected
|
|
procedure gen_loadfpu_loc_cgpara(list: TAsmList; size: tdef; const l: tlocation; const cgpara: tcgpara; locintsize: longint); override;
|
|
procedure gen_loadfpu_loc_cgpara(list: TAsmList; size: tdef; const l: tlocation; const cgpara: tcgpara; locintsize: longint); override;
|
|
public
|
|
public
|
|
|
|
+ function getaddressregister(list:TAsmList;size:tdef):Tregister;override;
|
|
|
|
+
|
|
procedure g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister); override;
|
|
procedure g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister); override;
|
|
procedure g_releasevaluepara_openarray(list: TAsmList; arrdef: tarraydef; const l: tlocation); override;
|
|
procedure g_releasevaluepara_openarray(list: TAsmList; arrdef: tarraydef; const l: tlocation); override;
|
|
|
|
|
|
@@ -175,6 +177,15 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
+ function thlcgcpu.getaddressregister(list: TAsmList; size: tdef): Tregister;
|
|
|
|
+ begin
|
|
|
|
+ if is_farpointer(size) or is_hugepointer(size) then
|
|
|
|
+ Result:=cg.getintregister(list,OS_32)
|
|
|
|
+ else
|
|
|
|
+ Result:=cg.getintregister(list,OS_16);
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+
|
|
procedure thlcgcpu.g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister);
|
|
procedure thlcgcpu.g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister);
|
|
begin
|
|
begin
|
|
if paramanager.use_fixed_stack then
|
|
if paramanager.use_fixed_stack then
|