mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:00:52 +02:00
+ implemented thlcgcpu.a_op_const_reg with far pointer support for i8086, so
that second_class_to_intf can be converted to the high level code generator git-svn-id: trunk@32301 -
This commit is contained in:
parent
f0c6d40336
commit
ad92f4e80a
@ -74,6 +74,8 @@ interface
|
||||
procedure a_load_loc_ref(list : TAsmList;fromsize, tosize: tdef; const loc: tlocation; const ref : treference);override;
|
||||
procedure a_loadaddr_ref_reg(list : TAsmList;fromsize, tosize : tdef;const ref : treference;r : tregister);override;
|
||||
|
||||
procedure a_op_const_reg(list : TAsmList; Op: TOpCG; size: tdef; a: tcgint; reg: 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;
|
||||
|
||||
@ -380,6 +382,22 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure thlcgcpu.a_op_const_reg(list: TAsmList; Op: TOpCG; size: tdef; a: tcgint; reg: TRegister);
|
||||
begin
|
||||
{ implicit pointer types on i8086 follow the default data pointer size for
|
||||
the current memory model }
|
||||
if is_implicit_pointer_object_type(size) or is_implicit_array_pointer(size) then
|
||||
size:=voidpointertype;
|
||||
|
||||
if is_hugepointer(size) then
|
||||
internalerror(2015111201)
|
||||
else if is_farpointer(size) then
|
||||
cg.a_op_const_reg(list,Op,OS_16,a,reg)
|
||||
else
|
||||
inherited a_op_const_reg(list,Op,size,a,reg);
|
||||
end;
|
||||
|
||||
|
||||
procedure thlcgcpu.g_copyvaluepara_openarray(list: TAsmList; const ref: treference; const lenloc: tlocation; arrdef: tarraydef; destreg: tregister);
|
||||
begin
|
||||
if paramanager.use_fixed_stack then
|
||||
|
Loading…
Reference in New Issue
Block a user