104 lines
2.6 KiB
C#
104 lines
2.6 KiB
C#
////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Microsoft Research Singularity
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: MmxContext.cs
|
|
//
|
|
// Note:
|
|
//
|
|
|
|
namespace Microsoft.Singularity.Isal.IX
|
|
{
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
[CLSCompliant(false)]
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
[StructAlign(16)]
|
|
[AccessedByRuntime("referenced from c++")]
|
|
internal struct uint128
|
|
{
|
|
//[AccessedByRuntime("")]
|
|
public ulong lo;
|
|
//[AccessedByRuntime("")]
|
|
public ulong hi;
|
|
}
|
|
|
|
[CLSCompliant(false)]
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
[StructAlign(16)]
|
|
[AccessedByRuntime("referenced from c++", AllFields = true)]
|
|
internal struct MmxContext
|
|
{
|
|
public ushort fcw;
|
|
public ushort fsw;
|
|
public ushort ftw;
|
|
public ushort fop;
|
|
|
|
#if ISA_IX64
|
|
public ulong ip;
|
|
public ulong dp;
|
|
#else
|
|
public uint ip;
|
|
public ushort cs;
|
|
public ushort reserved0;
|
|
|
|
public uint dp;
|
|
public ushort ds;
|
|
public ushort reserved1;
|
|
#endif
|
|
|
|
public uint mxcsr;
|
|
public uint mxcsrmask;
|
|
|
|
public uint128 st0;
|
|
public uint128 st1;
|
|
public uint128 st2;
|
|
public uint128 st3;
|
|
public uint128 st4;
|
|
public uint128 st5;
|
|
public uint128 st6;
|
|
public uint128 st7;
|
|
|
|
public uint128 xmm0;
|
|
public uint128 xmm1;
|
|
public uint128 xmm2;
|
|
public uint128 xmm3;
|
|
public uint128 xmm4;
|
|
public uint128 xmm5;
|
|
public uint128 xmm6;
|
|
public uint128 xmm7;
|
|
|
|
#if ISA_IX64
|
|
public uint128 xmm8;
|
|
public uint128 xmm9;
|
|
public uint128 xmm10;
|
|
public uint128 xmm11;
|
|
public uint128 xmm12;
|
|
public uint128 xmm13;
|
|
public uint128 xmm14;
|
|
public uint128 xmm15;
|
|
#else
|
|
public uint128 reserved2;
|
|
public uint128 reserved3;
|
|
public uint128 reserved4;
|
|
public uint128 reserved5;
|
|
public uint128 reserved6;
|
|
public uint128 reserved7;
|
|
public uint128 reserved8;
|
|
public uint128 reserved9;
|
|
#endif
|
|
|
|
public uint128 reservedA;
|
|
public uint128 reservedB;
|
|
public uint128 reservedC;
|
|
public uint128 reservedD;
|
|
public uint128 reservedE;
|
|
public uint128 reservedF;
|
|
}
|
|
}
|
|
|