// This file is used by _scripts/gen-opcodes.go to generate
// pkg/dwarf/op/opcodes.go 
// Lines starting with // are comments and will be discarded.
// Non empty lines contain the following tab separated fields:
//
//  <opcode name> <opcode code> <arguments> <function name>
// 
// With the last column, <function name>, being optional.
//
// The arguments field should contain a string with one character for each
// argument of the opcode:
//
//  s		signed variable length integer
//  u		unsigned variable length integer
//  1		one byte unsigned integer
//  2		two bytes unsigned integer
//  4		four bytes unsigned integer
//  8		eight bytes unsigned integer
//  B		an unsigned variable length integer 'n' followed by n a block of n bytes


DW_OP_addr	0x03	"8"	addr
DW_OP_deref	0x06	""	deref
DW_OP_const1u	0x08	"1"	constnu
DW_OP_const1s	0x09	"1"	constns
DW_OP_const2u	0x0a	"2"	constnu
DW_OP_const2s	0x0b	"2"	constns
DW_OP_const4u	0x0c	"4"	constnu
DW_OP_const4s	0x0d	"4"	constns
DW_OP_const8u	0x0e	"8"	constnu
DW_OP_const8s	0x0f	"8"	constns
DW_OP_constu	0x10	"u"	constu
DW_OP_consts	0x11	"s"	consts
DW_OP_dup	0x12	""	dup
DW_OP_drop	0x13	""	drop
DW_OP_over	0x14	""	pick
DW_OP_pick	0x15	""	pick
DW_OP_swap	0x16	""	swap
DW_OP_rot	0x17	""	rot
DW_OP_xderef	0x18	""	deref
DW_OP_abs	0x19	""	unaryop
DW_OP_and	0x1a	""	binaryop
DW_OP_div	0x1b	""	binaryop
DW_OP_minus	0x1c	""	binaryop
DW_OP_mod	0x1d	""	binaryop
DW_OP_mul	0x1e	""	binaryop
DW_OP_neg	0x1f	""	unaryop
DW_OP_not	0x20	""	unaryop
DW_OP_or	0x21	""	binaryop
DW_OP_plus	0x22	""	binaryop
DW_OP_plus_uconst	0x23	"u"	plusuconsts
DW_OP_shl	0x24	""	binaryop
DW_OP_shr	0x25	""	binaryop
DW_OP_shra	0x26	""	binaryop
DW_OP_xor	0x27	""	binaryop
DW_OP_bra	0x28	"2"	bra
DW_OP_eq	0x29	""	binaryop
DW_OP_ge	0x2a	""	binaryop
DW_OP_gt	0x2b	""	binaryop
DW_OP_le	0x2c	""	binaryop
DW_OP_lt	0x2d	""	binaryop
DW_OP_ne	0x2e	""	binaryop
DW_OP_skip	0x2f	"2"	skip
DW_OP_lit0	0x30	""	literal
DW_OP_lit1	0x31	""	literal
DW_OP_lit2	0x32	""	literal
DW_OP_lit3	0x33	""	literal
DW_OP_lit4	0x34	""	literal
DW_OP_lit5	0x35	""	literal
DW_OP_lit6	0x36	""	literal
DW_OP_lit7	0x37	""	literal
DW_OP_lit8	0x38	""	literal
DW_OP_lit9	0x39	""	literal
DW_OP_lit10	0x3a	""	literal
DW_OP_lit11	0x3b	""	literal
DW_OP_lit12	0x3c	""	literal
DW_OP_lit13	0x3d	""	literal
DW_OP_lit14	0x3e	""	literal
DW_OP_lit15	0x3f	""	literal
DW_OP_lit16	0x40	""	literal
DW_OP_lit17	0x41	""	literal
DW_OP_lit18	0x42	""	literal
DW_OP_lit19	0x43	""	literal
DW_OP_lit20	0x44	""	literal
DW_OP_lit21	0x45	""	literal
DW_OP_lit22	0x46	""	literal
DW_OP_lit23	0x47	""	literal
DW_OP_lit24	0x48	""	literal
DW_OP_lit25	0x49	""	literal
DW_OP_lit26	0x4a	""	literal
DW_OP_lit27	0x4b	""	literal
DW_OP_lit28	0x4c	""	literal
DW_OP_lit29	0x4d	""	literal
DW_OP_lit30	0x4e	""	literal
DW_OP_lit31	0x4f	""	literal
DW_OP_reg0	0x50	""	register
DW_OP_reg1	0x51	""	register
DW_OP_reg2	0x52	""	register
DW_OP_reg3	0x53	""	register
DW_OP_reg4	0x54	""	register
DW_OP_reg5	0x55	""	register
DW_OP_reg6	0x56	""	register
DW_OP_reg7	0x57	""	register
DW_OP_reg8	0x58	""	register
DW_OP_reg9	0x59	""	register
DW_OP_reg10	0x5a	""	register
DW_OP_reg11	0x5b	""	register
DW_OP_reg12	0x5c	""	register
DW_OP_reg13	0x5d	""	register
DW_OP_reg14	0x5e	""	register
DW_OP_reg15	0x5f	""	register
DW_OP_reg16	0x60	""	register
DW_OP_reg17	0x61	""	register
DW_OP_reg18	0x62	""	register
DW_OP_reg19	0x63	""	register
DW_OP_reg20	0x64	""	register
DW_OP_reg21	0x65	""	register
DW_OP_reg22	0x66	""	register
DW_OP_reg23	0x67	""	register
DW_OP_reg24	0x68	""	register
DW_OP_reg25	0x69	""	register
DW_OP_reg26	0x6a	""	register
DW_OP_reg27	0x6b	""	register
DW_OP_reg28	0x6c	""	register
DW_OP_reg29	0x6d	""	register
DW_OP_reg30	0x6e	""	register
DW_OP_reg31	0x6f	""	register
DW_OP_breg0	0x70	"s"	bregister
DW_OP_breg1	0x71	"s"	bregister
DW_OP_breg2	0x72	"s"	bregister
DW_OP_breg3	0x73	"s"	bregister
DW_OP_breg4	0x74	"s"	bregister
DW_OP_breg5	0x75	"s"	bregister
DW_OP_breg6	0x76	"s"	bregister
DW_OP_breg7	0x77	"s"	bregister
DW_OP_breg8	0x78	"s"	bregister
DW_OP_breg9	0x79	"s"	bregister
DW_OP_breg10	0x7a	"s"	bregister
DW_OP_breg11	0x7b	"s"	bregister
DW_OP_breg12	0x7c	"s"	bregister
DW_OP_breg13	0x7d	"s"	bregister
DW_OP_breg14	0x7e	"s"	bregister
DW_OP_breg15	0x7f	"s"	bregister
DW_OP_breg16	0x80	"s"	bregister
DW_OP_breg17	0x81	"s"	bregister
DW_OP_breg18	0x82	"s"	bregister
DW_OP_breg19	0x83	"s"	bregister
DW_OP_breg20	0x84	"s"	bregister
DW_OP_breg21	0x85	"s"	bregister
DW_OP_breg22	0x86	"s"	bregister
DW_OP_breg23	0x87	"s"	bregister
DW_OP_breg24	0x88	"s"	bregister
DW_OP_breg25	0x89	"s"	bregister
DW_OP_breg26	0x8a	"s"	bregister
DW_OP_breg27	0x8b	"s"	bregister
DW_OP_breg28	0x8c	"s"	bregister
DW_OP_breg29	0x8d	"s"	bregister
DW_OP_breg30	0x8e	"s"	bregister
DW_OP_breg31	0x8f	"s"	bregister
DW_OP_regx	0x90	"s"	register
DW_OP_fbreg	0x91	"s"	framebase
DW_OP_bregx	0x92	"us"	bregister
DW_OP_piece	0x93	"u"	piece
DW_OP_deref_size	0x94	"1"	deref
DW_OP_xderef_size	0x95	"1"	deref
DW_OP_nop	0x96	""
DW_OP_push_object_address	0x97	""
DW_OP_call2	0x98	"2"
DW_OP_call4	0x99	"4"
DW_OP_call_ref	0x9a	"4"
DW_OP_form_tls_address	0x9b	""
DW_OP_call_frame_cfa	0x9c	""	callframecfa
DW_OP_bit_piece	0x9d	"uu"
DW_OP_implicit_value	0x9e	"B"	implicitvalue
DW_OP_stack_value	0x9f	""	stackvalue
