| 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 |