Skip to content

Commit 1a6ea8e

Browse files
authored
Merge pull request #2338 from kavanabhat/aix_mod
Changes to build on AIX in POWER8 mode
2 parents c6ecb19 + 6baa9b0 commit 1a6ea8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+9398
-964
lines changed

common_power.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,35 @@
3939
#ifndef COMMON_POWER
4040
#define COMMON_POWER
4141

42+
#define str(x) #x
43+
44+
#ifdef OS_AIX
45+
#define XXSPLTD(T,A,z) xxpermdi T, A, A, 0b##z##z
46+
#define XXMRGHD(T,A,B) xxpermdi T, A, B, 0b00
47+
#define XXMRGLD(T,A,B) xxpermdi T, A, B, 0b11
48+
#define XXSWAPD(T,A) xxpermdi T, A, A, 0b10
49+
#define XVMOVDP(T,A) xvcpsgndp T, A, A
50+
51+
#define XXSPLTD_S(T,A,z) "xxpermdi " str(T) ", " str(A) ", " str(A) ", 0b" str(z ## z) " \n\t"
52+
#define XXMRGHD_S(T,A,B) "xxpermdi " str(T) ", " str(A) ", " str(B) ", 0b00 \n\t"
53+
#define XXMRGLD_S(T,A,B) "xxpermdi " str(T) ", " str(A) ", " str(B) ", 0b11 \n\t"
54+
#define XXSWAPD_S(T,A) "xxpermdi " str(T) ", " str(A) ", " str(A) ", 0b10 \n\t"
55+
56+
#else
57+
#define XXSPLTD(T,A,z) xxspltd T, A, z
58+
#define XXMRGHD(T,A,B) xxmrghd T, A, B
59+
#define XXMRGLD(T,A,B) xxmrgld T, A, B
60+
#define XXSWAPD(T,A) xxswapd T, A
61+
#define XVMOVDP(T,A) xvmovdp T, A
62+
63+
#define XXSPLTD_S(T,A,z) "xxspltd " str(T) ", " str(A) ", " str(z)" \n\t"
64+
#define XXMRGHD_S(T,A,B) "xxmrghd " str(T) ", " str(A) ", " str(B)" \n\t"
65+
#define XXMRGLD_S(T,A,B) "xxmrgld " str(T) ", " str(A) ", " str(B)" \n\t"
66+
#define XXSWAPD_S(T,A) "xxswapd " str(T) ", " str(A) " \n\t"
67+
68+
#endif
69+
70+
4271
#if defined(POWER8) || defined(POWER9)
4372
#define MB __asm__ __volatile__ ("eieio":::"memory")
4473
#define WMB __asm__ __volatile__ ("eieio":::"memory")

0 commit comments

Comments
 (0)