1 DEF(void,primitive_fixnum_add,(void)):
3 mov -CELL_SIZE(DS_REG),ARG1
7 jo MANGLE(overflow_fixnum_add)
8 mov ARITH_TEMP_1,(DS_REG)
11 DEF(void,primitive_fixnum_subtract,(void)):
13 mov -CELL_SIZE(DS_REG),ARG0
17 jo MANGLE(overflow_fixnum_subtract)
18 mov ARITH_TEMP_1,(DS_REG)
21 DEF(void,primitive_fixnum_multiply,(void)):
22 mov (DS_REG),ARITH_TEMP_1
23 mov ARITH_TEMP_1,DIV_RESULT
24 mov -CELL_SIZE(DS_REG),ARITH_TEMP_2
29 mov DIV_RESULT,(DS_REG)
35 jmp MANGLE(overflow_fixnum_multiply)
37 DEF(F_FASTCALL void,c_to_factor,(CELL quot)):
41 /* Create register shadow area for Win64 */
44 /* Save stack pointer */
45 lea -CELL_SIZE(STACK_REG),ARG0
46 call MANGLE(save_callstack_bottom)
50 call *QUOT_XT_OFFSET(ARG0)
52 /* Tear down register shadow area */
58 DEF(F_FASTCALL void,throw_impl,(CELL quot, F_STACK_FRAME *rewind_to)):
59 /* clear x87 stack, but preserve rounding mode and exception flags */
66 jmp *QUOT_XT_OFFSET(ARG0)
68 DEF(F_FASTCALL void,lazy_jit_compile,(CELL quot)):
69 mov STACK_REG,ARG1 /* Save stack pointer */
70 sub $STACK_PADDING,STACK_REG
71 call MANGLE(lazy_jit_compile_impl)
72 mov RETURN_REG,ARG0 /* No-op on 32-bit */
73 add $STACK_PADDING,STACK_REG
74 jmp *QUOT_XT_OFFSET(ARG0) /* Call the quotation */
76 /* cpu.x86.features calls this */
77 DEF(bool,sse_version,(void)):
80 /* test $0x100000,%ecx
114 .ascii " -export:sse_version"
115 .ascii " -export:c_to_factor"