[BACK]Return to powerpc_darwin_mach_dep.s CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / gc

File: [local] / OpenXM_contrib2 / asir2000 / gc / powerpc_darwin_mach_dep.s (download)

Revision 1.1, Tue Jun 24 05:11:33 2003 UTC (20 years, 10 months ago) by noro
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9

Upgraded gc to gc6.2alpha6.

; GC_push_regs function. Under some optimization levels GCC will clobber
; some of the non-volatile registers before we get a chance to save them
; therefore, this can't be inline asm.

.text
	.align 2
	.globl _GC_push_regs
_GC_push_regs:
    
    ; Prolog
	mflr r0
	stw r0,8(r1)
	stwu r1,-80(r1)

	; Push r13-r31
	mr r3,r13
	bl L_GC_push_one$stub
	mr r3,r14
	bl L_GC_push_one$stub
	mr r3,r15
	bl L_GC_push_one$stub
	mr r3,r16
	bl L_GC_push_one$stub
	mr r3,r17
	bl L_GC_push_one$stub
	mr r3,r18
	bl L_GC_push_one$stub
	mr r3,r19
	bl L_GC_push_one$stub
	mr r3,r20
	bl L_GC_push_one$stub
	mr r3,r21
	bl L_GC_push_one$stub
	mr r3,r22
	bl L_GC_push_one$stub
	mr r3,r23
	bl L_GC_push_one$stub
	mr r3,r24
	bl L_GC_push_one$stub
	mr r3,r25
	bl L_GC_push_one$stub
	mr r3,r26
	bl L_GC_push_one$stub
	mr r3,r27
	bl L_GC_push_one$stub
	mr r3,r28
	bl L_GC_push_one$stub
	mr r3,r29
	bl L_GC_push_one$stub
	mr r3,r30
	bl L_GC_push_one$stub
	mr r3,r31
	bl L_GC_push_one$stub

    ; 
    lwz r0,88(r1)
    addi r1,r1,80
	mtlr r0
    	
	; Return
	blr

; PIC stuff, generated by GCC

.data
.picsymbol_stub
L_GC_push_one$stub:
	.indirect_symbol _GC_push_one
	mflr r0
	bcl 20,31,L0$_GC_push_one
L0$_GC_push_one:
	mflr r11
	addis r11,r11,ha16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
	mtlr r0
	lwz r12,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)(r11)
	mtctr r12
	addi r11,r11,lo16(L_GC_push_one$lazy_ptr-L0$_GC_push_one)
	bctr
.data
.lazy_symbol_pointer
L_GC_push_one$lazy_ptr:
	.indirect_symbol _GC_push_one
	.long dyld_stub_binding_helper