Update contrib.
1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // e32test\math\t_vfp.h
23 #define ARCH_VERSION_VFPV2 1
24 #define ARCH_VERSION_VFPV3_SUBARCH_V2 2
25 #define ARCH_VERSION_VFPV3_SUBARCH_NULL 3
26 #define ARCH_VERSION_VFPV3_SUBARCH_V3 4
31 static TUint32 Fpscr();
32 static void SetFpscr(TUint32 aVal);
34 static TReal32 SReg(TInt aReg);
35 static void SetSReg(TReal32 aVal, TInt aReg);
36 static TInt32 SRegInt(TInt aReg);
37 static void SetSReg(TInt32 aVal, TInt aReg);
39 static void AbsS(); // S0 = ABS(S1)
40 static void AddS(); // S0 = S1 + S2
41 static void CmpS(); // compare S0, S1
42 static void CmpES(); // compare S0, S1
43 static void CmpEZS(); // compare S0, 0
44 static void CmpZS(); // compare S0, 0
45 static void Cpy0S(TInt aReg); // S0 = Sn
46 static void CpyS0(TInt aReg); // Sn = S0
47 static void DivS(); // S0 = S1 / S2
48 static void MacS(); // S0 += S1 * S2
49 static void MscS(); // S0 = S1 * S2 - S0
50 static void MulS(); // S0 = S1 * S2
51 static void NegS(); // S0 = -S1
52 static void NMacS(); // S0 -= S1 * S2
53 static void NMscS(); // S0 = -S0 - S1 * S2
54 static void NMulS(); // S0 = -S1 * S2
55 static void SqrtS(); // S0 = sqrt(S1)
56 static void SubS(); // S0 = S1 - S2
58 static TReal64 DReg(TInt aReg);
59 static void SetDReg(TReal64 aVal, TInt aReg);
60 static TInt64 DRegInt(TInt aReg);
61 static void SetDReg(TInt64 aVal, TInt aReg);
62 static void AbsD(); // D0 = ABS(D1)
63 static void AddD(); // D0 = D1 + D2
64 static void CmpD(); // compare D0, D1
65 static void CmpED(); // compare D0, D1
66 static void CmpEZD(); // compare D0, 0
67 static void CmpZD(); // compare D0, 0
68 static void Cpy0D(TInt aReg); // D0 = Dn
69 static void CpyD0(TInt aReg); // Dn = D0
70 static void DivD(); // D0 = D1 / D2
71 static void MacD(); // D0 += D1 * D2
72 static void MscD(); // D0 = D1 * D2 - D0
73 static void MulD(); // D0 = D1 * D2
74 static void NegD(); // D0 = -D1
75 static void NMacD(); // D0 -= D1 * D2
76 static void NMscD(); // D0 = -D0 - D1 * D2
77 static void NMulD(); // D0 = -D1 * D2
78 static void SqrtD(); // D0 = sqrt(D1)
79 static void SubD(); // D0 = D1 - D2
81 static void CvtDS(); // D0 = S2
82 static void CvtSD(); // S0 = D1
83 static void SitoD(); // D0 = IS2
84 static void SitoS(); // S0 = IS2
85 static void TosiD(); // IS0 = D1
86 static void TosiZD(); // IS0 = D1 round towards 0
87 static void TosiS(); // IS0 = S2
88 static void TosiZS(); // IS0 = S2 round towards 0
89 static void UitoD(); // D0 = US2
90 static void UitoS(); // S0 = US2
91 static void TouiD(); // US0 = D1
92 static void TouiZD(); // US0 = D1 round towards 0
93 static void TouiS(); // US0 = S2
94 static void TouiZS(); // US0 = S2 round towards 0
97 static void ToFixedS(TInt aBits); // Convert to fixed (aBits) precision
98 static void FromFixedS(TInt aBits); // Convert from fixed (aBits) precision
99 static void TconstS2(); // S0=2
100 static void TconstS2_8(); // S0=2.875
101 static void TconstD2(); // D0=2
102 static void TconstD2_8(); // D0=2.875
106 GLREF_C TInt NeonWithF2(TAny*);
107 GLREF_C TInt NeonWithF3(TAny*);
108 GLREF_C TInt NeonWithF4x(TAny*);
109 GLREF_C TInt ThumbMode(TAny*);