1;-------------------------------------------------------- 2; File Created by SDCC : free open source ANSI-C Compiler 3; Version 4.0.7 #12017 (Linux) 4;-------------------------------------------------------- 5; Processed by Z88DK 6;-------------------------------------------------------- 7 8 EXTERN __divschar 9 EXTERN __divschar_callee 10 EXTERN __divsint 11 EXTERN __divsint_callee 12 EXTERN __divslong 13 EXTERN __divslong_callee 14 EXTERN __divslonglong 15 EXTERN __divslonglong_callee 16 EXTERN __divsuchar 17 EXTERN __divsuchar_callee 18 EXTERN __divuchar 19 EXTERN __divuchar_callee 20 EXTERN __divuint 21 EXTERN __divuint_callee 22 EXTERN __divulong 23 EXTERN __divulong_callee 24 EXTERN __divulonglong 25 EXTERN __divulonglong_callee 26 EXTERN __divuschar 27 EXTERN __divuschar_callee 28 EXTERN __modschar 29 EXTERN __modschar_callee 30 EXTERN __modsint 31 EXTERN __modsint_callee 32 EXTERN __modslong 33 EXTERN __modslong_callee 34 EXTERN __modslonglong 35 EXTERN __modslonglong_callee 36 EXTERN __modsuchar 37 EXTERN __modsuchar_callee 38 EXTERN __moduchar 39 EXTERN __moduchar_callee 40 EXTERN __moduint 41 EXTERN __moduint_callee 42 EXTERN __modulong 43 EXTERN __modulong_callee 44 EXTERN __modulonglong 45 EXTERN __modulonglong_callee 46 EXTERN __moduschar 47 EXTERN __moduschar_callee 48 EXTERN __mulint 49 EXTERN __mulint_callee 50 EXTERN __mullong 51 EXTERN __mullong_callee 52 EXTERN __mullonglong 53 EXTERN __mullonglong_callee 54 EXTERN __mulschar 55 EXTERN __mulschar_callee 56 EXTERN __mulsuchar 57 EXTERN __mulsuchar_callee 58 EXTERN __muluchar 59 EXTERN __muluchar_callee 60 EXTERN __muluschar 61 EXTERN __muluschar_callee 62 EXTERN __rlslonglong 63 EXTERN __rlslonglong_callee 64 EXTERN __rlulonglong 65 EXTERN __rlulonglong_callee 66 EXTERN __rrslonglong 67 EXTERN __rrslonglong_callee 68 EXTERN __rrulonglong 69 EXTERN __rrulonglong_callee 70 EXTERN ___sdcc_call_hl 71 EXTERN ___sdcc_call_iy 72 EXTERN ___sdcc_enter_ix 73 EXTERN banked_call 74 EXTERN _banked_ret 75 EXTERN ___fs2schar 76 EXTERN ___fs2schar_callee 77 EXTERN ___fs2sint 78 EXTERN ___fs2sint_callee 79 EXTERN ___fs2slong 80 EXTERN ___fs2slong_callee 81 EXTERN ___fs2slonglong 82 EXTERN ___fs2slonglong_callee 83 EXTERN ___fs2uchar 84 EXTERN ___fs2uchar_callee 85 EXTERN ___fs2uint 86 EXTERN ___fs2uint_callee 87 EXTERN ___fs2ulong 88 EXTERN ___fs2ulong_callee 89 EXTERN ___fs2ulonglong 90 EXTERN ___fs2ulonglong_callee 91 EXTERN ___fsadd 92 EXTERN ___fsadd_callee 93 EXTERN ___fsdiv 94 EXTERN ___fsdiv_callee 95 EXTERN ___fseq 96 EXTERN ___fseq_callee 97 EXTERN ___fsgt 98 EXTERN ___fsgt_callee 99 EXTERN ___fslt 100 EXTERN ___fslt_callee 101 EXTERN ___fsmul 102 EXTERN ___fsmul_callee 103 EXTERN ___fsneq 104 EXTERN ___fsneq_callee 105 EXTERN ___fssub 106 EXTERN ___fssub_callee 107 EXTERN ___schar2fs 108 EXTERN ___schar2fs_callee 109 EXTERN ___sint2fs 110 EXTERN ___sint2fs_callee 111 EXTERN ___slong2fs 112 EXTERN ___slong2fs_callee 113 EXTERN ___slonglong2fs 114 EXTERN ___slonglong2fs_callee 115 EXTERN ___uchar2fs 116 EXTERN ___uchar2fs_callee 117 EXTERN ___uint2fs 118 EXTERN ___uint2fs_callee 119 EXTERN ___ulong2fs 120 EXTERN ___ulong2fs_callee 121 EXTERN ___ulonglong2fs 122 EXTERN ___ulonglong2fs_callee 123 EXTERN ____sdcc_2_copy_src_mhl_dst_deix 124 EXTERN ____sdcc_2_copy_src_mhl_dst_bcix 125 EXTERN ____sdcc_4_copy_src_mhl_dst_deix 126 EXTERN ____sdcc_4_copy_src_mhl_dst_bcix 127 EXTERN ____sdcc_4_copy_src_mhl_dst_mbc 128 EXTERN ____sdcc_4_ldi_nosave_bc 129 EXTERN ____sdcc_4_ldi_save_bc 130 EXTERN ____sdcc_4_push_hlix 131 EXTERN ____sdcc_4_push_mhl 132 EXTERN ____sdcc_lib_setmem_hl 133 EXTERN ____sdcc_ll_add_de_bc_hl 134 EXTERN ____sdcc_ll_add_de_bc_hlix 135 EXTERN ____sdcc_ll_add_de_hlix_bc 136 EXTERN ____sdcc_ll_add_de_hlix_bcix 137 EXTERN ____sdcc_ll_add_deix_bc_hl 138 EXTERN ____sdcc_ll_add_deix_hlix 139 EXTERN ____sdcc_ll_add_hlix_bc_deix 140 EXTERN ____sdcc_ll_add_hlix_deix_bc 141 EXTERN ____sdcc_ll_add_hlix_deix_bcix 142 EXTERN ____sdcc_ll_asr_hlix_a 143 EXTERN ____sdcc_ll_asr_mbc_a 144 EXTERN ____sdcc_ll_copy_src_de_dst_hlix 145 EXTERN ____sdcc_ll_copy_src_de_dst_hlsp 146 EXTERN ____sdcc_ll_copy_src_deix_dst_hl 147 EXTERN ____sdcc_ll_copy_src_deix_dst_hlix 148 EXTERN ____sdcc_ll_copy_src_deixm_dst_hlsp 149 EXTERN ____sdcc_ll_copy_src_desp_dst_hlsp 150 EXTERN ____sdcc_ll_copy_src_hl_dst_de 151 EXTERN ____sdcc_ll_copy_src_hlsp_dst_de 152 EXTERN ____sdcc_ll_copy_src_hlsp_dst_deixm 153 EXTERN ____sdcc_ll_lsl_hlix_a 154 EXTERN ____sdcc_ll_lsl_mbc_a 155 EXTERN ____sdcc_ll_lsr_hlix_a 156 EXTERN ____sdcc_ll_lsr_mbc_a 157 EXTERN ____sdcc_ll_push_hlix 158 EXTERN ____sdcc_ll_push_mhl 159 EXTERN ____sdcc_ll_sub_de_bc_hl 160 EXTERN ____sdcc_ll_sub_de_bc_hlix 161 EXTERN ____sdcc_ll_sub_de_hlix_bc 162 EXTERN ____sdcc_ll_sub_de_hlix_bcix 163 EXTERN ____sdcc_ll_sub_deix_bc_hl 164 EXTERN ____sdcc_ll_sub_deix_hlix 165 EXTERN ____sdcc_ll_sub_hlix_bc_deix 166 EXTERN ____sdcc_ll_sub_hlix_deix_bc 167 EXTERN ____sdcc_ll_sub_hlix_deix_bcix 168 EXTERN ____sdcc_load_debc_deix 169 EXTERN ____sdcc_load_dehl_deix 170 EXTERN ____sdcc_load_debc_mhl 171 EXTERN ____sdcc_load_hlde_mhl 172 EXTERN ____sdcc_store_dehl_bcix 173 EXTERN ____sdcc_store_debc_hlix 174 EXTERN ____sdcc_store_debc_mhl 175 EXTERN ____sdcc_cpu_pop_ei 176 EXTERN ____sdcc_cpu_pop_ei_jp 177 EXTERN ____sdcc_cpu_push_di 178 EXTERN ____sdcc_outi 179 EXTERN ____sdcc_outi_128 180 EXTERN ____sdcc_outi_256 181 EXTERN ____sdcc_ldi 182 EXTERN ____sdcc_ldi_128 183 EXTERN ____sdcc_ldi_256 184 EXTERN ____sdcc_4_copy_srcd_hlix_dst_deix 185 EXTERN ____sdcc_4_and_src_mbc_mhl_dst_deix 186 EXTERN ____sdcc_4_or_src_mbc_mhl_dst_deix 187 EXTERN ____sdcc_4_xor_src_mbc_mhl_dst_deix 188 EXTERN ____sdcc_4_or_src_dehl_dst_bcix 189 EXTERN ____sdcc_4_xor_src_dehl_dst_bcix 190 EXTERN ____sdcc_4_and_src_dehl_dst_bcix 191 EXTERN ____sdcc_4_xor_src_mbc_mhl_dst_debc 192 EXTERN ____sdcc_4_or_src_mbc_mhl_dst_debc 193 EXTERN ____sdcc_4_and_src_mbc_mhl_dst_debc 194 EXTERN ____sdcc_4_cpl_src_mhl_dst_debc 195 EXTERN ____sdcc_4_xor_src_debc_mhl_dst_debc 196 EXTERN ____sdcc_4_or_src_debc_mhl_dst_debc 197 EXTERN ____sdcc_4_and_src_debc_mhl_dst_debc 198 EXTERN ____sdcc_4_and_src_debc_hlix_dst_debc 199 EXTERN ____sdcc_4_or_src_debc_hlix_dst_debc 200 EXTERN ____sdcc_4_xor_src_debc_hlix_dst_debc 201 202;-------------------------------------------------------- 203; Public variables in this module 204;-------------------------------------------------------- 205 GLOBAL _m32_atanf 206;-------------------------------------------------------- 207; Externals used 208;-------------------------------------------------------- 209 GLOBAL _m32_polyf 210 GLOBAL _m32_hypotf 211 GLOBAL _m32_ldexpf 212 GLOBAL _m32_frexpf 213 GLOBAL _m32_invsqrtf 214 GLOBAL _m32_sqrtf 215 GLOBAL _m32_invf 216 GLOBAL _m32_sqrf 217 GLOBAL _m32_div2f 218 GLOBAL _m32_mul2f 219 GLOBAL _m32_modff 220 GLOBAL _m32_fmodf 221 GLOBAL _m32_roundf 222 GLOBAL _m32_floorf 223 GLOBAL _m32_fabsf 224 GLOBAL _m32_ceilf 225 GLOBAL _m32_powf 226 GLOBAL _m32_log10f 227 GLOBAL _m32_log2f 228 GLOBAL _m32_logf 229 GLOBAL _m32_exp10f 230 GLOBAL _m32_exp2f 231 GLOBAL _m32_expf 232 GLOBAL _m32_atanhf 233 GLOBAL _m32_acoshf 234 GLOBAL _m32_asinhf 235 GLOBAL _m32_tanhf 236 GLOBAL _m32_coshf 237 GLOBAL _m32_sinhf 238 GLOBAL _m32_atan2f 239 GLOBAL _m32_acosf 240 GLOBAL _m32_asinf 241 GLOBAL _m32_tanf 242 GLOBAL _m32_cosf 243 GLOBAL _m32_sinf 244 GLOBAL _poly_callee 245 GLOBAL _poly 246 GLOBAL _exp10_fastcall 247 GLOBAL _exp10 248 GLOBAL _mul10u_fastcall 249 GLOBAL _mul10u 250 GLOBAL _mul2_fastcall 251 GLOBAL _mul2 252 GLOBAL _div2_fastcall 253 GLOBAL _div2 254 GLOBAL _invsqrt_fastcall 255 GLOBAL _invsqrt 256 GLOBAL _inv_fastcall 257 GLOBAL _inv 258 GLOBAL _sqr_fastcall 259 GLOBAL _sqr 260 GLOBAL _isunordered_callee 261 GLOBAL _isunordered 262 GLOBAL _islessgreater_callee 263 GLOBAL _islessgreater 264 GLOBAL _islessequal_callee 265 GLOBAL _islessequal 266 GLOBAL _isless_callee 267 GLOBAL _isless 268 GLOBAL _isgreaterequal_callee 269 GLOBAL _isgreaterequal 270 GLOBAL _isgreater_callee 271 GLOBAL _isgreater 272 GLOBAL _fma_callee 273 GLOBAL _fma 274 GLOBAL _fmin_callee 275 GLOBAL _fmin 276 GLOBAL _fmax_callee 277 GLOBAL _fmax 278 GLOBAL _fdim_callee 279 GLOBAL _fdim 280 GLOBAL _nexttoward_callee 281 GLOBAL _nexttoward 282 GLOBAL _nextafter_callee 283 GLOBAL _nextafter 284 GLOBAL _nan_fastcall 285 GLOBAL _nan 286 GLOBAL _copysign_callee 287 GLOBAL _copysign 288 GLOBAL _remquo_callee 289 GLOBAL _remquo 290 GLOBAL _remainder_callee 291 GLOBAL _remainder 292 GLOBAL _fmod_callee 293 GLOBAL _fmod 294 GLOBAL _modf_callee 295 GLOBAL _modf 296 GLOBAL _trunc_fastcall 297 GLOBAL _trunc 298 GLOBAL _lround_fastcall 299 GLOBAL _lround 300 GLOBAL _round_fastcall 301 GLOBAL _round 302 GLOBAL _lrint_fastcall 303 GLOBAL _lrint 304 GLOBAL _rint_fastcall 305 GLOBAL _rint 306 GLOBAL _nearbyint_fastcall 307 GLOBAL _nearbyint 308 GLOBAL _floor_fastcall 309 GLOBAL _floor 310 GLOBAL _ceil_fastcall 311 GLOBAL _ceil 312 GLOBAL _tgamma_fastcall 313 GLOBAL _tgamma 314 GLOBAL _lgamma_fastcall 315 GLOBAL _lgamma 316 GLOBAL _erfc_fastcall 317 GLOBAL _erfc 318 GLOBAL _erf_fastcall 319 GLOBAL _erf 320 GLOBAL _cbrt_fastcall 321 GLOBAL _cbrt 322 GLOBAL _sqrt_fastcall 323 GLOBAL _sqrt 324 GLOBAL _pow_callee 325 GLOBAL _pow 326 GLOBAL _hypot_callee 327 GLOBAL _hypot 328 GLOBAL _fabs_fastcall 329 GLOBAL _fabs 330 GLOBAL _logb_fastcall 331 GLOBAL _logb 332 GLOBAL _log2_fastcall 333 GLOBAL _log2 334 GLOBAL _log1p_fastcall 335 GLOBAL _log1p 336 GLOBAL _log10_fastcall 337 GLOBAL _log10 338 GLOBAL _log_fastcall 339 GLOBAL _log 340 GLOBAL _scalbln_callee 341 GLOBAL _scalbln 342 GLOBAL _scalbn_callee 343 GLOBAL _scalbn 344 GLOBAL _ldexp_callee 345 GLOBAL _ldexp 346 GLOBAL _ilogb_fastcall 347 GLOBAL _ilogb 348 GLOBAL _frexp_callee 349 GLOBAL _frexp 350 GLOBAL _expm1_fastcall 351 GLOBAL _expm1 352 GLOBAL _exp2_fastcall 353 GLOBAL _exp2 354 GLOBAL _exp_fastcall 355 GLOBAL _exp 356 GLOBAL _tanh_fastcall 357 GLOBAL _tanh 358 GLOBAL _sinh_fastcall 359 GLOBAL _sinh 360 GLOBAL _cosh_fastcall 361 GLOBAL _cosh 362 GLOBAL _atanh_fastcall 363 GLOBAL _atanh 364 GLOBAL _asinh_fastcall 365 GLOBAL _asinh 366 GLOBAL _acosh_fastcall 367 GLOBAL _acosh 368 GLOBAL _tan_fastcall 369 GLOBAL _tan 370 GLOBAL _sin_fastcall 371 GLOBAL _sin 372 GLOBAL _cos_fastcall 373 GLOBAL _cos 374 GLOBAL _atan2_callee 375 GLOBAL _atan2 376 GLOBAL _atan_fastcall 377 GLOBAL _atan 378 GLOBAL _asin_fastcall 379 GLOBAL _asin 380 GLOBAL _acos_fastcall 381 GLOBAL _acos 382 GLOBAL _m32_coeff_atan 383;-------------------------------------------------------- 384; special function registers 385;-------------------------------------------------------- 386;-------------------------------------------------------- 387; ram data 388;-------------------------------------------------------- 389 SECTION bss_compiler 390;-------------------------------------------------------- 391; ram data 392;-------------------------------------------------------- 393 394IF 0 395 396; .area _INITIALIZED removed by z88dk 397 398 399ENDIF 400 401;-------------------------------------------------------- 402; absolute external ram data 403;-------------------------------------------------------- 404 SECTION IGNORE 405;-------------------------------------------------------- 406; global & static initialisations 407;-------------------------------------------------------- 408 SECTION code_crt_init 409;-------------------------------------------------------- 410; Home 411;-------------------------------------------------------- 412 SECTION IGNORE 413;-------------------------------------------------------- 414; code 415;-------------------------------------------------------- 416 SECTION code_compiler 417; --------------------------------- 418; Function m32_atanf 419; --------------------------------- 420_m32_atanf: 421 push ix 422 ld ix,0 423 add ix,sp 424 ld c, l 425 ld b, h 426 ld hl, -9 427 add hl, sp 428 ld sp, hl 429 ld (ix-4),c 430 ld (ix-3),b 431 ld (ix-2),e 432 ld (ix-1),d 433 ld l,(ix-4) 434 ld h,(ix-3) 435 ld e,(ix-2) 436 ld d,(ix-1) 437 call _m32_fabsf 438 ld c,l 439 ld b,h 440 ex (sp),hl 441 ld (ix-7),e 442 ld (ix-6),d 443 ld a, d 444 and a,0x7f 445 or a, e 446 or a, b 447 or a, c 448 jr NZ,l_m32_atanf_00102 449 ld hl,0x0000 450 ld e,l 451 ld d,h 452 jp l_m32_atanf_00107 453l_m32_atanf_00102: 454 pop bc 455 pop hl 456 push hl 457 push bc 458 push hl 459 push bc 460 ld hl,0x3f80 461 push hl 462 ld hl,0x0000 463 push hl 464 call ___fslt_callee 465 ld (ix-5),l 466 ld a,l 467 or a, a 468 jr Z,l_m32_atanf_00104 469 ld l,(ix-9) 470 ld h,(ix-8) 471 ld e,(ix-7) 472 ld d,(ix-6) 473 call _m32_invf 474 ex (sp),hl 475 ld (ix-7),e 476 ld (ix-6),d 477l_m32_atanf_00104: 478 ld hl,0x0007 479 push hl 480 ld hl,_m32_coeff_atan 481 push hl 482 ld l,(ix-7) 483 ld h,(ix-6) 484 push hl 485 ld l,(ix-9) 486 ld h,(ix-8) 487 push hl 488 call _m32_polyf 489 ld a,(ix-5) 490 or a,a 491 ld c,l 492 ld b,h 493 jr Z,l_m32_atanf_00106 494 push de 495 push bc 496 ld hl,0x3fc9 497 push hl 498 ld hl,0x0fdb 499 push hl 500 call ___fssub_callee 501 ld c, l 502 ld b, h 503l_m32_atanf_00106: 504 push bc 505 push de 506 ld hl,0x0000 507 push hl 508 push hl 509 ld l,(ix-2) 510 ld h,(ix-1) 511 push hl 512 ld l,(ix-4) 513 ld h,(ix-3) 514 push hl 515 call ___fslt_callee 516 pop de 517 pop bc 518 ld a,l 519 or a, a 520 jr Z,l_m32_atanf_00109 521 ld a, d 522 xor a,0x80 523 ld d, a 524l_m32_atanf_00109: 525 ld l, c 526 ld h, b 527l_m32_atanf_00107: 528 ld sp, ix 529 pop ix 530 ret 531 SECTION IGNORE 532