Text file src/runtime/sys_wasm.s

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  #include "textflag.h"
     6  
     7  TEXT runtime·wasmDiv(SB), NOSPLIT, $0-0
     8  	Get R0
     9  	I64Const $-0x8000000000000000
    10  	I64Eq
    11  	If
    12  		Get R1
    13  		I64Const $-1
    14  		I64Eq
    15  		If
    16  			I64Const $-0x8000000000000000
    17  			Return
    18  		End
    19  	End
    20  	Get R0
    21  	Get R1
    22  	I64DivS
    23  	Return
    24  
    25  TEXT runtime·wasmTruncS(SB), NOSPLIT, $0-0
    26  	Get R0
    27  	Get R0
    28  	F64Ne // NaN
    29  	If
    30  		I64Const $0x8000000000000000
    31  		Return
    32  	End
    33  
    34  	Get R0
    35  	F64Const $0x7ffffffffffffc00p0 // Maximum truncated representation of 0x7fffffffffffffff
    36  	F64Gt
    37  	If
    38  		I64Const $0x8000000000000000
    39  		Return
    40  	End
    41  
    42  	Get R0
    43  	F64Const $-0x7ffffffffffffc00p0 // Minimum truncated representation of -0x8000000000000000
    44  	F64Lt
    45  	If
    46  		I64Const $0x8000000000000000
    47  		Return
    48  	End
    49  
    50  	Get R0
    51  	I64TruncF64S
    52  	Return
    53  
    54  TEXT runtime·wasmTruncU(SB), NOSPLIT, $0-0
    55  	Get R0
    56  	Get R0
    57  	F64Ne // NaN
    58  	If
    59  		I64Const $0x8000000000000000
    60  		Return
    61  	End
    62  
    63  	Get R0
    64  	F64Const $0xfffffffffffff800p0 // Maximum truncated representation of 0xffffffffffffffff
    65  	F64Gt
    66  	If
    67  		I64Const $0x8000000000000000
    68  		Return
    69  	End
    70  
    71  	Get R0
    72  	F64Const $0.
    73  	F64Lt
    74  	If
    75  		I64Const $0x8000000000000000
    76  		Return
    77  	End
    78  
    79  	Get R0
    80  	I64TruncF64U
    81  	Return
    82  
    83  TEXT runtime·exitThread(SB), NOSPLIT, $0-0
    84  	UNDEF
    85  
    86  TEXT runtime·osyield(SB), NOSPLIT, $0-0
    87  	UNDEF
    88  
    89  TEXT runtime·currentMemory(SB), NOSPLIT, $0
    90  	Get SP
    91  	CurrentMemory
    92  	I32Store ret+0(FP)
    93  	RET
    94  
    95  TEXT runtime·growMemory(SB), NOSPLIT, $0
    96  	Get SP
    97  	I32Load pages+0(FP)
    98  	GrowMemory
    99  	I32Store ret+8(FP)
   100  	RET
   101  

View as plain text