|
@@ -1,11 +1,11 @@
|
|
|
{****************************************************************}
|
|
|
{ CODE GENERATOR TEST PROGRAM }
|
|
|
{****************************************************************}
|
|
|
-{ NODE TESTED : secondunaryminus() }
|
|
|
+{ NODE TESTED : secondadd() }
|
|
|
{****************************************************************}
|
|
|
{ PRE-REQUISITES: secondload() }
|
|
|
{ secondassign() }
|
|
|
-{ secondtypeconv() }
|
|
|
+{ secondsetelement() }
|
|
|
{****************************************************************}
|
|
|
{ DEFINES: }
|
|
|
{ FPC = Target is FreePascal compiler }
|
|
@@ -82,10 +82,9 @@ const
|
|
|
constset1 : array[1..3] of topset =
|
|
|
(
|
|
|
{ 66 } { 210 } { 225 }
|
|
|
- { BYTE 8 }
|
|
|
- ([A_MOVE, { 66 : BYTE 8 - BIT 2 }
|
|
|
- A_FTST, { 210 : BYTE 26 - BIT 2 }
|
|
|
- A_CPSAVE]),{ 225 : BYTE 28 - BIT 1 }
|
|
|
+ ([A_MOVE, { 66 : LONG 2 - BIT 2 }
|
|
|
+ A_FTST, { 210 : LONG 6 - BIT 18 }
|
|
|
+ A_CPSAVE]),{ 225 : LONG 7 - BIT 1 }
|
|
|
{ 1..8 }
|
|
|
([A_ADD..A_ASL]),
|
|
|
{ 134 }
|
|
@@ -102,11 +101,11 @@ const
|
|
|
{ SMALL SETS }
|
|
|
constset3 : array[1..3] of tsmallset =
|
|
|
(
|
|
|
- ([DA, { 0 : BYTE 0 : bit 0 }
|
|
|
- DD, { 3 : BYTE 0 : bit 3 }
|
|
|
- DM]), { 12 : BYTE 1 : bit 4 }
|
|
|
- ([DB..DI]), { 1..8 : BYTE 0-1 : }
|
|
|
- ([DR]) { 17 : BYTE 2 : bit 1 }
|
|
|
+ ([DA, { 0 : LONG 0 : bit 0 }
|
|
|
+ DD, { 3 : LONG 0 : bit 3 }
|
|
|
+ DM]), { 12 : LONG 0 : bit 12 }
|
|
|
+ ([DB..DI]), { 1..8 : LONG 0 : bits 1-8 }
|
|
|
+ ([DR]) { 17 : LONG 0 : bit 17 }
|
|
|
);
|
|
|
|
|
|
constset4 : array[1..3] of tsmallset =
|
|
@@ -430,22 +429,21 @@ end;
|
|
|
WriteLn('Failure.');
|
|
|
end;
|
|
|
|
|
|
-(*
|
|
|
- procedure SetTestLt;
|
|
|
+ procedure SmallSetTestLt;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op2list :set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
passed : boolean;
|
|
|
begin
|
|
|
- Write('Normal Set <= Normal Set test...');
|
|
|
+ Write('Small Set <= Small Set test...');
|
|
|
passed := true;
|
|
|
- if constset1[1] <= constset2[2] then
|
|
|
+ if constset3[1] <= constset4[2] then
|
|
|
passed := false;
|
|
|
oplist := [];
|
|
|
- op2list := [A_MOVE];
|
|
|
+ op2list := [DC];
|
|
|
if op2list <= oplist then
|
|
|
passed := false;
|
|
|
- oplist := [A_MOVE,A_CPRESTORE..A_CPSAVE];
|
|
|
+ oplist := [DC,DF..DM];
|
|
|
if oplist <= op2list then
|
|
|
passed := false;
|
|
|
if passed then
|
|
@@ -454,18 +452,16 @@ end;
|
|
|
WriteLn('Failure.');
|
|
|
end;
|
|
|
|
|
|
- Procedure SetTestAddOne;
|
|
|
- { FPC_SET_SET_BYTE }
|
|
|
- { FPC_SET_ADD_SETS }
|
|
|
+ Procedure SmallSetTestAddOne;
|
|
|
var
|
|
|
- op : tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op : tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
Begin
|
|
|
- Write('Set + Set element testing...');
|
|
|
- op:=A_LABEL;
|
|
|
+ Write('Small Set + Small Set element testing...');
|
|
|
+ op:=DG;
|
|
|
oplist:=[];
|
|
|
oplist:=oplist+[op];
|
|
|
- if oplist = [A_LABEL] then
|
|
|
+ if oplist = [DG] then
|
|
|
Begin
|
|
|
WriteLn('Success.');
|
|
|
end
|
|
@@ -475,19 +471,18 @@ end;
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
-Procedure SetTestAddTwo;
|
|
|
-{ SET_ADD_SETS }
|
|
|
+Procedure SmallSetTestAddTwo;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op2list :set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
Begin
|
|
|
- Write('Complex Set + Set element testing...');
|
|
|
+ Write('Small Complex Set + Small Set element testing...');
|
|
|
op2list:=[];
|
|
|
oplist:=[];
|
|
|
- oplist:=[A_MOVE]+[A_JSR];
|
|
|
- op2list:=[A_LABEL];
|
|
|
+ oplist:=[DG]+[DI];
|
|
|
+ op2list:=[DM];
|
|
|
oplist:=op2list+oplist;
|
|
|
- if oplist = [A_MOVE,A_JSR,A_LABEL] then
|
|
|
+ if oplist = [DG,DI,DM] then
|
|
|
Begin
|
|
|
WriteLn('Success.');
|
|
|
end
|
|
@@ -498,30 +493,26 @@ Begin
|
|
|
end;
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-Procedure SetTestSubOne;
|
|
|
-{ SET_SUB_SETS }
|
|
|
+Procedure SmallSetTestSubOne;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
- op :tasmop;
|
|
|
+ op2list :set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
+ op :tsmallenum;
|
|
|
passed : boolean;
|
|
|
Begin
|
|
|
- Write('Set - Set element testing...');
|
|
|
+ Write('Small Set - Small Set element testing...');
|
|
|
passed := true;
|
|
|
op2list:=[];
|
|
|
oplist:=[];
|
|
|
- op := A_TRACS;
|
|
|
- oplist:=[A_MOVE]+[A_JSR]+[op];
|
|
|
- op2list:=[A_MOVE]+[A_JSR];
|
|
|
+ op := DL;
|
|
|
+ oplist:=[DG]+[DI]+[op];
|
|
|
+ op2list:=[DG]+[DI];
|
|
|
oplist:=oplist-op2list;
|
|
|
- if oplist <> [A_TRACS] then
|
|
|
+ if oplist <> [DL] then
|
|
|
passed := false;
|
|
|
|
|
|
- oplist:=[A_MOVE]+[A_JSR]+[op];
|
|
|
- op2list:=[A_MOVE]+[A_JSR];
|
|
|
+ oplist:=[DG]+[DI]+[op];
|
|
|
+ op2list:=[DG]+[DI];
|
|
|
oplist:=op2list-oplist;
|
|
|
if oplist <> [] then
|
|
|
passed := false;
|
|
@@ -531,25 +522,24 @@ Begin
|
|
|
WriteLn('Failure.');
|
|
|
end;
|
|
|
|
|
|
-Procedure SetTestSubTwo;
|
|
|
-{ FPC_SET_SUB_SETS }
|
|
|
+Procedure SmallSetTestSubTwo;
|
|
|
const
|
|
|
- b: tasmop = (A_BSR);
|
|
|
+ b: tsmallenum = (DH);
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
- op : tasmop;
|
|
|
+ op2list :set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
+ op : tsmallenum;
|
|
|
passed : boolean;
|
|
|
Begin
|
|
|
- Write('Complex Set - Set element testing...');
|
|
|
- op := A_BKPT;
|
|
|
+ Write('Small Complex Set - Small Set element testing...');
|
|
|
+ op := DL;
|
|
|
passed := true;
|
|
|
- oplist:=[A_MOVE]+[A_JSR]-[op];
|
|
|
- op2list:=[A_MOVE]+[A_JSR];
|
|
|
+ oplist:=[DG]+[DI]-[op];
|
|
|
+ op2list:=[DG]+[DI];
|
|
|
if oplist <> op2list then
|
|
|
passed := false;
|
|
|
- oplist := [A_MOVE];
|
|
|
- oplist := oplist - [A_MOVE];
|
|
|
+ oplist := [DG];
|
|
|
+ oplist := oplist - [DG];
|
|
|
if oplist <> [] then
|
|
|
passed := false;
|
|
|
oplist := oplist + [b];
|
|
@@ -565,26 +555,25 @@ Begin
|
|
|
end;
|
|
|
|
|
|
|
|
|
-Procedure SetTestMulSets;
|
|
|
-{ FPC_SET_MUL_SETS }
|
|
|
+Procedure SmallSetTestMulSets;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op2list : set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
passed : boolean;
|
|
|
Begin
|
|
|
passed := true;
|
|
|
- Write('Set * Set element testing...');
|
|
|
+ Write('Small Set * Small Set element testing...');
|
|
|
op2list:=[];
|
|
|
oplist:=[];
|
|
|
- oplist:=[A_MOVE]+[A_JSR];
|
|
|
- op2list:=[A_MOVE];
|
|
|
+ oplist:=[DG]+[DI];
|
|
|
+ op2list:=[DG];
|
|
|
oplist:=oplist*op2list;
|
|
|
- if oplist <> [A_JSR] then
|
|
|
+ if oplist <> [DI] then
|
|
|
passed := false;
|
|
|
- oplist := [A_MOVE,A_FTST];
|
|
|
- op2list := [A_MOVE,A_FTST];
|
|
|
+ oplist := [DG,DK];
|
|
|
+ op2list := [DG,DK];
|
|
|
oplist := oplist * op2list;
|
|
|
- if oplist <> [A_MOVE,A_FTST] then
|
|
|
+ if oplist <> [DG,DK] then
|
|
|
passed := false;
|
|
|
if passed then
|
|
|
WriteLn('Success.')
|
|
@@ -592,21 +581,21 @@ Begin
|
|
|
WriteLn('Failure.');
|
|
|
end;
|
|
|
|
|
|
-procedure SetTestRange;
|
|
|
+procedure SmallSetTestRange;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op2list :set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
passed : boolean;
|
|
|
- op1 : tasmop;
|
|
|
- op2 : tasmop;
|
|
|
+ op1 : tsmallenum;
|
|
|
+ op2 : tsmallenum;
|
|
|
begin
|
|
|
passed := true;
|
|
|
- Write('Range Set + element testing...');
|
|
|
- op1 := A_ADD;
|
|
|
- op2 := A_ASL;
|
|
|
+ Write('Small Range Set + element testing...');
|
|
|
+ op1 := DB;
|
|
|
+ op2 := DI;
|
|
|
oplist := [];
|
|
|
oplist := [op1..op2];
|
|
|
- if oplist <> constset1[2] then
|
|
|
+ if oplist <> constset3[2] then
|
|
|
passed := false;
|
|
|
if not passed then
|
|
|
WriteLn('Failure,')
|
|
@@ -614,20 +603,20 @@ begin
|
|
|
WriteLn('Success.');
|
|
|
end;
|
|
|
|
|
|
-procedure SetTestByte;
|
|
|
+procedure SmallSetTestByte;
|
|
|
var
|
|
|
- op2list :set of tasmop;
|
|
|
- oplist: set of tasmop;
|
|
|
+ op2list : set of tsmallenum;
|
|
|
+ oplist: set of tsmallenum;
|
|
|
passed : boolean;
|
|
|
- op1 : tasmop;
|
|
|
- op2 : tasmop;
|
|
|
- op : tasmop;
|
|
|
+ op1 : tsmallenum;
|
|
|
+ op2 : tsmallenum;
|
|
|
+ op : tsmallenum;
|
|
|
begin
|
|
|
- Write('Simple Set + element testing...');
|
|
|
+ Write('Small Simple Set + element testing...');
|
|
|
passed := true;
|
|
|
- op := A_LABEL;
|
|
|
- oplist := [A_MOVE,op,A_JSR];
|
|
|
- if oplist <> [A_MOVE,A_LABEL,A_JSR] then
|
|
|
+ op := DD;
|
|
|
+ oplist := [DG,op,DI];
|
|
|
+ if oplist <> [DG,DD,DI] then
|
|
|
passed := false;
|
|
|
if not passed then
|
|
|
WriteLn('Failure,')
|
|
@@ -635,109 +624,7 @@ begin
|
|
|
WriteLn('Success.');
|
|
|
end;
|
|
|
|
|
|
-
|
|
|
-Procedure SmallSetByte;
|
|
|
-{ SET_SET_BYTE }
|
|
|
-var
|
|
|
- op : myenum;
|
|
|
- oplist: set of myenum;
|
|
|
-Begin
|
|
|
- Write('TESTING SET_BYTE(1):');
|
|
|
- op:=DA;
|
|
|
- oplist:=[];
|
|
|
- oplist:=oplist+[op];
|
|
|
- if op in oplist then
|
|
|
- Begin
|
|
|
- WriteLn(' PASSED.');
|
|
|
- end
|
|
|
- else
|
|
|
- Begin
|
|
|
- WriteLn(' FAILED.');
|
|
|
- end;
|
|
|
-end;
|
|
|
-
|
|
|
-
|
|
|
-Procedure SmallAddSets;
|
|
|
-{ SET_ADD_SETS }
|
|
|
-var
|
|
|
- op2list :set of myenum;
|
|
|
- oplist: set of myenum;
|
|
|
-Begin
|
|
|
- op2list:=[];
|
|
|
- oplist:=[];
|
|
|
- oplist:=[DA]+[DC];
|
|
|
- op2list:=[DB];
|
|
|
- oplist:=op2list+oplist;
|
|
|
- if DA in oplist then
|
|
|
- if DC in oplist then
|
|
|
- if DB in oplist then
|
|
|
- WriteLn('TESTING SET_ADD_SETS: PASSED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING ADD_SETS: FAILED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING ADD_SETS: FAILED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING ADD_SETS: FAILED.')
|
|
|
-end;
|
|
|
-
|
|
|
-Procedure SmallSubsets;
|
|
|
-{ SET_SUB_SETS }
|
|
|
-var
|
|
|
- op2list :set of myenum;
|
|
|
- oplist: set of myenum;
|
|
|
-Begin
|
|
|
- op2list:=[];
|
|
|
- oplist:=[];
|
|
|
- oplist:=[DA]+[DC];
|
|
|
- op2list:=[DA]+[DC];
|
|
|
- oplist:=op2list-oplist;
|
|
|
- if (DA in oplist) or (DB in oplist) or (DC in oplist) then
|
|
|
- WriteLn('TESTING SUB_SETS: FAILED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING SUB_SETS: PASSED.')
|
|
|
-end;
|
|
|
-
|
|
|
-Procedure SmallCompSets;
|
|
|
-{ SET_COMP_SETS }
|
|
|
-var
|
|
|
- op2list :set of myenum;
|
|
|
- oplist: set of myenum;
|
|
|
-Begin
|
|
|
- op2list:=[];
|
|
|
- oplist:=[];
|
|
|
- oplist:=[DA]+[DC];
|
|
|
- op2list:=[DA]+[DC];
|
|
|
- if oplist=op2list then
|
|
|
- WriteLn('TESTING COMP_SETS(1): PASSED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING COMP_SETS(1): FAILED.');
|
|
|
- oplist:=[DA];
|
|
|
- if oplist=op2list then
|
|
|
- WriteLn('TESTING COMP_SETS(2): FAILED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING COMP_SETS(2): PASSED.');
|
|
|
-end;
|
|
|
-
|
|
|
-Procedure SmallMulSets;
|
|
|
-{ SET_COMP_SETS }
|
|
|
-var
|
|
|
- op2list :set of myenum;
|
|
|
- oplist: set of myenum;
|
|
|
-Begin
|
|
|
- op2list:=[];
|
|
|
- oplist:=[];
|
|
|
- oplist:=[DA]+[DC];
|
|
|
- op2list:=[DA];
|
|
|
- oplist:=oplist*op2list;
|
|
|
- if DC in oplist then
|
|
|
- WriteLn('TESTING MUL_SETS(1): FAILED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING MUL_SETS(1): PASSED.');
|
|
|
- if DA in oplist then
|
|
|
- WriteLn('TESTING MUL_SETS(2): PASSED.')
|
|
|
- else
|
|
|
- WriteLn('TESTING MUL_SETS(2): FAILED.')
|
|
|
-end;
|
|
|
+(*
|
|
|
|
|
|
const
|
|
|
b: myenum = (dA);
|
|
@@ -801,11 +688,21 @@ Begin
|
|
|
WriteLn('----------------------- Small sets -----------------------');
|
|
|
SmallSetTestEqual;
|
|
|
SmallSetTestNotEqual;
|
|
|
+ SmallSetTestAddOne;
|
|
|
+ SmallSetTestAddTwo;
|
|
|
+ SmallSetTestSubOne;
|
|
|
+ SmallSetTestSubTwo;
|
|
|
+ SmallSetTestRange;
|
|
|
+ SmallSetTestLt;
|
|
|
+ SmallSetTestByte;
|
|
|
end.
|
|
|
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.2 2001-06-22 02:24:40 carl
|
|
|
+ Revision 1.3 2001-06-24 22:30:19 carl
|
|
|
+ + completed small set tests
|
|
|
+
|
|
|
+ Revision 1.2 2001/06/22 02:24:40 carl
|
|
|
+ complete normal set tests
|
|
|
|
|
|
Revision 1.1 2001/06/21 02:50:44 carl
|