mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
66 lines
2.6 KiB
Diff
66 lines
2.6 KiB
Diff
--- src/crypto/ocb_internal.cc 2022-08-04 09:34:20.000000000 +0800
|
|
+++ src/crypto/ocb_internal.cc 2024-06-04 23:09:15.000000000 +0800
|
|
@@ -220,12 +220,12 @@
|
|
}
|
|
#elif __ALTIVEC__ && _CALL_ELF != 2
|
|
#include <altivec.h>
|
|
- typedef vector unsigned block;
|
|
+ typedef __vector unsigned block;
|
|
#define xor_block(x,y) vec_xor(x,y)
|
|
#define zero_block() vec_splat_u32(0)
|
|
#define unequal_blocks(x,y) vec_any_ne(x,y)
|
|
#define swap_if_le(b) (b)
|
|
- #if __PPC64__
|
|
+ #if defined(__PPC64__) || defined(__ppc64__)
|
|
static block gen_offset(uint64_t KtopStr[3], unsigned bot) {
|
|
union {uint64_t u64[2]; block bl;} rval;
|
|
rval.u64[0] = (KtopStr[0] << bot) | (KtopStr[1] >> (64-bot));
|
|
@@ -235,34 +235,34 @@
|
|
#else
|
|
/* Special handling: Shifts are mod 32, and no 64-bit types */
|
|
static block gen_offset(uint64_t KtopStr[3], unsigned bot) {
|
|
- const vector unsigned k32 = {32,32,32,32};
|
|
- vector unsigned hi = *(vector unsigned *)(KtopStr+0);
|
|
- vector unsigned lo = *(vector unsigned *)(KtopStr+2);
|
|
- vector unsigned bot_vec;
|
|
+ const __vector unsigned k32 = {32,32,32,32};
|
|
+ __vector unsigned hi = *(__vector unsigned *)(KtopStr+0);
|
|
+ __vector unsigned lo = *(__vector unsigned *)(KtopStr+2);
|
|
+ __vector unsigned bot_vec;
|
|
if (bot < 32) {
|
|
lo = vec_sld(hi,lo,4);
|
|
} else {
|
|
- vector unsigned t = vec_sld(hi,lo,4);
|
|
+ __vector unsigned t = vec_sld(hi,lo,4);
|
|
lo = vec_sld(hi,lo,8);
|
|
hi = t;
|
|
bot = bot - 32;
|
|
}
|
|
if (bot == 0) return hi;
|
|
*(unsigned *)&bot_vec = bot;
|
|
- vector unsigned lshift = vec_splat(bot_vec,0);
|
|
- vector unsigned rshift = vec_sub(k32,lshift);
|
|
+ __vector unsigned lshift = vec_splat(bot_vec,0);
|
|
+ __vector unsigned rshift = vec_sub(k32,lshift);
|
|
hi = vec_sl(hi,lshift);
|
|
lo = vec_sr(lo,rshift);
|
|
return vec_xor(hi,lo);
|
|
}
|
|
#endif
|
|
static inline block double_block(block b) {
|
|
- const vector unsigned char mask = {135,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
|
|
- const vector unsigned char perm = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};
|
|
- const vector unsigned char shift7 = vec_splat_u8(7);
|
|
- const vector unsigned char shift1 = vec_splat_u8(1);
|
|
- vector unsigned char c = (vector unsigned char)b;
|
|
- vector unsigned char t = vec_sra(c,shift7);
|
|
+ const __vector unsigned char mask = {135,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
|
|
+ const __vector unsigned char perm = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0};
|
|
+ const __vector unsigned char shift7 = vec_splat_u8(7);
|
|
+ const __vector unsigned char shift1 = vec_splat_u8(1);
|
|
+ __vector unsigned char c = (__vector unsigned char)b;
|
|
+ __vector unsigned char t = vec_sra(c,shift7);
|
|
t = vec_and(t,mask);
|
|
t = vec_perm(t,t,perm);
|
|
c = vec_sl(c,shift1);
|