return isnan (f) ? 1 : 0;
}
- struct FooStruct {
-
- public FooStruct (long l) {
- }
+ static int first_is_zero (int v1, int v2) {
+ if (v1 != 0)
+ return -1;
+ return v2;
+ }
+ static int test_1_handle_dup_stloc () {
+ int index = 0;
+ int val = first_is_zero (index, ++index);
+ if (val != 1)
+ return 2;
+ return 1;
}
- static int test_0_calls_opcode_emulation () {
- // Test that emulated opcodes do not clobber arguments already in
- // out registers
- checked {
- long val = 10000;
- new FooStruct (val * 10000);
- }
- return 0;
+ static long return_5low () {
+ return 5;
}
- static uint dum_de_dum = 1;
- static int test_0_long_arg_opt ()
- {
- return Foo (0x1234567887654321, dum_de_dum);
+ static long return_5high () {
+ return 0x500000000;
}
-
- static int Foo (ulong x, ulong y)
- {
- if (x != 0x1234567887654321)
- return 1;
-
- if (y != 1)
- return 2;
-
- return 0;
+
+ public static int test_3_long_ret () {
+ long val = return_5low ();
+ return (int) (val - 2);
}
-
- static int test_0_long_ret_opt ()
- {
- ulong x = X ();
- if (x != 0x1234567887654321)
+
+ public static int test_1_long_ret2 () {
+ long val = return_5high ();
+ if (val > 0xffffffff)
return 1;
- ulong y = Y ();
- if (y != 1)
- return 2;
-
return 0;
}
-
- static ulong X ()
- {
- return 0x1234567887654321;
+
+ static void doit (double value, out long m) {
+ m = (long) value;
}
-
- static ulong Y ()
- {
- return dum_de_dum;
+
+ public static int test_0_ftol_clobber () {
+ long m;
+ doit (1.3, out m);
+ if (m != 1)
+ return 2;
+ return 0;
}
+
}