Improvements to float support in printf_fast
[fw/sdcc] / device / lib / _fsswapargs.c
1 #define SDCC_FLOAT_LIB
2 #include <float.h>
3
4 static void dummy(void) _naked
5 {
6         _asm
7         .globl  fs_swap_a_b
8 fs_swap_a_b:
9         mov     a, exp_a
10         xch     a, exp_b
11         mov     exp_a, a
12         // is there a faster way to swap these 2 bits???
13         // this trick with psw can play havoc with the resiter bank setting
14         // mov  a, psw
15         // swap a               // depends on sign bits in psw.1 & psw.5
16         // mov  psw, a
17          mov    c, sign_a
18          rlc    a
19          mov    c, sign_b
20          mov    sign_a, c
21          rrc    a
22          mov    sign_b, c
23         mov     a, r4
24         xch     a, r7
25         mov     r4, a
26         mov     a, r3
27         xch     a, r6
28         mov     r3, a
29         mov     a, r2
30         xch     a, r5
31         mov     r2, a
32         ret
33         _endasm;
34 }
35