textflag.go raw

   1  // Copyright 2013 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  // This file defines flags attached to various functions
   6  // and data objects. The compilers, assemblers, and linker must
   7  // all agree on these values.
   8  
   9  package obj
  10  
  11  const (
  12  	// Don't profile the marked routine.
  13  	//
  14  	// Deprecated: Not implemented, do not use.
  15  	NOPROF = 1
  16  
  17  	// It is ok for the linker to get multiple of these symbols. It will
  18  	// pick one of the duplicates to use.
  19  	DUPOK = 2
  20  
  21  	// Don't insert stack check preamble.
  22  	NOSPLIT = 4
  23  
  24  	// Put this data in a read-only section.
  25  	RODATA = 8
  26  
  27  	// This data contains no pointers.
  28  	NOPTR = 16
  29  
  30  	// This is a wrapper function and should not count as disabling 'recover'.
  31  	WRAPPER = 32
  32  
  33  	// This function uses its incoming context register.
  34  	NEEDCTXT = 64
  35  
  36  	// When passed to ggloblsym, causes Local to be set to true on the LSym it creates.
  37  	LOCAL = 128
  38  
  39  	// Allocate a word of thread local storage and store the offset from the
  40  	// thread local base to the thread local storage in this variable.
  41  	TLSBSS = 256
  42  
  43  	// Do not insert instructions to allocate a stack frame for this function.
  44  	// Only valid on functions that declare a frame size of 0.
  45  	// TODO(mwhudson): only implemented for ppc64x at present.
  46  	NOFRAME = 512
  47  
  48  	// Function can call reflect.Type.Method or reflect.Type.MethodByName.
  49  	REFLECTMETHOD = 1024
  50  
  51  	// Function is the top of the call stack. Call stack unwinders should stop
  52  	// at this function.
  53  	TOPFRAME = 2048
  54  )
  55