Revision 5fafdf24 target-arm/nwfpe/fpa11_cprt.c

b/target-arm/nwfpe/fpa11_cprt.c
55 55
  {
56 56
    case  FLT_CODE >> 20: nRc = PerformFLT(opcode); break;
57 57
    case  FIX_CODE >> 20: nRc = PerformFIX(opcode); break;
58
    
58
   
59 59
    case  WFS_CODE >> 20: writeFPSR(readRegister(getRd(opcode))); break;
60 60
    case  RFS_CODE >> 20: writeRegister(getRd(opcode),readFPSR()); break;
61 61

  
......
67 67

  
68 68
    default: nRc = 0;
69 69
  }
70
  
70
 
71 71
  return nRc;
72 72
}
73 73

  
74 74
unsigned int PerformFLT(const unsigned int opcode)
75 75
{
76 76
   FPA11 *fpa11 = GET_FPA11();
77
   
77
  
78 78
   unsigned int nRc = 1;
79 79
   SetRoundingMode(opcode);
80 80

  
......
95 95
            int32_to_float64(readRegister(getRd(opcode)), &fpa11->fp_status);
96 96
      }
97 97
      break;
98
        
98
       
99 99
      case ROUND_EXTENDED:
100 100
      {
101 101
        fpa11->fType[getFn(opcode)] = typeExtended;
......
103 103
	   int32_to_floatx80(readRegister(getRd(opcode)), &fpa11->fp_status);
104 104
      }
105 105
      break;
106
      
106
     
107 107
      default: nRc = 0;
108 108
  }
109
  
109
 
110 110
  return nRc;
111 111
}
112 112

  
......
115 115
   FPA11 *fpa11 = GET_FPA11();
116 116
   unsigned int nRc = 1;
117 117
   unsigned int Fn = getFm(opcode);
118
   
118
  
119 119
   SetRoundingMode(opcode);
120 120

  
121 121
   switch (fpa11->fType[Fn])
......
134 134
	               float64_to_int32(fpa11->fpreg[Fn].fDouble, &fpa11->fp_status));
135 135
      }
136 136
      break;
137
      	               
137
      	              
138 138
      case typeExtended:
139 139
      {
140 140
         writeRegister(getRd(opcode),
141 141
	               floatx80_to_int32(fpa11->fpreg[Fn].fExtended, &fpa11->fp_status));
142 142
      }
143 143
      break;
144
      
144
     
145 145
      default: nRc = 0;
146 146
  }
147
  
147
 
148 148
  return nRc;
149 149
}
150 150

  
151
   
151
  
152 152
static unsigned int __inline__
153 153
PerformComparisonOperation(floatx80 Fn, floatx80 Fm)
154 154
{
......
160 160
   {
161 161
      flags |= CC_NEGATIVE;
162 162
   }
163
  
163
 
164 164
   /* test for equal condition */
165 165
   if (floatx80_eq(Fn,Fm, &fpa11->fp_status))
166 166
   {
......
172 172
   {
173 173
      flags |= CC_CARRY;
174 174
   }
175
   
175
  
176 176
   writeConditionCodes(flags);
177 177
   return 1;
178 178
}
179 179

  
180 180
/* This instruction sets the flags N, Z, C, V in the FPSR. */
181
   
181
  
182 182
static unsigned int PerformComparison(const unsigned int opcode)
183 183
{
184 184
   FPA11 *fpa11 = GET_FPA11();
......
200 200
      comparison (cheaper than an 80-bit one).  */
201 201
   switch (fpa11->fType[Fn])
202 202
   {
203
      case typeSingle: 
203
      case typeSingle:
204 204
        //printk("single.\n");
205 205
	if (float32_is_nan(fpa11->fpreg[Fn].fSingle))
206 206
	   goto unordered;
207 207
        rFn = float32_to_floatx80(fpa11->fpreg[Fn].fSingle, &fpa11->fp_status);
208 208
      break;
209 209

  
210
      case typeDouble: 
210
      case typeDouble:
211 211
        //printk("double.\n");
212 212
	if (float64_is_nan(fpa11->fpreg[Fn].fDouble))
213 213
	   goto unordered;
214 214
        rFn = float64_to_floatx80(fpa11->fpreg[Fn].fDouble, &fpa11->fp_status);
215 215
      break;
216
      
217
      case typeExtended: 
216
     
217
      case typeExtended:
218 218
        //printk("extended.\n");
219 219
	if (floatx80_is_nan(fpa11->fpreg[Fn].fExtended))
220 220
	   goto unordered;
221 221
        rFn = fpa11->fpreg[Fn].fExtended;
222 222
      break;
223
      
223
     
224 224
      default: return 0;
225 225
   }
226 226

  
......
236 236
     //printk("Fm = r%d which contains a ",Fm);
237 237
      switch (fpa11->fType[Fm])
238 238
      {
239
         case typeSingle: 
239
         case typeSingle:
240 240
           //printk("single.\n");
241 241
	   if (float32_is_nan(fpa11->fpreg[Fm].fSingle))
242 242
	      goto unordered;
243 243
           rFm = float32_to_floatx80(fpa11->fpreg[Fm].fSingle, &fpa11->fp_status);
244 244
         break;
245 245

  
246
         case typeDouble: 
246
         case typeDouble:
247 247
           //printk("double.\n");
248 248
	   if (float64_is_nan(fpa11->fpreg[Fm].fDouble))
249 249
	      goto unordered;
250 250
           rFm = float64_to_floatx80(fpa11->fpreg[Fm].fDouble, &fpa11->fp_status);
251 251
         break;
252
      
253
         case typeExtended: 
252
     
253
         case typeExtended:
254 254
           //printk("extended.\n");
255 255
	   if (floatx80_is_nan(fpa11->fpreg[Fm].fExtended))
256 256
	      goto unordered;
257 257
           rFm = fpa11->fpreg[Fm].fExtended;
258 258
         break;
259
      
259
     
260 260
         default: return 0;
261 261
      }
262 262
   }

Also available in: Unified diff