~jderose/ubuntu/raring/qemu/vde-again

« back to all changes in this revision

Viewing changes to target-arm/nwfpe/single_cpdo.c

  • Committer: Bazaar Package Importer
  • Author(s): Aurelien Jarno, Aurelien Jarno
  • Date: 2008-08-25 04:38:35 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20080825043835-8e3tftavy8bujdch
Tags: 0.9.1-6
[ Aurelien Jarno ]
* debian/control: 
  - Update list of supported targets (Closes: bug#488339).
* debian/qemu-make-debian-root:
  - Use mktemp instead of $$ to create temporary directories (Closes: 
    bug#496394).
* debian/links:
  - Add missing links to manpages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
unsigned int SingleCPDO(const unsigned int opcode)
39
39
{
40
40
   FPA11 *fpa11 = GET_FPA11();
41
 
   float32 rFm, rFn;
 
41
   float32 rFm, rFn = float32_zero;
42
42
   unsigned int Fd, Fm, Fn, nRc = 1;
43
43
 
44
44
   Fm = getFm(opcode);
47
47
     rFm = getSingleConstant(Fm);
48
48
   }
49
49
   else
50
 
   {  
 
50
   {
51
51
     switch (fpa11->fType[Fm])
52
52
     {
53
53
        case typeSingle:
54
54
          rFm = fpa11->fpreg[Fm].fSingle;
55
55
        break;
56
 
        
 
56
 
57
57
        default: return 0;
58
58
     }
59
59
   }
76
76
   {
77
77
      /* dyadic opcodes */
78
78
      case ADF_CODE:
79
 
         fpa11->fpreg[Fd].fSingle = float32_add(rFn,rFm);
 
79
         fpa11->fpreg[Fd].fSingle = float32_add(rFn,rFm, &fpa11->fp_status);
80
80
      break;
81
81
 
82
82
      case MUF_CODE:
83
83
      case FML_CODE:
84
 
        fpa11->fpreg[Fd].fSingle = float32_mul(rFn,rFm);
 
84
        fpa11->fpreg[Fd].fSingle = float32_mul(rFn,rFm, &fpa11->fp_status);
85
85
      break;
86
86
 
87
87
      case SUF_CODE:
88
 
         fpa11->fpreg[Fd].fSingle = float32_sub(rFn,rFm);
 
88
         fpa11->fpreg[Fd].fSingle = float32_sub(rFn,rFm, &fpa11->fp_status);
89
89
      break;
90
90
 
91
91
      case RSF_CODE:
92
 
         fpa11->fpreg[Fd].fSingle = float32_sub(rFm,rFn);
 
92
         fpa11->fpreg[Fd].fSingle = float32_sub(rFm,rFn, &fpa11->fp_status);
93
93
      break;
94
94
 
95
95
      case DVF_CODE:
96
96
      case FDV_CODE:
97
 
         fpa11->fpreg[Fd].fSingle = float32_div(rFn,rFm);
 
97
         fpa11->fpreg[Fd].fSingle = float32_div(rFn,rFm, &fpa11->fp_status);
98
98
      break;
99
99
 
100
100
      case RDF_CODE:
101
101
      case FRD_CODE:
102
 
         fpa11->fpreg[Fd].fSingle = float32_div(rFm,rFn);
 
102
         fpa11->fpreg[Fd].fSingle = float32_div(rFm,rFn, &fpa11->fp_status);
103
103
      break;
104
104
 
105
105
#if 0
113
113
#endif
114
114
 
115
115
      case RMF_CODE:
116
 
         fpa11->fpreg[Fd].fSingle = float32_rem(rFn,rFm);
 
116
         fpa11->fpreg[Fd].fSingle = float32_rem(rFn,rFm, &fpa11->fp_status);
117
117
      break;
118
118
 
119
119
#if 0
128
128
      break;
129
129
 
130
130
      case MNF_CODE:
131
 
         rFm ^= 0x80000000;
132
 
         fpa11->fpreg[Fd].fSingle = rFm;
 
131
         fpa11->fpreg[Fd].fSingle = float32_chs(rFm);
133
132
      break;
134
133
 
135
134
      case ABS_CODE:
136
 
         rFm &= 0x7fffffff;
137
 
         fpa11->fpreg[Fd].fSingle = rFm;
 
135
         fpa11->fpreg[Fd].fSingle = float32_abs(rFm);
138
136
      break;
139
137
 
140
138
      case RND_CODE:
141
139
      case URD_CODE:
142
 
         fpa11->fpreg[Fd].fSingle = float32_round_to_int(rFm);
 
140
         fpa11->fpreg[Fd].fSingle = float32_round_to_int(rFm, &fpa11->fp_status);
143
141
      break;
144
142
 
145
143
      case SQT_CODE:
146
 
         fpa11->fpreg[Fd].fSingle = float32_sqrt(rFm);
 
144
         fpa11->fpreg[Fd].fSingle = float32_sqrt(rFm, &fpa11->fp_status);
147
145
      break;
148
146
 
149
147
#if 0
186
184
 
187
185
      case NRM_CODE:
188
186
      break;
189
 
      
 
187
 
190
188
      default:
191
189
      {
192
190
        nRc = 0;
245
243
 
246
244
float32 float32_pow(float32 rFn,float32 rFm)
247
245
{
248
 
  return float32_exp(float32_mul(rFm,float32_ln(rFn))); 
 
246
  return float32_exp(float32_mul(rFm,float32_ln(rFn)));
249
247
}
250
248
 
251
249
float32 float32_pol(float32 rFn,float32 rFm)
252
250
{
253
 
  return float32_arctan(float32_div(rFn,rFm)); 
 
251
  return float32_arctan(float32_div(rFn,rFm));
254
252
}
255
253
#endif