Revision a9d9eb8f target-ppc/op_mem.h
b/target-ppc/op_mem.h | ||
---|---|---|
1054 | 1054 |
RETURN(); |
1055 | 1055 |
} |
1056 | 1056 |
|
1057 |
/* Altivec vector extension */ |
|
1058 |
#if defined(WORDS_BIGENDIAN) |
|
1059 |
#define VR_DWORD0 0 |
|
1060 |
#define VR_DWORD1 1 |
|
1061 |
#else |
|
1062 |
#define VR_DWORD0 1 |
|
1063 |
#define VR_DWORD1 0 |
|
1064 |
#endif |
|
1065 |
void OPPROTO glue(op_vr_lvx, MEMSUFFIX) (void) |
|
1066 |
{ |
|
1067 |
AVR0.u64[VR_DWORD0] = glue(ldq, MEMSUFFIX)((uint32_t)T0); |
|
1068 |
AVR0.u64[VR_DWORD1] = glue(ldq, MEMSUFFIX)((uint32_t)T0 + 8); |
|
1069 |
} |
|
1070 |
|
|
1071 |
void OPPROTO glue(op_vr_lvx_le, MEMSUFFIX) (void) |
|
1072 |
{ |
|
1073 |
AVR0.u64[VR_DWORD1] = glue(ldq, MEMSUFFIX)((uint32_t)T0); |
|
1074 |
AVR0.u64[VR_DWORD0] = glue(ldq, MEMSUFFIX)((uint32_t)T0 + 8); |
|
1075 |
} |
|
1076 |
|
|
1077 |
void OPPROTO glue(op_vr_stvx, MEMSUFFIX) (void) |
|
1078 |
{ |
|
1079 |
glue(stq, MEMSUFFIX)((uint32_t)T0, AVR0.u64[VR_DWORD0]); |
|
1080 |
glue(stq, MEMSUFFIX)((uint32_t)T0 + 8, AVR0.u64[VR_DWORD1]); |
|
1081 |
} |
|
1082 |
|
|
1083 |
void OPPROTO glue(op_vr_stvx_le, MEMSUFFIX) (void) |
|
1084 |
{ |
|
1085 |
glue(stq, MEMSUFFIX)((uint32_t)T0, AVR0.u64[VR_DWORD1]); |
|
1086 |
glue(stq, MEMSUFFIX)((uint32_t)T0 + 8, AVR0.u64[VR_DWORD0]); |
|
1087 |
} |
|
1088 |
|
|
1089 |
#if defined(TARGET_PPC64) |
|
1090 |
void OPPROTO glue(op_vr_lvx_64, MEMSUFFIX) (void) |
|
1091 |
{ |
|
1092 |
AVR0.u64[VR_DWORD0] = glue(ldq, MEMSUFFIX)((uint64_t)T0); |
|
1093 |
AVR0.u64[VR_DWORD1] = glue(ldq, MEMSUFFIX)((uint64_t)T0 + 8); |
|
1094 |
} |
|
1095 |
|
|
1096 |
void OPPROTO glue(op_vr_lvx_le_64, MEMSUFFIX) (void) |
|
1097 |
{ |
|
1098 |
AVR0.u64[VR_DWORD1] = glue(ldq, MEMSUFFIX)((uint64_t)T0); |
|
1099 |
AVR0.u64[VR_DWORD0] = glue(ldq, MEMSUFFIX)((uint64_t)T0 + 8); |
|
1100 |
} |
|
1101 |
|
|
1102 |
void OPPROTO glue(op_vr_stvx_64, MEMSUFFIX) (void) |
|
1103 |
{ |
|
1104 |
glue(stq, MEMSUFFIX)((uint64_t)T0, AVR0.u64[VR_DWORD0]); |
|
1105 |
glue(stq, MEMSUFFIX)((uint64_t)T0 + 8, AVR0.u64[VR_DWORD1]); |
|
1106 |
} |
|
1107 |
|
|
1108 |
void OPPROTO glue(op_vr_stvx_le_64, MEMSUFFIX) (void) |
|
1109 |
{ |
|
1110 |
glue(stq, MEMSUFFIX)((uint64_t)T0, AVR0.u64[VR_DWORD1]); |
|
1111 |
glue(stq, MEMSUFFIX)((uint64_t)T0 + 8, AVR0.u64[VR_DWORD0]); |
|
1112 |
} |
|
1113 |
#endif |
|
1114 |
#undef VR_DWORD0 |
|
1115 |
#undef VR_DWORD1 |
|
1116 |
|
|
1057 | 1117 |
#if defined(TARGET_PPCEMB) |
1058 | 1118 |
/* SPE extension */ |
1059 | 1119 |
#define _PPC_SPE_LD_OP(name, op) \ |
Also available in: Unified diff