From 1bc4a852e1a41f2e45dd560e2402ad89888e930b Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 16 Nov 2007 00:10:34 -0500 Subject: [PATCH] Remove run.s --- vm/run.s | 1117 ------------------------------------------------------ 1 file changed, 1117 deletions(-) delete mode 100644 vm/run.s diff --git a/vm/run.s b/vm/run.s deleted file mode 100644 index 8700b6cce8..0000000000 --- a/vm/run.s +++ /dev/null @@ -1,1117 +0,0 @@ - .file "run.c" - .text - .align 0 - .global reset_datastack - .def reset_datastack; .scl 2; .type 32; .endef -reset_datastack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L3 - @ lr needed for prologue - ldr r2, [r3, #0] - ldr r1, [r2, #24] - ldr r3, [r1, #0] - sub r5, r3, #4 - mov pc, lr -.L4: - .align 0 -.L3: - .word stack_chain - .align 0 - .global reset_retainstack - .def reset_retainstack; .scl 2; .type 32; .endef -reset_retainstack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L7 - @ lr needed for prologue - ldr r2, [r3, #0] - ldr r1, [r2, #28] - ldr r3, [r1, #0] - sub r6, r3, #4 - mov pc, lr -.L8: - .align 0 -.L7: - .word stack_chain - .align 0 - .global save_stacks - .def save_stacks; .scl 2; .type 32; .endef -save_stacks: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L11 - @ lr needed for prologue - ldr r2, [r3, #0] - str r6, [r2, #12] - str r5, [r2, #8] - mov pc, lr -.L12: - .align 0 -.L11: - .word stack_chain - .align 0 - .global init_stacks - .def init_stacks; .scl 2; .type 32; .endef -init_stacks: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L15 - ldr r2, .L15+4 - str r0, [r3, #0] - ldr r3, .L15+8 - str r1, [r2, #0] - mov r1, #0 - @ lr needed for prologue - str r1, [r3, #0] - mov pc, lr -.L16: - .align 0 -.L15: - .word ds_size - .word rs_size - .word stack_chain - .align 0 - .global enable_word_profiling - .def enable_word_profiling; .scl 2; .type 32; .endef -enable_word_profiling: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L21 - ldr r2, [r0, #32] - @ lr needed for prologue - cmp r2, r3 - ldreq r3, .L21+4 - streq r3, [r0, #32] - mov pc, lr -.L22: - .align 0 -.L21: - .word docol - .word docol_profiling - .align 0 - .global disable_word_profiling - .def disable_word_profiling; .scl 2; .type 32; .endef -disable_word_profiling: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L27 - ldr r2, [r0, #32] - @ lr needed for prologue - cmp r2, r3 - ldreq r3, .L27+4 - streq r3, [r0, #32] - mov pc, lr -.L28: - .align 0 -.L27: - .word docol_profiling - .word docol - .align 0 - .global primitive_3drop - .def primitive_3drop; .scl 2; .type 32; .endef -primitive_3drop: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - sub r5, r5, #12 - ldr pc, [sp], #4 - .align 0 - .global primitive_2drop - .def primitive_2drop; .scl 2; .type 32; .endef -primitive_2drop: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - sub r5, r5, #8 - ldr pc, [sp], #4 - .align 0 - .global primitive_millis - .def primitive_millis; .scl 2; .type 32; .endef -primitive_millis: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - bl current_millis - ldr lr, [sp], #4 - b box_unsigned_8 - .align 0 - .global array_to_stack - .def array_to_stack; .scl 2; .type 32; .endef -array_to_stack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r7, lr} - ldr r4, [r0, #4] - mov r7, r1 - mov r4, r4, lsr #3 - mov r4, r4, asl #2 - add r1, r0, #8 - mov r2, r4 - mov r0, r7 - bl memcpy - add r4, r4, r7 - sub r0, r4, #4 - ldmfd sp!, {r4, r7, pc} - .align 0 - .global unnest_stacks - .def unnest_stacks; .scl 2; .type 32; .endef -unnest_stacks: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - ldr r4, .L39 - ldr r3, [r4, #0] - ldr r0, [r3, #24] - bl dealloc_segment - ldr r3, [r4, #0] - ldr r0, [r3, #28] - bl dealloc_segment - ldr r0, [r4, #0] - ldr r1, .L39+4 - ldr r2, [r0, #36] - ldr r5, [r0, #16] - ldr r6, [r0, #20] - str r2, [r1, #8] - ldr r3, [r0, #32] - str r3, [r1, #4] - ldr r2, [r0, #40] - ldr r1, [r0, #44] - ldr r3, .L39+8 - str r1, [r4, #0] - str r2, [r3, #0] - ldmfd sp!, {r4, lr} - b free -.L40: - .align 0 -.L39: - .word stack_chain - .word userenv - .word extra_roots - .align 0 - .global primitive_drop - .def primitive_drop; .scl 2; .type 32; .endef -primitive_drop: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - sub r5, r5, #4 - ldr pc, [sp], #4 - .align 0 - .global primitive_swapd - .def primitive_swapd; .scl 2; .type 32; .endef -primitive_swapd: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r1, [r5, #-4] - ldr r2, [r5, #-8] - stmdb r5, {r1, r2} @ phole stm - ldr pc, [sp], #4 - .align 0 - .global primitive_swap - .def primitive_swap; .scl 2; .type 32; .endef -primitive_swap: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r1, [r5, #0] - ldr r2, [r5, #-4] - stmda r5, {r1, r2} @ phole stm - ldr pc, [sp], #4 - .align 0 - .global primitive__rot - .def primitive__rot; .scl 2; .type 32; .endef -primitive__rot: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r0, [r5, #0] - ldmdb r5, {r1, r2} @ phole ldm - stmda r5, {r0, r1, r2} @ phole stm - ldr pc, [sp], #4 - .align 0 - .global primitive_rot - .def primitive_rot; .scl 2; .type 32; .endef -primitive_rot: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r0, [r5, #0] - ldr r2, [r5, #-8] - ldr r1, [r5, #-4] - stmda r5, {r0, r2} @ phole stm - str r1, [r5, #-8] - ldr pc, [sp], #4 - .align 0 - .global primitive_3dup - .def primitive_3dup; .scl 2; .type 32; .endef -primitive_3dup: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldmda r5, {r0, r1, r2} @ phole ldm - mov r3, r5 - add r5, r5, #12 - str r2, [r3, #12] - stmdb r5, {r0, r1} @ phole stm - ldr pc, [sp], #4 - .align 0 - .global primitive_2dup - .def primitive_2dup; .scl 2; .type 32; .endef -primitive_2dup: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r0, [r5, #0] - ldr r2, [r5, #-4] - add r1, r5, #8 - mov r5, r1 - str r2, [r5, #-4] - str r0, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_sleep - .def primitive_sleep; .scl 2; .type 32; .endef -primitive_sleep: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r3, r5 - ldr r0, [r3], #-4 - mov r5, r3 - bl to_cell - ldr lr, [sp], #4 - b sleep_millis - .align 0 - .global primitive_exit - .def primitive_exit; .scl 2; .type 32; .endef -primitive_exit: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r3, r5 - ldr r0, [r3], #-4 - mov r5, r3 - bl to_fixnum - bl exit - .align 0 - .global primitive_to_r - .def primitive_to_r; .scl 2; .type 32; .endef -primitive_to_r: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r3, r5 - ldr r1, [r3], #-4 - add r2, r6, #4 - mov r6, r2 - mov r5, r3 - str r1, [r6, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_eq - .def primitive_eq; .scl 2; .type 32; .endef -primitive_eq: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r0, r5 - ldr r1, [r5, #-4] - ldr r2, [r0], #-4 - mov r3, #7 - cmp r2, r1 - ldreq r3, .L66 - mov r5, r0 - ldreq r3, [r3, #0] - str r3, [r0, #0] - ldr pc, [sp], #4 -.L67: - .align 0 -.L66: - .word T - .align 0 - .global primitive_getenv - .def primitive_getenv; .scl 2; .type 32; .endef -primitive_getenv: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r3, [r5, #0] - ldr r2, .L70 - mov r3, r3, asr #3 - ldr r1, [r2, r3, asl #2] - str r1, [r5, #0] - ldr pc, [sp], #4 -.L71: - .align 0 -.L70: - .word userenv - .align 0 - .global primitive_2nip - .def primitive_2nip; .scl 2; .type 32; .endef -primitive_2nip: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - ldr r2, [r5, #0] - mov r3, r5 - sub r5, r5, #8 - str r2, [r3, #-8] - ldr pc, [sp], #4 - .align 0 - .global primitive_nip - .def primitive_nip; .scl 2; .type 32; .endef -primitive_nip: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r2, r5 - ldr r1, [r2], #-4 - str r1, [r5, #-4] - mov r5, r2 - ldr pc, [sp], #4 - .align 0 - .global primitive_os_env - .def primitive_os_env; .scl 2; .type 32; .endef -primitive_os_env: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - bl unbox_char_string - bl getenv - add r3, r5, #4 - cmp r0, #0 - moveq r5, r3 - moveq r3, #7 - streq r3, [r5, #0] - ldreq pc, [sp], #4 - ldr lr, [sp], #4 - b box_char_string - .align 0 - .global stack_to_array - .def stack_to_array; .scl 2; .type 32; .endef -stack_to_array: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r7, r8, lr} - mov r8, r0 - rsb r1, r8, r1 - adds r7, r1, #4 - mov r0, #8 - mov r1, r7, asr #2 - mov r3, #0 - bmi .L85 - bl allot_array_internal - mov r1, r8 - mov r4, r0 - mov r2, r7 - add r0, r0, #8 - bl memcpy - bic r4, r4, #7 - add r3, r5, #4 - mov r5, r3 - orr r4, r4, #3 - str r4, [r5, #0] - mov r3, #1 -.L85: - mov r0, r3 - ldmfd sp!, {r4, r7, r8, pc} - .align 0 - .global primitive_from_r - .def primitive_from_r; .scl 2; .type 32; .endef -primitive_from_r: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r3, r6 - ldr r1, [r3], #-4 - add r2, r5, #4 - mov r5, r2 - mov r6, r3 - str r1, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_pick - .def primitive_pick; .scl 2; .type 32; .endef -primitive_pick: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - ldr r2, [r5, #-8] - mov r3, r5 - add r5, r5, #4 - str r2, [r3, #4] - ldr pc, [sp], #4 - .align 0 - .global primitive_over - .def primitive_over; .scl 2; .type 32; .endef -primitive_over: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - ldr r2, [r5, #-4] - mov r3, r5 - add r5, r5, #4 - str r2, [r3, #4] - ldr pc, [sp], #4 - .align 0 - .global primitive_tuck - .def primitive_tuck; .scl 2; .type 32; .endef -primitive_tuck: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r0, [r5, #0] - ldr r2, [r5, #-4] - add r1, r5, #4 - mov r3, r5 - mov r5, r1 - stmda r3, {r0, r2} @ phole stm - str r0, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_dupd - .def primitive_dupd; .scl 2; .type 32; .endef -primitive_dupd: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r0, [r5, #0] - ldr r2, [r5, #-4] - add r1, r5, #4 - mov r3, r5 - mov r5, r1 - str r2, [r3, #0] - str r0, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_dup - .def primitive_dup; .scl 2; .type 32; .endef -primitive_dup: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r2, r5 - ldr r1, [r2], #4 - str r1, [r5, #4] - mov r5, r2 - ldr pc, [sp], #4 - .align 0 - .global primitive_set_slot - .def primitive_set_slot; .scl 2; .type 32; .endef -primitive_set_slot: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r0, r5 - ldr r1, [r0], #-4 - ldr ip, [r5, #-4] - ldr lr, [r0, #-4] - mov r1, r1, asr #3 - bic r3, ip, #7 - ldr r2, .L101 - str lr, [r3, r1, asl #2] - ldr r1, [r2, #0] - sub lr, r0, #4 - ldrb r3, [r1, ip, lsr #6] @ zero_extendqisi2 - mov r5, r0 - mvn r3, r3, asl #26 - mvn r3, r3, lsr #26 - mov r5, lr - sub r5, lr, #4 - strb r3, [r1, ip, lsr #6] - ldr pc, [sp], #4 -.L102: - .align 0 -.L101: - .word cards_offset - .align 0 - .global primitive_slot - .def primitive_slot; .scl 2; .type 32; .endef -primitive_slot: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r1, r5 - ldr r2, [r1], #-4 - ldr r3, [r5, #-4] - mov r2, r2, asr #3 - bic r3, r3, #7 - ldr ip, [r3, r2, asl #2] - mov r0, r5 - mov r5, r1 - sub r5, r1, #4 - mov r5, r1 - str ip, [r0, #-4] - ldr pc, [sp], #4 - .align 0 - .global primitive_setenv - .def primitive_setenv; .scl 2; .type 32; .endef -primitive_setenv: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - mov r1, r5 - ldr r3, [r1], #-4 - ldr r0, [r5, #-4] - ldr r2, .L107 - mov r3, r3, asr #3 - mov r5, r1 - sub r5, r1, #4 - str r0, [r2, r3, asl #2] - ldr pc, [sp], #4 -.L108: - .align 0 -.L107: - .word userenv - .align 0 - .global primitive_class_hash - .def primitive_class_hash; .scl 2; .type 32; .endef -primitive_class_hash: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r3, [r5, #0] - and r2, r3, #7 - cmp r2, #2 - bic r0, r3, #7 - beq .L116 - cmp r2, #3 - bic r3, r3, #7 - ldreq r3, [r3, #0] - mov r0, r2, asl #3 - streq r3, [r5, #0] - strne r0, [r5, #0] - ldr pc, [sp], #4 -.L116: - ldr r3, [r0, #8] - bic r3, r3, #7 - ldr r2, [r3, #4] - str r2, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global primitive_tag - .def primitive_tag; .scl 2; .type 32; .endef -primitive_tag: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - str lr, [sp, #-4]! - mov r0, r1 - bl save_callstack_top - ldr r3, [r5, #0] - and r3, r3, #7 - mov r3, r3, asl #3 - str r3, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global nest_stacks - .def nest_stacks; .scl 2; .type 32; .endef -nest_stacks: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - mov r0, #48 - bl safe_malloc - mov r4, r0 - ldr r0, .L121 - str r5, [r4, #16] - str r6, [r4, #20] - ldr r3, [r0, #8] - mvn r2, #0 - str r3, [r4, #36] - ldr r1, [r0, #4] - ldr r3, .L121+4 - str r1, [r4, #32] - str r2, [r4, #0] - str r2, [r4, #4] - ldr r0, [r3, #0] - bl alloc_segment - ldr r3, .L121+8 - str r0, [r4, #24] - ldr r0, [r3, #0] - bl alloc_segment - ldr r3, .L121+12 - ldr ip, [r4, #24] - ldr r2, [r3, #0] - ldr r1, .L121+16 - str r2, [r4, #40] - ldr lr, [ip, #0] - ldr r2, [r0, #0] - ldr r3, [r1, #0] - sub r5, lr, #4 - sub r6, r2, #4 - str r3, [r4, #44] - str r0, [r4, #28] - str r4, [r1, #0] - ldmfd sp!, {r4, pc} -.L122: - .align 0 -.L121: - .word userenv - .word ds_size - .word rs_size - .word extra_roots - .word stack_chain - .align 0 - .global fix_stacks - .def fix_stacks; .scl 2; .type 32; .endef -fix_stacks: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L131 - add r3, r5, #4 - ldr r2, [r2, #0] - stmfd sp!, {r4, lr} - ldr r0, [r2, #24] - add r4, r6, #256 - ldr ip, [r0, #0] - add lr, r5, #256 - cmp r3, ip - add r1, r6, #4 - bcc .L124 - ldr r3, [r0, #8] - cmp lr, r3 - bcs .L124 -.L126: - ldr r2, [r2, #28] - ldr r0, [r2, #0] - cmp r1, r0 - bcc .L127 - ldr r3, [r2, #8] - cmp r4, r3 - ldmccfd sp!, {r4, pc} -.L127: - sub r6, r0, #4 - ldmfd sp!, {r4, pc} -.L124: - sub r5, ip, #4 - b .L126 -.L132: - .align 0 -.L131: - .word stack_chain - .align 0 - .global primitive_type - .def primitive_type; .scl 2; .type 32; .endef -primitive_type: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - str lr, [sp, #-4]! - bl save_callstack_top - ldr r3, [r5, #0] - bic r1, r3, #7 - and r3, r3, #7 - cmp r3, #3 - ldreq r3, [r1, #0] - moveq r3, r3, lsr #3 - mov r3, r3, asl #3 - str r3, [r5, #0] - ldr pc, [sp], #4 - .align 0 - .global default_word_xt - .def default_word_xt; .scl 2; .type 32; .endef -default_word_xt: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L154 - ldr r0, [r0, #16] - ldr r2, [r3, #0] - str lr, [sp, #-4]! - cmp r0, r2 - ldreq r0, .L154+4 - ldreq pc, [sp], #4 - and r1, r0, #7 - cmp r1, #3 - biceq r3, r0, #7 - ldreq r2, [r3, #0] - movne r2, r1 - moveq r2, r2, lsr #3 - cmp r2, #14 - beq .L153 - cmp r1, #3 - biceq r3, r0, #7 - ldreq r2, [r3, #0] - moveq r1, r2, lsr #3 - cmp r1, #0 - ldrne r0, .L154+8 - ldrne pc, [sp], #4 - bl to_fixnum - ldr r3, .L154+12 - ldr r0, [r3, r0, asl #2] - ldr pc, [sp], #4 -.L153: - ldr r3, .L154+16 - ldr r2, .L154+20 - ldrb r1, [r3, #0] @ zero_extendqisi2 - ldr r3, .L154+24 - cmp r1, #0 - moveq r0, r2 - movne r0, r3 - ldr pc, [sp], #4 -.L155: - .align 0 -.L154: - .word T - .word dosym - .word undefined - .word primitives - .word profiling - .word docol - .word docol_profiling - .align 0 - .global primitive_profiling - .def primitive_profiling; .scl 2; .type 32; .endef -primitive_profiling: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r7, r8, lr} - mov r0, r1 - bl save_callstack_top - mov r3, r5 - ldr r0, [r3], #-4 - ldr r4, .L175 - mov r5, r3 - bl to_boolean - strb r0, [r4, #0] - bl begin_scan - ldr r8, .L175+4 - ldr r7, .L175+8 -.L173: - bl next_object - cmp r0, #7 - bic r2, r0, #7 - and r3, r0, #7 - beq .L174 -.L158: - cmp r3, #3 - ldreq r3, [r2, #0] - moveq r3, r3, lsr #3 - cmp r3, #17 - bne .L173 - ldrb r3, [r4, #0] @ zero_extendqisi2 - bic r2, r0, #7 - cmp r3, #0 - bic r0, r0, #7 - beq .L162 - ldr r3, [r2, #32] - cmp r3, r8 - streq r7, [r2, #32] - bl next_object - cmp r0, #7 - bic r2, r0, #7 - and r3, r0, #7 - bne .L158 -.L174: - ldr r3, .L175+12 - mov r2, #0 - strb r2, [r3, #0] - ldmfd sp!, {r4, r7, r8, pc} -.L162: - ldr r3, [r0, #32] - cmp r3, r7 - streq r8, [r0, #32] - b .L173 -.L176: - .align 0 -.L175: - .word profiling - .word docol - .word docol_profiling - .word gc_off - .align 0 - .global primitive_set_retainstack - .def primitive_set_retainstack; .scl 2; .type 32; .endef -primitive_set_retainstack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - stmfd sp!, {r4, r7, lr} - bl save_callstack_top - mov r3, r5 - ldr r1, [r3], #-4 - mov r0, #8 - and r2, r1, #7 - cmp r2, #3 - bic r4, r1, #7 - mov r5, r3 - ldreq r3, [r4, #0] - moveq r2, r3, lsr #3 - cmp r2, #8 - blne type_error -.L181: - ldr r3, .L184 - ldr r7, [r4, #4] - ldr r2, [r3, #0] - add r1, r4, #8 - ldr r0, [r2, #28] - mov r7, r7, lsr #3 - ldr r4, [r0, #0] - mov r7, r7, asl #2 - mov r0, r4 - mov r2, r7 - bl memcpy - add r4, r4, r7 - sub r6, r4, #4 - ldmfd sp!, {r4, r7, pc} -.L185: - .align 0 -.L184: - .word stack_chain - .align 0 - .global primitive_set_datastack - .def primitive_set_datastack; .scl 2; .type 32; .endef -primitive_set_datastack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - mov r0, r1 - stmfd sp!, {r4, r7, lr} - bl save_callstack_top - mov r3, r5 - ldr r1, [r3], #-4 - mov r0, #8 - and r2, r1, #7 - cmp r2, #3 - bic r4, r1, #7 - mov r5, r3 - ldreq r3, [r4, #0] - moveq r2, r3, lsr #3 - cmp r2, #8 - blne type_error -.L190: - ldr r3, .L193 - ldr r7, [r4, #4] - ldr r2, [r3, #0] - add r1, r4, #8 - ldr r0, [r2, #24] - mov r7, r7, lsr #3 - ldr r4, [r0, #0] - mov r7, r7, asl #2 - mov r0, r4 - mov r2, r7 - bl memcpy - add r4, r4, r7 - sub r5, r4, #4 - ldmfd sp!, {r4, r7, pc} -.L194: - .align 0 -.L193: - .word stack_chain - .align 0 - .global primitive_retainstack - .def primitive_retainstack; .scl 2; .type 32; .endef -primitive_retainstack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r7, r8, lr} - mov r0, r1 - bl save_callstack_top - ldr ip, .L200 - mov r1, #7 - ldr lr, [ip, #0] - mov r0, #8 - ldr r4, [lr, #28] - mov r2, r1 - ldr r8, [r4, #0] - mov r3, #0 - rsb ip, r8, r6 - adds r7, ip, #4 - bmi .L196 - mov r1, r7, asr #2 - bl allot_array_internal - mov r1, r8 - mov r4, r0 - mov r2, r7 - add r0, r0, #8 - bl memcpy - bic r4, r4, #7 - add r3, r5, #4 - mov r5, r3 - orr r4, r4, #3 - str r4, [r5, #0] - ldmfd sp!, {r4, r7, r8, pc} -.L196: - mov r0, #13 - ldmfd sp!, {r4, r7, r8, lr} - b general_error -.L201: - .align 0 -.L200: - .word stack_chain - .align 0 - .global primitive_datastack - .def primitive_datastack; .scl 2; .type 32; .endef -primitive_datastack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r7, r8, lr} - mov r0, r1 - bl save_callstack_top - ldr ip, .L207 - mov r1, #7 - ldr lr, [ip, #0] - mov r0, #8 - ldr r4, [lr, #24] - mov r2, r1 - ldr r8, [r4, #0] - mov r3, #0 - rsb ip, r8, r5 - adds r7, ip, #4 - bmi .L203 - mov r1, r7, asr #2 - bl allot_array_internal - mov r1, r8 - mov r4, r0 - mov r2, r7 - add r0, r0, #8 - bl memcpy - bic r4, r4, #7 - add r3, r5, #4 - mov r5, r3 - orr r4, r4, #3 - str r4, [r5, #0] - ldmfd sp!, {r4, r7, r8, pc} -.L203: - mov r0, #11 - ldmfd sp!, {r4, r7, r8, lr} - b general_error -.L208: - .align 0 -.L207: - .word stack_chain - .comm errno, 4 @ 4 - .comm profiling, 4 @ 1 - .comm userenv, 160 @ 160 - .comm T, 4 @ 4 - .comm stack_chain, 4 @ 4 - .comm ds_size, 4 @ 4 - .comm rs_size, 4 @ 4 - .comm signal_number, 4 @ 4 - .comm signal_fault_addr, 4 @ 4 - .comm signal_callstack_top, 4 @ 4 - .comm secure_gc, 4 @ 1 - .comm data_heap, 4 @ 4 - .comm cards_offset, 4 @ 4 - .comm newspace, 4 @ 4 - .comm nursery, 4 @ 4 - .comm gc_time, 8 @ 8 - .comm minor_collections, 4 @ 4 - .comm cards_scanned, 4 @ 4 - .comm performing_gc, 4 @ 1 - .comm collecting_gen, 4 @ 4 - .comm collecting_code, 4 @ 1 - .comm collecting_aging_again, 4 @ 1 - .comm last_code_heap_scan, 4 @ 4 - .comm growing_data_heap, 4 @ 1 - .comm old_data_heap, 4 @ 4 - .comm gc_jmp, 44 @ 44 - .comm heap_scan_ptr, 4 @ 4 - .comm gc_off, 4 @ 1 - .comm extra_roots_region, 4 @ 4 - .comm extra_roots, 4 @ 4 - .comm bignum_zero, 4 @ 4 - .comm bignum_pos_one, 4 @ 4 - .comm bignum_neg_one, 4 @ 4 - .comm code_heap, 8 @ 8 - .comm data_relocation_base, 4 @ 4 - .comm code_relocation_base, 4 @ 4 - .comm posix_argc, 4 @ 4 - .comm posix_argv, 4 @ 4 - .def memcpy; .scl 2; .type 32; .endef - .def type_error; .scl 2; .type 32; .endef - .def safe_malloc; .scl 2; .type 32; .endef - .def alloc_segment; .scl 2; .type 32; .endef - .def dealloc_segment; .scl 2; .type 32; .endef - .def free; .scl 2; .type 32; .endef - .def allot_array_internal; .scl 2; .type 32; .endef - .def general_error; .scl 2; .type 32; .endef - .def memcpy; .scl 2; .type 32; .endef - .def dosym; .scl 2; .type 32; .endef - .def undefined; .scl 2; .type 32; .endef - .def exit; .scl 2; .type 32; .endef - .def to_fixnum; .scl 2; .type 32; .endef - .def unbox_char_string; .scl 2; .type 32; .endef - .def getenv; .scl 2; .type 32; .endef - .def box_char_string; .scl 2; .type 32; .endef - .def box_unsigned_8; .scl 2; .type 32; .endef - .def current_millis; .scl 2; .type 32; .endef - .def sleep_millis; .scl 2; .type 32; .endef - .def to_cell; .scl 2; .type 32; .endef - .def docol_profiling; .scl 2; .type 32; .endef - .def docol; .scl 2; .type 32; .endef - .def save_callstack_top; .scl 2; .type 32; .endef - .def to_boolean; .scl 2; .type 32; .endef - .def begin_scan; .scl 2; .type 32; .endef - .def next_object; .scl 2; .type 32; .endef - .section .drectve - .ascii " -export:nursery,data" - .ascii " -export:cards_offset,data" - .ascii " -export:stack_chain,data" - .ascii " -export:userenv,data" - .ascii " -export:profiling,data" - .ascii " -export:nest_stacks" - .ascii " -export:unnest_stacks" - .ascii " -export:save_stacks"