* use arraydef.elesize instead of elementtype.def.size

This commit is contained in:
peter 2000-04-01 14:18:44 +00:00
parent 8550915222
commit 836eafa712
2 changed files with 17 additions and 6 deletions

View File

@ -377,7 +377,12 @@ implementation
if p^.memindex then if p^.memindex then
get_mul_size:=1 get_mul_size:=1
else else
get_mul_size:=p^.resulttype^.size; begin
if (p^.left^.resulttype^.deftype=arraydef) then
get_mul_size:=parraydef(p^.left^.resulttype)^.elesize
else
get_mul_size:=p^.resulttype^.size;
end
end; end;
procedure calc_emit_mul; procedure calc_emit_mul;
@ -942,7 +947,10 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.73 2000-03-19 11:55:08 peter Revision 1.74 2000-04-01 14:18:44 peter
* use arraydef.elesize instead of elementtype.def.size
Revision 1.73 2000/03/19 11:55:08 peter
* fixed temp ansi handling within array constructor * fixed temp ansi handling within array constructor
Revision 1.72 2000/02/18 20:53:14 pierre Revision 1.72 2000/02/18 20:53:14 pierre

View File

@ -2879,7 +2879,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
exprasmlist^.concat(new(paicpu, exprasmlist^.concat(new(paicpu,
op_const_reg(A_IMUL,S_L, op_const_reg(A_IMUL,S_L,
parraydef(pvarsym(p)^.vartype.def)^.elementtype.def^.size,R_EDI))); parraydef(pvarsym(p)^.vartype.def)^.elesize,R_EDI)));
{$ifndef NOTARGETWIN32} {$ifndef NOTARGETWIN32}
{ windows guards only a few pages for stack growing, } { windows guards only a few pages for stack growing, }
{ so we have to access every page first } { so we have to access every page first }
@ -2921,7 +2921,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
exprasmlist^.concat(new(paicpu, exprasmlist^.concat(new(paicpu,
op_const_reg(A_IMUL,S_L, op_const_reg(A_IMUL,S_L,
parraydef(pvarsym(p)^.vartype.def)^.elementtype.def^.size,R_EDI))); parraydef(pvarsym(p)^.vartype.def)^.elesize,R_EDI)));
end end
else else
{$endif NOTARGETWIN32} {$endif NOTARGETWIN32}
@ -2960,7 +2960,7 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
op_reg(A_INC,S_L,R_ECX))); op_reg(A_INC,S_L,R_ECX)));
{ calculate size } { calculate size }
len:=parraydef(pvarsym(p)^.vartype.def)^.elementtype.def^.size; len:=parraydef(pvarsym(p)^.vartype.def)^.elesize;
opsize:=S_B; opsize:=S_B;
if (len and 3)=0 then if (len and 3)=0 then
begin begin
@ -3855,7 +3855,10 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
end. end.
{ {
$Log$ $Log$
Revision 1.91 2000-03-31 22:56:46 pierre Revision 1.92 2000-04-01 14:18:45 peter
* use arraydef.elesize instead of elementtype.def.size
Revision 1.91 2000/03/31 22:56:46 pierre
* fix the handling of value parameters in cdecl function * fix the handling of value parameters in cdecl function
Revision 1.90 2000/03/28 22:31:46 pierre Revision 1.90 2000/03/28 22:31:46 pierre