Server : LiteSpeed System : Linux in-mum-web1333.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u141265441 ( 141265441) PHP Version : 8.4.3 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail Directory : /proc/self/root/opt/golang/1.22.0/src/runtime/ |
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build mips || mipsle #include "textflag.h" #ifdef GOARCH_mips #define MOVWHI MOVWL #define MOVWLO MOVWR #else #define MOVWHI MOVWR #define MOVWLO MOVWL #endif // See memclrNoHeapPointers Go doc for important implementation constraints. // func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) TEXT runtime·memclrNoHeapPointers(SB),NOSPLIT,$0-8 MOVW n+4(FP), R2 MOVW ptr+0(FP), R1 SGTU $4, R2, R3 ADDU R2, R1, R4 BNE R3, small_zero ptr_align: AND $3, R1, R3 BEQ R3, setup SUBU R1, R0, R3 AND $3, R3 // R3 contains number of bytes needed to align ptr MOVWHI R0, 0(R1) // MOVWHI will write zeros up to next word boundary SUBU R3, R2 ADDU R3, R1 setup: AND $31, R2, R6 AND $3, R2, R5 SUBU R6, R4, R6 // end pointer for 32-byte chunks SUBU R5, R4, R5 // end pointer for 4-byte chunks large: BEQ R1, R6, words MOVW R0, 0(R1) MOVW R0, 4(R1) MOVW R0, 8(R1) MOVW R0, 12(R1) MOVW R0, 16(R1) MOVW R0, 20(R1) MOVW R0, 24(R1) MOVW R0, 28(R1) ADDU $32, R1 JMP large words: BEQ R1, R5, tail MOVW R0, 0(R1) ADDU $4, R1 JMP words tail: BEQ R1, R4, ret MOVWLO R0, -1(R4) ret: RET small_zero: BEQ R1, R4, ret MOVB R0, 0(R1) ADDU $1, R1 JMP small_zero