Exemplo n.º 1
0
    virtual void FlushRegCache()
    {
        for (int i=0; i<16; i++) {
            FlushRegister(fr_0+i);
        }

        //Notes (Div22) :
        //x86e->Emit(op_emms); //Results in no-op due to previous mov r,m (if any)
        //x86e->Emit(op_sfence); //7-10% speed penalty
    }
Exemplo n.º 2
0
 virtual void FlushRegister_xmm(x86_sse_reg reg)
 {
     for (int i=0; i<16; i++)
     {
         fprinfo* r1=  GetInfo(fr_0+i);
         if (r1!=0 && r1->reg==reg)
         {
             FlushRegister(fr_0+i);
         }
     }
 }
Exemplo n.º 3
0
/*
 =======================================================================================================================
    If the MIPS?register is mapped, this will free it without writing it back to memory.
 =======================================================================================================================
 */
void FreeMipsRegister(int mips_reg)
{
	/*~~~~~*/
	int temp;
	/*~~~~~*/

	ConstMap[mips_reg].IsMapped = 0;
	if((temp = CheckWhereIsMipsReg(mips_reg)) > -1)
	{
		x86reg[temp].IsDirty = 0;
		FlushRegister(FLUSH_TO_MEMORY, temp);
	}
}