| // Copyright 2014 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. |
| |
| #include "textflag.h" |
| |
| // funcdata for functions with no local variables in frame. |
| // Define two zero-length bitmaps, because the same index is used |
| // for the local variables as for the argument frame, and assembly |
| // frames have two argument bitmaps, one without results and one with results. |
| DATA runtime·no_pointers_stackmap+0x00(SB)/4, $2 |
| DATA runtime·no_pointers_stackmap+0x04(SB)/4, $0 |
| GLOBL runtime·no_pointers_stackmap(SB),RODATA, $8 |
| |
| GLOBL runtime·mheap_(SB), NOPTR, $0 |
| GLOBL runtime·memstats(SB), NOPTR, $0 |
| |
| // NaCl requires that these skips be verifiable machine code. |
| #ifdef GOARCH_amd64 |
| #define SKIP4 BYTE $0x90; BYTE $0x90; BYTE $0x90; BYTE $0x90 |
| #endif |
| #ifdef GOARCH_386 |
| #define SKIP4 BYTE $0x90; BYTE $0x90; BYTE $0x90; BYTE $0x90 |
| #endif |
| #ifdef GOARCH_amd64p32 |
| #define SKIP4 BYTE $0x90; BYTE $0x90; BYTE $0x90; BYTE $0x90 |
| #endif |
| #ifdef GOARCH_wasm |
| #define SKIP4 UNDEF; UNDEF; UNDEF; UNDEF |
| #endif |
| #ifndef SKIP4 |
| #define SKIP4 WORD $0 |
| #endif |
| |
| #define SKIP16 SKIP4; SKIP4; SKIP4; SKIP4 |
| #define SKIP64 SKIP16; SKIP16; SKIP16; SKIP16 |
| |
| // This function must be sizeofSkipFunction bytes. |
| TEXT runtime·skipPleaseUseCallersFrames(SB),NOSPLIT,$0-0 |
| SKIP64; SKIP64; SKIP64; SKIP64 |
| |
| // abi0Syms is a dummy symbol that creates ABI0 wrappers for Go |
| // functions called from assembly in other packages. |
| TEXT abi0Syms<>(SB),NOSPLIT,$0-0 |
| // obj assumes it can call morestack* using ABI0, but |
| // morestackc is actually defined in Go. |
| CALL ·morestackc(SB) |
| // References from syscall are automatically collected by cmd/go. |