diff options
author | Michal Krol <mjkrol@gmail.org> | 2006-08-09 20:05:26 +0000 |
---|---|---|
committer | Michal Krol <mjkrol@gmail.org> | 2006-08-09 20:05:26 +0000 |
commit | edefc658e4374fea96404715ce176b24942322d3 (patch) | |
tree | e5bbe94949bbf7c2db2965e9f75c854458811037 /src/mesa/x86 | |
parent | 9f344b3e7d6e23674dd4747faec253f103563b36 (diff) | |
download | external_mesa3d-edefc658e4374fea96404715ce176b24942322d3.zip external_mesa3d-edefc658e4374fea96404715ce176b24942322d3.tar.gz external_mesa3d-edefc658e4374fea96404715ce176b24942322d3.tar.bz2 |
More GLSL code - more support for vec4 operations on x86 back-end.
Diffstat (limited to 'src/mesa/x86')
-rw-r--r-- | src/mesa/x86/rtasm/x86sse.c | 14 | ||||
-rw-r--r-- | src/mesa/x86/rtasm/x86sse.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/x86/rtasm/x86sse.c b/src/mesa/x86/rtasm/x86sse.c index 6137aef..3ea37bb 100644 --- a/src/mesa/x86/rtasm/x86sse.c +++ b/src/mesa/x86/rtasm/x86sse.c @@ -367,6 +367,20 @@ void x86_sub( struct x86_function *p, emit_op_modrm(p, 0x2b, 0x29, dst, src ); } +void x86_or( struct x86_function *p, + struct x86_reg dst, + struct x86_reg src ) +{ + emit_op_modrm( p, 0x0b, 0x09, dst, src ); +} + +void x86_and( struct x86_function *p, + struct x86_reg dst, + struct x86_reg src ) +{ + emit_op_modrm( p, 0x23, 0x21, dst, src ); +} + /*********************************************************************** diff --git a/src/mesa/x86/rtasm/x86sse.h b/src/mesa/x86/rtasm/x86sse.h index 5ec5489..66fb852 100644 --- a/src/mesa/x86/rtasm/x86sse.h +++ b/src/mesa/x86/rtasm/x86sse.h @@ -172,12 +172,14 @@ void sse_rsqrtss( struct x86_function *p, struct x86_reg dst, struct x86_reg src void sse_shufps( struct x86_function *p, struct x86_reg dest, struct x86_reg arg0, GLubyte shuf ); void x86_add( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); +void x86_and( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); void x86_cmp( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); void x86_dec( struct x86_function *p, struct x86_reg reg ); void x86_inc( struct x86_function *p, struct x86_reg reg ); void x86_lea( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); void x86_mov( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); void x86_mul( struct x86_function *p, struct x86_reg src ); +void x86_or( struct x86_function *p, struct x86_reg dst, struct x86_reg src ); void x86_pop( struct x86_function *p, struct x86_reg reg ); void x86_push( struct x86_function *p, struct x86_reg reg ); void x86_ret( struct x86_function *p ); |