rtasm: add prefetch instructions

This commit is contained in:
Keith Whitwell 2008-10-02 12:46:01 +01:00
parent dd7e5a4980
commit 102daee1b8
2 changed files with 31 additions and 0 deletions

View file

@ -629,6 +629,32 @@ void x86_and( struct x86_function *p,
* SSE instructions
*/
void sse_prefetchnta( struct x86_function *p, struct x86_reg ptr)
{
DUMP_R( ptr );
assert(ptr.mod != mod_REG);
emit_2ub(p, 0x0f, 0x18);
emit_modrm_noreg(p, 0, ptr);
}
void sse_prefetch0( struct x86_function *p, struct x86_reg ptr)
{
DUMP_R( ptr );
assert(ptr.mod != mod_REG);
emit_2ub(p, 0x0f, 0x18);
emit_modrm_noreg(p, 1, ptr);
}
void sse_prefetch1( struct x86_function *p, struct x86_reg ptr)
{
DUMP_R( ptr );
assert(ptr.mod != mod_REG);
emit_2ub(p, 0x0f, 0x18);
emit_modrm_noreg(p, 2, ptr);
}
void sse_movss( struct x86_function *p,
struct x86_reg dst,

View file

@ -184,6 +184,11 @@ void sse2_pshufd( struct x86_function *p, struct x86_reg dest, struct x86_reg ar
void sse2_rcpps( struct x86_function *p, struct x86_reg dst, struct x86_reg src );
void sse2_rcpss( struct x86_function *p, struct x86_reg dst, struct x86_reg src );
void sse_prefetchnta( struct x86_function *p, struct x86_reg ptr);
void sse_prefetch0( struct x86_function *p, struct x86_reg ptr);
void sse_prefetch1( struct x86_function *p, struct x86_reg ptr);
void sse_addps( struct x86_function *p, struct x86_reg dst, struct x86_reg src );
void sse_addss( struct x86_function *p, struct x86_reg dst, struct x86_reg src );
void sse_cvtps2pi( struct x86_function *p, struct x86_reg dst, struct x86_reg src );