2008-10-12 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Mon, 13 Oct 2008 01:13:10 +0000 (01:13 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Mon, 13 Oct 2008 01:13:10 +0000 (01:13 -0000)
commitbad54e067789117b2e578776998f66e9bbe013f4
tree4b3d862ae4f905c3db391331816b2a7bc8c6b72b
parent0e5ab50ff46f9fa409922aa34451d641c66c8911
2008-10-12  Rodrigo Kumpera  <rkumpera@novell.com>

* x86/x86-codegen.h: Add macro for sse41 ops.
Add defined for pack ops, dword shifts/mul/pack.

2008-10-12  Rodrigo Kumpera  <rkumpera@novell.com>

* basic-simd.cs: Remove PackWithUnsignedSaturation tests as it turns out
that the packuswb/packusdw don't work with unsigned numbers for what
would be negative numbers in signed format.

* cpu-x86.md: Add doubleword forms of many ops and packing ones.
Fix the len of fconv_to_r8_x and xconv_r8_to_i4.

* mini-ops.h: Add doubleword forms of many ops and packing ones.

* mini-x86.c: Emit doubleword forms of many ops and packing ones.

* simd-intrinsics.c (SimdIntrinsc): Rename the flags field to simd_version.

* simd-intrinsics.c (vector4f_intrinsics): Use simd_version field for sse3 ops.

* simd-intrinsics.c (vector4u_intrinsics): Rename to vector4ui_intrinsics and
add more ops.

* simd-intrinsics.c (simd_version_name): New function, returns the name of the
version as the enum in mini.h.

* simd-intrinsics.c (emit_intrinsics): Instead of having a special emit mode
for sse3 ops, check the simd_version field if present. This way the code
works with all versions of sse.

svn path=/trunk/mono/; revision=115610
mono/arch/ChangeLog
mono/arch/x86/x86-codegen.h
mono/mini/ChangeLog
mono/mini/basic-simd.cs
mono/mini/cpu-x86.md
mono/mini/mini-ops.h
mono/mini/mini-x86.c
mono/mini/simd-intrinsics.c