Cosmos/source2/IL2PCU/Cosmos.IL2CPU.X86/X86/SSEAndMMX2/MoveSS.cs
Dokugogagoji_cp c1ab4a3f30
2009-11-04 08:18:46 +00:00

41 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cosmos.IL2CPU.X86.SSE {
[OpCode("movss")]
public class MoveSS : InstructionWithDestinationAndSource
{
public static void InitializeEncodingData( Instruction.InstructionData aData )
{
aData.EncodingOptions.Add( new InstructionData.InstructionEncodingOption
{
OpCode = new byte[] { 0xF3, 0x0F, 0x10 },
NeedsModRMByte = true,
DestinationImmediate = false,
SourceImmediate = false,
DestinationMemory = false,
SourceMemory = true,
DestinationReg = RegistersEnum.XMM0 | RegistersEnum.XMM1 | RegistersEnum.XMM2 | RegistersEnum.XMM3 | RegistersEnum.XMM4 | RegistersEnum.XMM5 | RegistersEnum.XMM6 | RegistersEnum.XMM7,
InitialModRMByteValue = 0x08,
SourceReg = RegistersEnum.XMM0 | RegistersEnum.XMM1 | RegistersEnum.XMM2 | RegistersEnum.XMM3 | RegistersEnum.XMM4 | RegistersEnum.XMM5 | RegistersEnum.XMM6 | RegistersEnum.XMM7,
ReverseRegisters = true
} );
aData.EncodingOptions.Add( new InstructionData.InstructionEncodingOption
{
OpCode = new byte[] { 0xF3, 0x0F, 0x11 },
NeedsModRMByte = true,
DestinationImmediate = false,
SourceImmediate = false,
DestinationMemory = true,
SourceMemory = false,
DestinationReg = RegistersEnum.XMM0 | RegistersEnum.XMM1 | RegistersEnum.XMM2 | RegistersEnum.XMM3 | RegistersEnum.XMM4 | RegistersEnum.XMM5 | RegistersEnum.XMM6 | RegistersEnum.XMM7,
InitialModRMByteValue = 0x08,
SourceReg = RegistersEnum.XMM0 | RegistersEnum.XMM1 | RegistersEnum.XMM2 | RegistersEnum.XMM3 | RegistersEnum.XMM4 | RegistersEnum.XMM5 | RegistersEnum.XMM6 | RegistersEnum.XMM7,
ReverseRegisters = true
} );
}
}
}