1#ifndef RVL_SDK_OS_FAST_CAST_H
2#define RVL_SDK_OS_FAST_CAST_H
8#define OS_GQR_TYPE_U8 4
9#define OS_GQR_TYPE_U16 5
10#define OS_GQR_TYPE_S8 6
11#define OS_GQR_TYPE_S16 7
13static void OSInitFastCast(
void) {
35static void OSSetGQR6(
register u32 type,
register u32 scale) {
36 register u32 val = ((scale << 8 | type) << 16) | ((scale << 8) | type);
45static void OSSetGQR7(
register u32 type,
register u32 scale) {
46 register u32 val = ((scale << 8 | type) << 16) | ((scale << 8) | type);
60static f32 __OSu8tof32(
register u8* in) {
65 psq_l ret, 0(in), 1, 2
72static void OSu8tof32(u8* in,
volatile f32* out) {
73 *out = __OSu8tof32(in);
81static inline f32 __OSu16tof32(
register u16* arg) {
86 psq_l ret, 0(arg), 1, 3
93static inline void OSu16tof32(u16* in,
volatile f32* out) {
94 *out = __OSu16tof32(in);
102static f32 __OSs16tof32(
register s16* arg) {
107 psq_l ret, 0(arg), 1, 5
114static void OSs16tof32(s16* in,
volatile f32* out) {
115 *out = __OSs16tof32(in);
123static u8 __OSf32tou8(
register f32 arg) {
125 register f32* ptr = &a;
130 psq_st arg, 0(ptr), 1, 2
138static void OSf32tou8(f32* in,
volatile u8* out) {
139 *out = __OSf32tou8(*in);
142static u16 __OSf32tou16(
register f32 arg) {
144 register f32* ptr = &a;
149 psq_st arg, 0(ptr), 1, 3
157static void OSf32tou16(f32* in,
volatile u16* out) {
158 *out = __OSf32tou16(*in);
161static s16 __OSf32tos16(
register f32 arg) {
163 register f32* ptr = &a;
168 psq_st arg, 0(ptr), 1, 5
176static void OSf32tos16(f32* in,
volatile s16* out) {
177 *out = __OSf32tos16(*in);