mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:12:59 +00:00
* Create a branch for USB experiments.
svn path=/branches/usb-experiments/; revision=72629
This commit is contained in:
parent
28d8ba0d3e
commit
0ee830d7a4
23049 changed files with 0 additions and 1313991 deletions
55
sdk/include/crt/ivec.h
Normal file
55
sdk/include/crt/ivec.h
Normal file
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* This file has no copyright assigned and is placed in the Public Domain.
|
||||
* This file is part of the mingw-w64 runtime package.
|
||||
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||
*/
|
||||
#ifndef _IVEC_H_INCLUDED
|
||||
#define _IVEC_H_INCLUDED
|
||||
#ifndef RC_INVOKED
|
||||
|
||||
#if !defined __cplusplus
|
||||
#error This file is only supported in C++ compilations!
|
||||
#endif
|
||||
|
||||
#include <intrin.h>
|
||||
#include <assert.h>
|
||||
#include <dvec.h>
|
||||
#include <crtdefs.h>
|
||||
|
||||
#pragma pack(push,_CRT_PACKING)
|
||||
|
||||
#if defined(_ENABLE_VEC_DEBUG)
|
||||
#include <iostream>
|
||||
#endif
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#ifdef __SSE__
|
||||
|
||||
#define _MM_QW (*((__int64*)&vec))
|
||||
|
||||
#pragma pack(push,16)
|
||||
|
||||
class M64
|
||||
{
|
||||
protected:
|
||||
__m64 vec;
|
||||
public:
|
||||
M64() {}
|
||||
M64(__m64 mm) { vec = mm; }
|
||||
M64(__int64 mm) { _MM_QW = mm; }
|
||||
M64(int i) { vec = _m_from_int(i); }
|
||||
|
||||
operator __m64() const { return vec; }
|
||||
|
||||
M64& operator&=(const M64 &a) { return *this = (M64) _m_pand(vec,a); }
|
||||
M64& operator|=(const M64 &a) { return *this = (M64) _m_por(vec,a); }
|
||||
M64& operator^=(const M64 &a) { return *this = (M64) _m_pxor(vec,a); }
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#endif /* ifdef __SSE__ */
|
||||
|
||||
#endif
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue