57 |
FUNCTION(floor) |
FUNCTION(floor) |
58 |
|
|
59 |
GLOBAL(floor) |
GLOBAL(floor) |
60 |
BST rA3,7 |
RCALL _U(__fp_split_a) ; split up in sign : exp : fraction : fraction extention |
61 |
RCALL _U(__fp_split1) ; split up in sign : exp : fraction : fraction extention |
; x T : rA3 : rA2:rA1:rA0: rAE |
|
; x T R19 R18:rSI0:R16: R1 |
|
62 |
CPI rA3,0x7F ; Exp >= 0x7F -> arg >= 1.0 |
CPI rA3,0x7F ; Exp >= 0x7F -> arg >= 1.0 |
63 |
BRCC 3f |
BRCC 3f |
64 |
BRTS 1f ; |arg| < 1.0 -> floor = / 0.0 fr X >= 0.0 |
BRTS 1f ; |arg| < 1.0 -> floor = / 0.0 fr X >= 0.0 |
73 |
LSR rA2 ; |
LSR rA2 ; |
74 |
ROR rA1 ; shift out fractional bits to the right |
ROR rA1 ; shift out fractional bits to the right |
75 |
ROR rA0 ; until mantissa is a normalized unsigned |
ROR rA0 ; until mantissa is a normalized unsigned |
76 |
adc rAE,rT1c ; rAE cleard by fp_split1, rT1c = __zero_reg__ |
adc rAE, __zero_reg__ ; rAE cleard by fp_split1 |
77 |
INC rA3 |
INC rA3 |
78 |
3: ; |arg| >= 1.0 |
3: ; |arg| >= 1.0 |
79 |
CPI rA3,0x96 ; |
CPI rA3,0x96 ; |