1 2INCLUDE "config_private.inc" 3 4SECTION code_clib 5SECTION code_l_sdcc 6 7PUBLIC __mullong 8 9EXTERN l_mulu_32_32x32 10 11__mullong: 12 13 ; multiply two 32-bit multiplicands into a 32-bit product 14 ; 15 ; enter : stack = multiplicand (32-bit), multiplicand (32-bit), ret 16 ; 17 ; exit : dehl = product 18 19 pop af 20 exx 21 pop hl 22 pop de ; dehl = multiplicand 23 exx 24 pop hl 25 pop de ; dehl = multiplicand 26 27 push de 28 push hl 29 push de 30 push hl 31 push af 32 33IF (__CLIB_OPT_IMATH <= 50) || (__SDCC_IY) 34 35 jp l_mulu_32_32x32 36 37ENDIF 38 39IF (__CLIB_OPT_IMATH > 50) && (__SDCC_IX) 40 41 push ix 42 43 call l_mulu_32_32x32 44 45 pop ix 46 ret 47 48ENDIF 49