66 |
FUNCTION(ceil) |
FUNCTION(ceil) |
67 |
|
|
68 |
GLOBAL(ceil) |
GLOBAL(ceil) |
69 |
BST rA3,7 |
RCALL _U(__fp_split_a) ; split up in sign : exp : fraction : fraction extention |
70 |
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 |
|
71 |
CPI rA3,0x7F ; Exp >= 0x7F -> arg >= 1.0 |
CPI rA3,0x7F ; Exp >= 0x7F -> arg >= 1.0 |
72 |
BRCC 100f |
BRCC 100f |
73 |
BRTS 1f ; |arg| < 1.0 -> ceil = / 1.0 for X > 0.0 |
BRTS 1f ; |arg| < 1.0 -> ceil = / 1.0 for X > 0.0 |
84 |
LSR rA2 ; |
LSR rA2 ; |
85 |
ROR rA1 ; shift out fractional bits to the right |
ROR rA1 ; shift out fractional bits to the right |
86 |
ROR rA0 ; until mantissa is a normalized unsigned |
ROR rA0 ; until mantissa is a normalized unsigned |
87 |
adc rAE,rT1c ; rAE cleard by fp_split1, rT1c = __zero_reg__ |
adc rAE, __zero_reg__ ; rAE cleard by fp_split1 |
88 |
INC rA3 ; |
INC rA3 ; |
89 |
; |arg| >= 1.0 |
; |arg| >= 1.0 |
90 |
100: ; |arg| >= 1.0 |
100: ; |arg| >= 1.0 |