# HG changeset patch # User nick # Date 1004461568 0 # Node ID 2f3c9175532cd15ad493e77428a5d87372ad1017 # Parent 6a74454ea12133783617d381495b7527b9ba3110 No longer required diff -r 6a74454ea121 -r 2f3c9175532c libvo/rgb15to16mmx.c --- a/libvo/rgb15to16mmx.c Tue Oct 30 17:04:59 2001 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -// Original by Strepto/Astral -// ported to gcc & bugfixed : A'rpi - -#include -//#include "attributes.h" -#include "mmx.h" - -void rgb15to16_mmx(char* s0,char* d0,int count){ - static uint64_t mask_b = 0x001F001F001F001FLL; // 00000000 00011111 xxB - static uint64_t mask_rg = 0x7FE07FE07FE07FE0LL; // 01111111 11100000 RGx - register char* s=s0+count; - register char* d=d0+count; - register int offs=-count; - movq_m2r (mask_b, mm4); - movq_m2r (mask_rg, mm5); - while(offs<0){ - movq_m2r (*(s+offs), mm0); - movq_r2r (mm0, mm1); - - movq_m2r (*(s+8+offs), mm2); - movq_r2r (mm2, mm3); - - pand_r2r (mm4, mm0); - pand_r2r (mm5, mm1); - - psllq_i2r(1,mm1); - pand_r2r (mm4, mm2); - - pand_r2r (mm5, mm3); - por_r2r (mm1, mm0); - - psllq_i2r(1,mm3); - movq_r2m (mm0,*(d+offs)); - - por_r2r (mm3,mm2); - movq_r2m (mm2,*(d+8+offs)); - - offs+=16; - } - emms(); -} -