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