+2008-10-13 Zoltan Varga <vargaz@gmail.com>
+
+ * mini-amd64.c (mono_arch_output_basic_block): Fix the changes to
+ OP_X86_PUSH_OBJ. Fixes #434620.
+
+ * objects.cs: Add a test.
+
2008-10-12 Rodrigo Kumpera <rkumpera@novell.com>
* basic-simd.cs: Remove PackWithUnsignedSaturation tests as it turns out
amd64_lea_membase (code, AMD64_RSI, ins->inst_basereg, ins->inst_offset);
else
amd64_mov_reg_reg (code, AMD64_RSI, ins->inst_basereg, 8);
- amd64_lea_membase (code, AMD64_RDI, AMD64_RSP, (3 * 8) + (size - ins->inst_imm));
- amd64_mov_reg_imm (code, AMD64_RCX, (ins->inst_imm >> 3));
+ amd64_lea_membase (code, AMD64_RDI, AMD64_RSP, (3 * 8));
+ amd64_mov_reg_imm (code, AMD64_RCX, (size >> 3));
amd64_cld (code);
amd64_prefix (code, X86_REP_PREFIX);
amd64_movsd (code);
return pass_struct3 (1, 2, 3, 4, 5, 6, 7, 8, s, 9);
}
+ // Struct with unaligned size on 64 bit machines
+ struct Struct4 {
+ public int i, j, k, l, m;
+ public int i1, i2, i3, i4, i5, i6;
+ }
+
+ static int pass_struct4 (Struct4 s) {
+ if (s.i + s.j + s.k + s.l + s.m != 15)
+ return 1;
+ else
+ return 0;
+ }
+
+ public static int test_0_struct4_args () {
+ Struct4 s = new Struct4 ();
+ s.i = 1;
+ s.j = 2;
+ s.k = 3;
+ s.l = 4;
+ s.m = 5;
+
+ return pass_struct4 (s);
+ }
+
+
+
struct AStruct {
public int i;