95 {
97}
98
99
100
101
102
103#if defined(__ARM_VFPV3__)
104 #include <cstring>
105
106
107
108
109
111 {
113 asm(
"vcvt.s32.f32 %0, %0, #16":
"+w"(
x));
114 std::memcpy(&
y, &
x,
sizeof(
y));
116 }
117 #undef SkFloatToFixed
118 #define SkFloatToFixed(x) SkFloatToFixed_arm(x)
119#endif
120
121
122
123#define SkFixedToScalar(x) SkFixedToFloat(x)
124#define SkScalarToFixed(x) SkFloatToFixed(x)
125
126
127
129
130#define SkFixed3232Max SK_MaxS64
131#define SkFixed3232Min (-SkFixed3232Max)
132
133#define SkIntToFixed3232(x) (SkLeftShift((SkFixed3232)(x), 32))
134#define SkFixed3232ToInt(x) ((int)((x) >> 32))
135#define SkFixedToFixed3232(x) (SkLeftShift((SkFixed3232)(x), 16))
136#define SkFixed3232ToFixed(x) ((SkFixed)((x) >> 16))
137#define SkFloatToFixed3232(x) sk_float_saturate2int64((x) * (65536.0f * 65536.0f))
138#define SkFixed3232ToFloat(x) (x * (1 / (65536.0f * 65536.0f)))
139
140#define SkScalarToFixed3232(x) SkFloatToFixed3232(x)
141
142#endif