Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion MemXOR.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
using namespace cat;

#ifdef CAT_HAS_VECTOR_EXTENSIONS
#ifdef CAT_WORD_64
typedef u64 vec_block CAT_VECTOR_SIZE(u64, 16);
#else
typedef u32 vec_block CAT_VECTOR_SIZE(u32, 16);
#endif
#endif

void cat::memxor(void * CAT_RESTRICT voutput, const void * CAT_RESTRICT vinput, int bytes)
Expand Down Expand Up @@ -90,8 +94,13 @@ void cat::memxor(void * CAT_RESTRICT voutput, const void * CAT_RESTRICT vinput,
bytes -= 128;
}

#ifdef CAT_WORD_64
output_w = (u64 * CAT_RESTRICT)out_block;
input_w = (u64 * CAT_RESTRICT)in_block;
#else
output_w = (u32 * CAT_RESTRICT)out_block;
input_w = (u32 * CAT_RESTRICT)in_block;
#endif
}
#endif

Expand Down Expand Up @@ -184,10 +193,15 @@ void cat::memxor_set(void * CAT_RESTRICT voutput, const void * CAT_RESTRICT va,
*out_block++ = *in_block1++ ^ *in_block2++;
bytes -= 128;
}

#ifdef CAT_WORD_64
output_w = (u64 * CAT_RESTRICT)out_block;
a_w = (u64 * CAT_RESTRICT)in_block1;
b_w = (u64 * CAT_RESTRICT)in_block2;
#else
output_w = (u32 * CAT_RESTRICT)out_block;
a_w = (u32 * CAT_RESTRICT)in_block1;
b_w = (u32 * CAT_RESTRICT)in_block2;
#endif
}
#endif

Expand Down Expand Up @@ -282,9 +296,15 @@ void cat::memxor_add(void * CAT_RESTRICT voutput, const void * CAT_RESTRICT va,
bytes -= 128;
}

#ifdef CAT_WORD_64
output_w = (u64 * CAT_RESTRICT)out_block;
a_w = (u64 * CAT_RESTRICT)in_block1;
b_w = (u64 * CAT_RESTRICT)in_block2;
#else
output_w = (u32 * CAT_RESTRICT)out_block;
a_w = (u32 * CAT_RESTRICT)in_block1;
b_w = (u32 * CAT_RESTRICT)in_block2;
#endif
}
#endif

Expand Down