* i8086 far data memory model fixes in defutil.def_cgsize

git-svn-id: trunk@27247 -
This commit is contained in:
nickysn 2014-03-23 22:14:09 +00:00
parent 97a3f50351
commit f6b18e9b8d

View File

@ -1201,8 +1201,7 @@ implementation
result:=tcgsize(ord(result)+(ord(OS_S8)-ord(OS_8))); result:=tcgsize(ord(result)+(ord(OS_S8)-ord(OS_8)));
end; end;
classrefdef, classrefdef,
pointerdef, pointerdef:
formaldef:
begin begin
{$ifdef x86} {$ifdef x86}
if (def.typ=pointerdef) and if (def.typ=pointerdef) and
@ -1218,24 +1217,16 @@ implementation
end end
else else
{$endif x86} {$endif x86}
result := OS_ADDR; result := int_cgsize(def.size);
end; end;
formaldef:
result := int_cgsize(voidpointertype.size);
procvardef: procvardef:
result:=int_cgsize(def.size); result:=int_cgsize(def.size);
stringdef : stringdef :
begin result:=int_cgsize(def.size);
if is_ansistring(def) or is_wide_or_unicode_string(def) then
result := OS_ADDR
else
result:=int_cgsize(def.size);
end;
objectdef : objectdef :
begin result:=int_cgsize(def.size);
if is_implicit_pointer_object_type(def) then
result := OS_ADDR
else
result:=int_cgsize(def.size);
end;
floatdef: floatdef:
if cs_fp_emulation in current_settings.moduleswitches then if cs_fp_emulation in current_settings.moduleswitches then
result:=int_cgsize(def.size) result:=int_cgsize(def.size)
@ -1245,15 +1236,10 @@ implementation
result:=int_cgsize(def.size); result:=int_cgsize(def.size);
arraydef : arraydef :
begin begin
if not is_special_array(def) then if is_dynamic_array(def) or not is_special_array(def) then
result := int_cgsize(def.size) result := int_cgsize(def.size)
else else
begin result := OS_NO;
if is_dynamic_array(def) then
result := OS_ADDR
else
result := OS_NO;
end;
end; end;
else else
begin begin