Ignore:
Timestamp:
Dec 22, 2011, 8:33:21 PM (7 years ago)
Author:
cameron
Message:

New store/load op syntax

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/idisa_cpp/idisa_ssse3.cpp

    r1767 r1807  
    9797public:
    9898        static IDISA_ALWAYS_INLINE bitblock128_t sll(bitblock128_t arg1, bitblock128_t arg2);
    99         static IDISA_ALWAYS_INLINE bitblock128_t load_unaligned(bitblock128_t* arg1);
     99        static IDISA_ALWAYS_INLINE bitblock128_t load_unaligned(const bitblock128_t* arg1);
    100100        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock128_t srli(bitblock128_t arg1);
    101101        static IDISA_ALWAYS_INLINE bitblock128_t srl(bitblock128_t arg1, bitblock128_t arg2);
    102         static IDISA_ALWAYS_INLINE void store_aligned(bitblock128_t* arg1, bitblock128_t arg2);
     102        static IDISA_ALWAYS_INLINE void store_aligned(bitblock128_t arg1, bitblock128_t* arg2);
    103103        static IDISA_ALWAYS_INLINE bool all(bitblock128_t arg1);
    104104        static IDISA_ALWAYS_INLINE bool any(bitblock128_t arg1);
    105105        static IDISA_ALWAYS_INLINE uint64_t popcount(bitblock128_t arg1);
    106106        template <uint64_t sh> static IDISA_ALWAYS_INLINE bitblock128_t slli(bitblock128_t arg1);
    107         static IDISA_ALWAYS_INLINE bitblock128_t load_aligned(bitblock128_t* arg1);
    108         static IDISA_ALWAYS_INLINE void store_unaligned(bitblock128_t* arg1, bitblock128_t arg2);
     107        static IDISA_ALWAYS_INLINE bitblock128_t load_aligned(const bitblock128_t* arg1);
     108        static IDISA_ALWAYS_INLINE void store_unaligned(bitblock128_t arg1, bitblock128_t* arg2);
    109109};
    110110
     
    30113011
    30123012//The total number of operations is 1.0
    3013 IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_unaligned(bitblock128_t* arg1)
     3013IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_unaligned(const bitblock128_t* arg1)
    30143014{
    30153015        return _mm_loadu_si128((bitblock128_t*)(arg1));
     
    30233023
    30243024//The total number of operations is 1.0
    3025 IDISA_ALWAYS_INLINE void bitblock128::store_aligned(bitblock128_t* arg1, bitblock128_t arg2)
    3026 {
    3027         _mm_store_si128((bitblock128_t*)(arg1), arg2);
     3025IDISA_ALWAYS_INLINE void bitblock128::store_aligned(bitblock128_t arg1, bitblock128_t* arg2)
     3026{
     3027        _mm_store_si128((bitblock128_t*)(arg2), arg1);
    30283028}
    30293029
     
    30593059
    30603060//The total number of operations is 1.0
    3061 IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_aligned(bitblock128_t* arg1)
     3061IDISA_ALWAYS_INLINE bitblock128_t bitblock128::load_aligned(const bitblock128_t* arg1)
    30623062{
    30633063        return _mm_load_si128((bitblock128_t*)(arg1));
     
    30653065
    30663066//The total number of operations is 1.0
    3067 IDISA_ALWAYS_INLINE void bitblock128::store_unaligned(bitblock128_t* arg1, bitblock128_t arg2)
    3068 {
    3069         _mm_storeu_si128((bitblock128_t*)(arg1), arg2);
     3067IDISA_ALWAYS_INLINE void bitblock128::store_unaligned(bitblock128_t arg1, bitblock128_t* arg2)
     3068{
     3069        _mm_storeu_si128((bitblock128_t*)(arg2), arg1);
    30703070}
    30713071
Note: See TracChangeset for help on using the changeset viewer.