Revision 5fafdf24 target-arm/nwfpe/fpopcode.c
b/target-arm/nwfpe/fpopcode.c | ||
---|---|---|
35 | 35 |
{ 0xa000000000000000ULL, 0x4001}, /* extended 5.0 */ |
36 | 36 |
{ 0x8000000000000000ULL, 0x3ffe}, /* extended 0.5 */ |
37 | 37 |
{ 0xa000000000000000ULL, 0x4002} /* extended 10.0 */ |
38 |
};
|
|
38 |
}; |
|
39 | 39 |
|
40 | 40 |
const float64 float64Constant[] = { |
41 | 41 |
0x0000000000000000ULL, /* double 0.0 */ |
... | ... | |
46 | 46 |
0x4014000000000000ULL, /* double 5.0 */ |
47 | 47 |
0x3fe0000000000000ULL, /* double 0.5 */ |
48 | 48 |
0x4024000000000000ULL /* double 10.0 */ |
49 |
};
|
|
49 |
}; |
|
50 | 50 |
|
51 | 51 |
const float32 float32Constant[] = { |
52 | 52 |
0x00000000, /* single 0.0 */ |
... | ... | |
57 | 57 |
0x40a00000, /* single 5.0 */ |
58 | 58 |
0x3f000000, /* single 0.5 */ |
59 | 59 |
0x41200000 /* single 10.0 */ |
60 |
};
|
|
60 |
}; |
|
61 | 61 |
|
62 | 62 |
unsigned int getTransferLength(const unsigned int opcode) |
63 | 63 |
{ |
64 | 64 |
unsigned int nRc; |
65 |
|
|
65 |
|
|
66 | 66 |
switch (opcode & MASK_TRANSFER_LENGTH) |
67 | 67 |
{ |
68 | 68 |
case 0x00000000: nRc = 1; break; /* single precision */ |
... | ... | |
70 | 70 |
case 0x00400000: nRc = 3; break; /* extended precision */ |
71 | 71 |
default: nRc = 0; |
72 | 72 |
} |
73 |
|
|
73 |
|
|
74 | 74 |
return(nRc); |
75 | 75 |
} |
76 | 76 |
|
77 | 77 |
unsigned int getRegisterCount(const unsigned int opcode) |
78 | 78 |
{ |
79 | 79 |
unsigned int nRc; |
80 |
|
|
80 |
|
|
81 | 81 |
switch (opcode & MASK_REGISTER_COUNT) |
82 | 82 |
{ |
83 | 83 |
case 0x00000000: nRc = 4; break; |
... | ... | |
86 | 86 |
case 0x00408000: nRc = 3; break; |
87 | 87 |
default: nRc = 0; |
88 | 88 |
} |
89 |
|
|
89 |
|
|
90 | 90 |
return(nRc); |
91 | 91 |
} |
92 | 92 |
|
93 | 93 |
unsigned int getRoundingPrecision(const unsigned int opcode) |
94 | 94 |
{ |
95 | 95 |
unsigned int nRc; |
96 |
|
|
96 |
|
|
97 | 97 |
switch (opcode & MASK_ROUNDING_PRECISION) |
98 | 98 |
{ |
99 | 99 |
case 0x00000000: nRc = 1; break; |
... | ... | |
101 | 101 |
case 0x00080000: nRc = 3; break; |
102 | 102 |
default: nRc = 0; |
103 | 103 |
} |
104 |
|
|
104 |
|
|
105 | 105 |
return(nRc); |
106 | 106 |
} |
107 | 107 |
|
108 | 108 |
unsigned int getDestinationSize(const unsigned int opcode) |
109 | 109 |
{ |
110 | 110 |
unsigned int nRc; |
111 |
|
|
111 |
|
|
112 | 112 |
switch (opcode & MASK_DESTINATION_SIZE) |
113 | 113 |
{ |
114 | 114 |
case 0x00000000: nRc = typeSingle; break; |
... | ... | |
116 | 116 |
case 0x00080000: nRc = typeExtended; break; |
117 | 117 |
default: nRc = typeNone; |
118 | 118 |
} |
119 |
|
|
119 |
|
|
120 | 120 |
return(nRc); |
121 | 121 |
} |
122 | 122 |
|
Also available in: Unified diff