1 DEF(void,primitive_fixnum_add,(void *myvm)):
2 mov ARG0, ARG2 /* save vm ptr for overflow */
4 mov -CELL_SIZE(DS_REG),ARG1
8 jo MANGLE(overflow_fixnum_add)
9 mov ARITH_TEMP_1,(DS_REG)
12 DEF(void,primitive_fixnum_subtract,(void *myvm)):
13 mov ARG0, ARG2 /* save vm ptr for overflow */
15 mov -CELL_SIZE(DS_REG),ARG0
19 jo MANGLE(overflow_fixnum_subtract)
20 mov ARITH_TEMP_1,(DS_REG)
23 DEF(void,primitive_fixnum_multiply,(void *myvm)):
24 push ARG0 /* save vm ptr for overflow */
25 mov (DS_REG),ARITH_TEMP_1
26 mov ARITH_TEMP_1,DIV_RESULT
27 mov -CELL_SIZE(DS_REG),ARITH_TEMP_2
32 mov DIV_RESULT,(DS_REG)
40 jmp MANGLE(overflow_fixnum_multiply)
43 DEF(F_FASTCALL void,c_to_factor,(CELL quot, void *vm)):
46 /* Create register shadow area for Win64 */
49 /* Save stack pointer */
50 lea -CELL_SIZE(STACK_REG),ARG0
51 push ARG1 /* save vm ptr */
52 call MANGLE(save_callstack_bottom)
57 call *QUOT_XT_OFFSET(ARG0)
59 /* Tear down register shadow area */
65 /* cpu.x86.features calls this */
66 DEF(bool,sse_version,(void)):
69 /* test $0x100000,%ecx
104 .ascii " -export:sse_version"
105 .ascii " -export:c_to_factor"