"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/runtime/asm_riscv64.s" between
go1.19.src.tar.gz and go1.19.1.src.tar.gz

About: Google’s Go is a compiled, garbage-collected, concurrent programming language.
Latest stable release (1.19).

asm_riscv64.s  (go1.19.src):asm_riscv64.s  (go1.19.1.src)
skipping to change at line 161 skipping to change at line 161
TEXT runtime·getcallerpc(SB),NOSPLIT|NOFRAME,$0-8 TEXT runtime·getcallerpc(SB),NOSPLIT|NOFRAME,$0-8
MOV 0(X2), T0 // LR saved by caller MOV 0(X2), T0 // LR saved by caller
MOV T0, ret+0(FP) MOV T0, ret+0(FP)
RET RET
/* /*
* support for morestack * support for morestack
*/ */
// Called during function prolog when more stack is needed. // Called during function prolog when more stack is needed.
// Caller has already loaded: // Called with return address (i.e. caller's PC) in X5 (aka T0),
// R1: framesize, R2: argsize, R3: LR // and the LR register contains the caller's LR.
// //
// The traceback routines see morestack on a g0 as being // The traceback routines see morestack on a g0 as being
// the top of a stack (for example, morestack calling newstack // the top of a stack (for example, morestack calling newstack
// calling the scheduler calling newm calling gc), so we must // calling the scheduler calling newm calling gc), so we must
// record an argument size. For that purpose, it has no arguments. // record an argument size. For that purpose, it has no arguments.
// func morestack() // func morestack()
TEXT runtime·morestack(SB),NOSPLIT|NOFRAME,$0-0 TEXT runtime·morestack(SB),NOSPLIT|NOFRAME,$0-0
// Cannot grow scheduler stack (m->g0). // Cannot grow scheduler stack (m->g0).
MOV g_m(g), A0 MOV g_m(g), A0
skipping to change at line 212 skipping to change at line 212
MOV ZERO, -8(X2) // Zero saved LR in frame MOV ZERO, -8(X2) // Zero saved LR in frame
ADD $-8, X2 ADD $-8, X2
CALL runtime·newstack(SB) CALL runtime·newstack(SB)
// Not reached, but make sure the return PC from the call to newstack // Not reached, but make sure the return PC from the call to newstack
// is still in this function, and not the beginning of the next. // is still in this function, and not the beginning of the next.
UNDEF UNDEF
// func morestack_noctxt() // func morestack_noctxt()
TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0 TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0
// Force SPWRITE. This function doesn't actually write SP,
// but it is called with a special calling convention where
// the caller doesn't save LR on stack but passes it as a
// register, and the unwinder currently doesn't understand.
// Make it SPWRITE to stop unwinding. (See issue 54332)
MOV X2, X2
MOV ZERO, CTXT MOV ZERO, CTXT
JMP runtime·morestack(SB) JMP runtime·morestack(SB)
// AES hashing not implemented for riscv64 // AES hashing not implemented for riscv64
TEXT runtime·memhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-32 TEXT runtime·memhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-32
JMP runtime·memhashFallback<ABIInternal>(SB) JMP runtime·memhashFallback<ABIInternal>(SB)
TEXT runtime·strhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24 TEXT runtime·strhash<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
JMP runtime·strhashFallback<ABIInternal>(SB) JMP runtime·strhashFallback<ABIInternal>(SB)
TEXT runtime·memhash32<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24 TEXT runtime·memhash32<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-24
JMP runtime·memhash32Fallback<ABIInternal>(SB) JMP runtime·memhash32Fallback<ABIInternal>(SB)
 End of changes. 2 change blocks. 
2 lines changed or deleted 9 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)