diff options
author | Michal Krol <michal@ubuntu-vbox.(none)> | 2008-04-28 18:50:27 +0200 |
---|---|---|
committer | Michal Krol <michal@ubuntu-vbox.(none)> | 2008-04-28 18:50:58 +0200 |
commit | 58d3dff0d3115ddd5397b7f77b5bcf4f9ca616b6 (patch) | |
tree | 03211346223ed2171d6269d0d6fccbb39bfa2230 /src/gallium/auxiliary/rtasm/rtasm_x86sse.c | |
parent | 7f5e9d3f07f6fbfa699bef4ffff85fe0b557584a (diff) |
gallium: Generate SSE code to swizzle and unswizzle vs inputs and outputs.
Change SSE_SWIZZLES #define to 0 to disable it.
Diffstat (limited to 'src/gallium/auxiliary/rtasm/rtasm_x86sse.c')
-rw-r--r-- | src/gallium/auxiliary/rtasm/rtasm_x86sse.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/rtasm/rtasm_x86sse.c b/src/gallium/auxiliary/rtasm/rtasm_x86sse.c index e6cbe9967fa..d7e22305573 100644 --- a/src/gallium/auxiliary/rtasm/rtasm_x86sse.c +++ b/src/gallium/auxiliary/rtasm/rtasm_x86sse.c @@ -853,6 +853,20 @@ void sse_shufps( struct x86_function *p, emit_1ub(p, shuf); } +void sse_unpckhps( struct x86_function *p, struct x86_reg dst, struct x86_reg src ) +{ + DUMP_RR( dst, src ); + emit_2ub( p, X86_TWOB, 0x15 ); + emit_modrm( p, dst, src ); +} + +void sse_unpcklps( struct x86_function *p, struct x86_reg dst, struct x86_reg src ) +{ + DUMP_RR( dst, src ); + emit_2ub( p, X86_TWOB, 0x14 ); + emit_modrm( p, dst, src ); +} + void sse_cmpps( struct x86_function *p, struct x86_reg dst, struct x86_reg src, |