|
@@ -852,11 +852,13 @@ interface
|
|
{ alignment for operator }
|
|
{ alignment for operator }
|
|
tai_align_abstract = class(tai)
|
|
tai_align_abstract = class(tai)
|
|
aligntype : byte; { 1 = no align, 2 = word align, 4 = dword align }
|
|
aligntype : byte; { 1 = no align, 2 = word align, 4 = dword align }
|
|
|
|
+ maxbytes : byte; { if needed bytes would be larger than maxbyes, alignment is ignored }
|
|
fillsize : byte; { real size to fill }
|
|
fillsize : byte; { real size to fill }
|
|
fillop : byte; { value to fill with - optional }
|
|
fillop : byte; { value to fill with - optional }
|
|
use_op : boolean;
|
|
use_op : boolean;
|
|
constructor Create(b:byte);virtual;
|
|
constructor Create(b:byte);virtual;
|
|
constructor Create_op(b: byte; _op: byte);virtual;
|
|
constructor Create_op(b: byte; _op: byte);virtual;
|
|
|
|
+ constructor create_max(b: byte; max: byte);virtual;
|
|
constructor Create_zeros(b:byte);
|
|
constructor Create_zeros(b:byte);
|
|
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
|
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
procedure ppuwrite(ppufile:tcompilerppufile);override;
|
|
@@ -3110,6 +3112,21 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
+ constructor tai_align_abstract.create_max(b : byte; max : byte);
|
|
|
|
+ begin
|
|
|
|
+ inherited Create;
|
|
|
|
+ typ:=ait_align;
|
|
|
|
+ if b in [1,2,4,8,16,32] then
|
|
|
|
+ aligntype := b
|
|
|
|
+ else
|
|
|
|
+ aligntype := 1;
|
|
|
|
+ maxbytes:=max;
|
|
|
|
+ fillsize:=0;
|
|
|
|
+ fillop:=0;
|
|
|
|
+ use_op:=false;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+
|
|
constructor tai_align_abstract.Create_zeros(b: byte);
|
|
constructor tai_align_abstract.Create_zeros(b: byte);
|
|
begin
|
|
begin
|
|
inherited Create;
|
|
inherited Create;
|