Disable none-working stack overflow implementation on Windows x64 full AOT.
[mono.git] / mono / mini / s390-abi.cs
index ec404b10c83a4fa759d7bb1c42dbd29e502bc54f..88f99a99493256d3c1424426bf3f9f8d6996f7b9 100644 (file)
@@ -91,9 +91,17 @@ class Tests {
                        return 3;
        }
 
-       static TestStruct3 spill_struct (TestStruct3 regStruct)
+       static TestStruct3 spill_struct (TestStruct3 regStruct, int value)
        {
-               regStruct.c = 99;
+               regStruct.c = value;
+               return(regStruct);
+       }
+
+       static TestStruct3 ret_big_struct (int value_a, int value_c)
+       {
+               TestStruct3 regStruct = new TestStruct3();
+               regStruct.a = value_a;
+               regStruct.c = value_c;
                return(regStruct);
        }
 
@@ -185,7 +193,7 @@ class Tests {
                myStruct.a = 64;        
                myStruct.b = 255;
                myStruct.c = 127;
-               myStruct = spill_struct(myStruct);
+               myStruct = spill_struct(myStruct, 99);
                if (myStruct.c == 99)
                        return 0;
                return myStruct.c;
@@ -284,6 +292,16 @@ class Tests {
                return (pass_struct_spill_big (myStruct));
        }
                
+       static int test_0_pass_ret_big_struct ()
+       {
+               TestStruct3 myStruct;
+               myStruct = ret_big_struct(10,132);
+               if (myStruct.c == 132)
+                       return 0;
+               else
+                       return 1;
+       }
+               
        static int test_0_pass_spill_struct_spill ()
        {
                TestStruct2 myStruct;
@@ -316,4 +334,38 @@ class Tests {
                        return 9;
        }
 
+       static float pass_double_ret_float(double a)
+       {
+               float b;
+               b = (float) a;
+               return b;
+       }
+
+       static int test_0_pass_double_ret_float ()
+       {
+               double a = 654.34;
+               float b = 654.34f;
+               if (pass_double_ret_float(a) == b)
+                       return 0;
+               else
+                       return 10;
+       }
+
+       static double pass_float_ret_double(float a)
+       {
+               double b;
+               b = (double) a;
+               return b;
+       }
+
+       static int test_0_pass_float_ret_double ()
+       {
+               float a = 654.34f;
+               double b = 654.34;
+               if (pass_float_ret_double(a) == b)
+                       return 0;
+               else
+                       return 11;
+       }
+
 }