// Code generated by "stringer -type AddrType cmd/internal/obj"; DO NOT EDIT

package obj

import "fmt"

const (
	_AddrType_name_0 = "TYPE_NONE"
	_AddrType_name_1 = "TYPE_BRANCHTYPE_TEXTSIZETYPE_MEMTYPE_CONSTTYPE_FCONSTTYPE_SCONSTTYPE_REGTYPE_ADDRTYPE_SHIFTTYPE_REGREGTYPE_REGREG2TYPE_INDIRTYPE_REGLIST"
)

var (
	_AddrType_index_0 = [...]uint8{0, 9}
	_AddrType_index_1 = [...]uint8{0, 11, 24, 32, 42, 53, 64, 72, 81, 91, 102, 114, 124, 136}
)

func (i AddrType) String() string {
	switch {
	case i == 0:
		return _AddrType_name_0
	case 6 <= i && i <= 18:
		i -= 6
		return _AddrType_name_1[_AddrType_index_1[i]:_AddrType_index_1[i+1]]
	default:
		return fmt.Sprintf("AddrType(%d)", i)
	}
}
