Revision 1f587329 target-sparc/fop_template.h

b/target-sparc/fop_template.h
77 77
    *p = u.l.upper;
78 78
}
79 79

  
80
#if defined(CONFIG_USER_ONLY)
81
/* quad floating point registers moves */
82
void OPPROTO glue(op_load_fpr_QT0_fpr, REGNAME)(void)
83
{
84
    CPU_QuadU u;
85
    uint32_t *p = (uint32_t *)®
86
    u.l.lowest = *(p + 3);
87
    u.l.lower = *(p + 2);
88
    u.l.upper = *(p + 1);
89
    u.l.upmost = *p;
90
    QT0 = u.q;
91
}
92

  
93
void OPPROTO glue(op_store_QT0_fpr_fpr, REGNAME)(void)
94
{
95
    CPU_QuadU u;
96
    uint32_t *p = (uint32_t *)®
97
    u.q = QT0;
98
    *(p + 3) = u.l.lowest;
99
    *(p + 2) = u.l.lower;
100
    *(p + 1) = u.l.upper;
101
    *p = u.l.upmost;
102
}
103

  
104
void OPPROTO glue(op_load_fpr_QT1_fpr, REGNAME)(void)
105
{
106
    CPU_QuadU u;
107
    uint32_t *p = (uint32_t *)®
108
    u.l.lowest = *(p + 3);
109
    u.l.lower = *(p + 2);
110
    u.l.upper = *(p + 1);
111
    u.l.upmost = *p;
112
    QT1 = u.q;
113
}
114

  
115
void OPPROTO glue(op_store_QT1_fpr_fpr, REGNAME)(void)
116
{
117
    CPU_QuadU u;
118
    uint32_t *p = (uint32_t *)®
119
    u.q = QT1;
120
    *(p + 3) = u.l.lowest;
121
    *(p + 2) = u.l.lower;
122
    *(p + 1) = u.l.upper;
123
    *p = u.l.upmost;
124
}
125
#endif
126

  
80 127
#undef REG
81 128
#undef REGNAME

Also available in: Unified diff