mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 13:06:18 +02:00
+ support near pointers, bound to a segment register in hlcg.reference_reset_base
on i8086 git-svn-id: trunk@27688 -
This commit is contained in:
parent
1eb24f9d98
commit
7da8719036
@ -253,8 +253,26 @@ implementation
|
|||||||
if is_implicit_pointer_object_type(regsize) or is_implicit_array_pointer(regsize) then
|
if is_implicit_pointer_object_type(regsize) or is_implicit_array_pointer(regsize) then
|
||||||
regsize:=voidpointertype;
|
regsize:=voidpointertype;
|
||||||
|
|
||||||
if is_farpointer(regsize) or is_hugepointer(regsize) then
|
if regsize.typ=pointerdef then
|
||||||
ref.segment:=GetNextReg(reg);
|
case tcpupointerdef(regsize).x86pointertyp of
|
||||||
|
x86pt_near:
|
||||||
|
;
|
||||||
|
x86pt_near_cs:
|
||||||
|
ref.segment:=NR_CS;
|
||||||
|
x86pt_near_ds:
|
||||||
|
ref.segment:=NR_DS;
|
||||||
|
x86pt_near_ss:
|
||||||
|
ref.segment:=NR_SS;
|
||||||
|
x86pt_near_es:
|
||||||
|
ref.segment:=NR_ES;
|
||||||
|
x86pt_near_fs:
|
||||||
|
ref.segment:=NR_FS;
|
||||||
|
x86pt_near_gs:
|
||||||
|
ref.segment:=NR_GS;
|
||||||
|
x86pt_far,
|
||||||
|
x86pt_huge:
|
||||||
|
ref.segment:=GetNextReg(reg);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user