Browse Source

* test procedure uses 64bit arguments under FPC
- disabled tests with negative shift counts (illegal)

Jonas Maebe 21 years ago
parent
commit
2cff29e270
1 changed files with 37 additions and 21 deletions
  1. 37 21
      tests/test/cg/tshlshr.pp

+ 37 - 21
tests/test/cg/tshlshr.pp

@@ -28,7 +28,7 @@ Program tshlshr;
 {     - LOC_REFERENCE / LOC_MEM                      }
 {     - LOC_REGISTER                                 }
 {----------------------------------------------------}
-procedure test(value, required: longint);
+procedure test(value, required: {$ifndef fpc}longint{$else fpc}int64{$endif fpc});
 begin
   if value <> required then
     begin
@@ -100,11 +100,13 @@ Begin
    { right : LOC_REFERENCE }
    WriteLn('(left) : LOC_REFERENCE; (right) : LOC_REFERENCE');
 
+{
    longres := 1;
    longcnt := -2;
    longres:=longres shl longcnt ;
    Write('(SHL) Value should be 1073741824...');
    test(longres, 1073741824);
+}
 
    longres:=1;
    longcnt:=15;
@@ -118,11 +120,13 @@ Begin
    Write('(SHL) Value should be -32768...');
    test(longres, -32768);
 
+{
    longres := 1;
    longcnt := -2;
    longres:=longres shr longcnt ;
    Write('(SHR) Value should be 0...');
    test(longres, 0);
+}
 
    longres:=32768;
    longcnt:=15;
@@ -138,12 +142,14 @@ Begin
 
    { left : LOC_REFERENCE }
    { right : LOC_REGISRER }
+{
    WriteLn('(left) : LOC_REFERENCE; (right) : LOC_REGISTER');
    longres := 1;
    bytecnt := -2;
    longres:=longres shl bytecnt ;
    Write('(SHL) Value should be 1073741824...');
    test(longres, 1073741824);
+}
 
    longres:=1;
    bytecnt:=15;
@@ -157,11 +163,13 @@ Begin
    Write('(SHL) Value should be -32768...');
    test(longres, -32768);
 
+{
    longres := 1;
    bytecnt := -2;
    longres:=longres shr bytecnt ;
    Write('(SHR) Value should be 0...');
    test(longres, 0);
+}
 
    longres:=32768;
    bytecnt:=15;
@@ -197,50 +205,52 @@ Begin
    int64res:=1;
    int64res := int64res shl 15;
    Write('(SHL) Value should be 32768...');
-   test(int64res and $FFFFFFFF, 32768);
+   test(int64res, 32768);
 
    int64res:=-1;
    int64res := int64res shl 15;
    Write('(SHL) Value should be -32768...');
-   test(int64res and $FFFFFFFF, -32768);
+   test(int64res, -32768);
 
 
    int64res:=1;
    int64res := int64res shl 65;
    Write('(SHL) Value should be 0...');
-   test(int64res and $FFFFFFFF, 0);
+   test(int64res, 0);
 
    int64res:=$8000;
    int64res := int64res shr 15;
    Write('(SHR) Value should be 1...');
-   test(int64res and $FFFFFFFF, 1);
+   test(int64res, 1);
 
    int64res:=$FFFF;
    int64res := int64res shr 65;
    Write('(SHR) Value should be 0...');
-   test(int64res and $FFFFFFFF, 0);
+   test(int64res, 0);
 
    { left : LOC_REFERENCE }
    { right : LOC_REFERENCE }
+{
    WriteLn('(left) : LOC_REFERENCE; (right) : LOC_REFERENCE');
    int64res := 1;
    int64cnt := -2;
    int64res:=int64res shl int64cnt ;
    Write('(SHL) Value should be 1073741824...');
-   test(int64res and $FFFFFFFF, 1073741824);
+   test(int64res, 1073741824);
+}
 
    int64res:=1;
    int64cnt:=15;
    int64res := int64res shl int64cnt;
    Write('(SHL) Value should be 32768...');
-   test(int64res and $FFFFFFFF, 32768);
+   test(int64res, 32768);
 
 
    int64res:=-1;
    int64cnt := 15;
    int64res := int64res shl int64cnt;
    Write('(SHL) Value should be -32768...');
-   test(int64res and $FFFFFFFF, -32768);
+   test(int64res, -32768);
    
    int64res := 1;
    int64cnt := 33;
@@ -251,60 +261,62 @@ Begin
 {   test(int64res, 8589934592);}
 
 
+{
    int64res := 1;
    int64cnt := -2;
    int64res:=int64res shr int64cnt ;
    Write('(SHR) Value should be 0...');
    test(int64res and $FFFFFFFF, 0);
-
+}
    int64res:=32768;
    int64cnt:=15;
    int64res := int64res shr int64cnt;
    Write('(SHR) Value should be 1...');
-   test(int64res and $FFFFFFFF, 1);
+   test(int64res, 1);
 
    int64res:=-1;
    int64cnt := 15;
    int64res := int64res shl int64cnt;
    Write('(SHR) Value should be -32768...');
-   test(int64res and $FFFFFFFF, -32768);
+   test(int64res, -32768);
 
    { left : LOC_REFERENCE }
    { right : LOC_REGISRER }
-   WriteLn('(left) : LOC_REFERENCE; (right) : LOC_REGISTER');
+{ 
+  WriteLn('(left) : LOC_REFERENCE; (right) : LOC_REGISTER');
    int64res := 1;
    bytecnt := -2;
    int64res:=int64res shl bytecnt ;
    Write('(SHL) Value should be 1073741824...');
-   test(int64res and $FFFFFFFF, 1073741824);
-
+   test(int64res, 1073741824);
+}
 
    int64res:=1;
    bytecnt:=15;
    int64res := int64res shl bytecnt;
    Write('(SHL) Value should be 32768...');
-   test(int64res and $FFFFFFFF, 32768);
+   test(int64res, 32768);
 
 
    int64res:=-1;
    bytecnt := 15;
    int64res := int64res shl bytecnt;
    Write('(SHL) Value should be -32768...');
-   test(int64res and $FFFFFFFF, -32768);
-
+   test(int64res, -32768);
 
+{
    int64res := 1;
    bytecnt := -2;
    int64res:=int64res shr bytecnt ;
    Write('(SHR) Value should be 0...');
    test(int64res and $FFFFFFFF, 0);
-
+}
 
    int64res:=32768;
    bytecnt:=15;
    int64res := int64res shr bytecnt;
    Write('(SHR) Value should be 1...');
-   test(int64res and $FFFFFFFF, 1);
+   test(int64res, 1);
    
    int64res := 1;
    bytecnt := 33;
@@ -323,7 +335,11 @@ end.
 
 {
   $Log$
-  Revision 1.6  2002-09-29 14:37:22  carl
+  Revision 1.7  2003-12-07 11:59:44  jonas
+    * test procedure uses 64bit arguments under FPC
+    - disabled tests with negative shift counts (illegal)
+
+  Revision 1.6  2002/09/29 14:37:22  carl
     * must more 64-bit testing (to detect endian specific problems)
 
   Revision 1.5  2002/09/07 15:40:56  peter