summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2009-09-08 13:03:06 +0200
committerPetr Machata <pmachata@redhat.com>2009-09-08 13:03:06 +0200
commitd3d102e6c066b3e432bbec1c3e9a18fee9ccc82c (patch)
treee2fceca9b1b5c92e91d51a18e56a6d1c9c63848d
parentc587c8f5fb55c71a463e9e75f28787c366501e83 (diff)
expr_opcodes.h will hold more general information about opcodes
-rw-r--r--src/Makefile.am2
-rw-r--r--src/dwarf-opcodes.h204
-rw-r--r--src/dwarflint.c15
-rw-r--r--src/expr_opcodes.h154
4 files changed, 217 insertions, 158 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index bf4089b7..e8c14bc1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -99,7 +99,7 @@ readelf_SOURCES = readelf.c dwarfstrings.c
noinst_HEADERS = ld.h symbolhash.h sectionhash.h versionhash.h \
ldscript.h xelf.h unaligned.h dwarfstrings.h \
- expr_opcodes.h
+ dwarf-opcodes.h
EXTRA_DIST = elf32-i386.script libld_elf_i386.map $(ld_modules) arlib.h \
debugpred.h
diff --git a/src/dwarf-opcodes.h b/src/dwarf-opcodes.h
new file mode 100644
index 00000000..739676b2
--- /dev/null
+++ b/src/dwarf-opcodes.h
@@ -0,0 +1,204 @@
+/*
+ Copyright (C) 2009 Red Hat, Inc.
+ This file is part of Red Hat elfutils.
+
+ Red Hat elfutils is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by the
+ Free Software Foundation; version 2 of the License.
+
+ Red Hat elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with Red Hat elfutils; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+ In addition, as a special exception, Red Hat, Inc. gives You the
+ additional right to link the code of Red Hat elfutils with code licensed
+ under any Open Source Initiative certified open source license
+ (http://www.opensource.org/licenses/index.php) which requires the
+ distribution of source code with any binary distribution and to
+ distribute linked combinations of the two. Non-GPL Code permitted under
+ this exception must only link to the code of Red Hat elfutils through
+ those well defined interfaces identified in the file named EXCEPTION
+ found in the source code files (the "Approved Interfaces"). The files
+ of Non-GPL Code may instantiate templates or use macros or inline
+ functions from the Approved Interfaces without causing the resulting
+ work to be covered by the GNU General Public License. Only Red Hat,
+ Inc. may make changes or additions to the list of Approved Interfaces.
+ Red Hat's grant of this exception is conditioned upon your not adding
+ any new exceptions. If you wish to add a new Approved Interface or
+ exception, please contact Red Hat. You must obey the GNU General Public
+ License in all respects for all of the Red Hat elfutils code and other
+ code used in conjunction with Red Hat elfutils except the Non-GPL Code
+ covered by this exception. If you modify this file, you may extend this
+ exception to your version of the file, but you are not obligated to do
+ so. If you do not wish to provide this exception without modification,
+ you must delete this exception statement from your version and license
+ this file solely under the GPL without exception.
+
+ Red Hat elfutils is an included package of the Open Invention Network.
+ An included package of the Open Invention Network is a package for which
+ Open Invention Network licensees cross-license their patents. No patent
+ license is granted, either expressly or impliedly, by designation as an
+ included package. Should you wish to participate in the Open Invention
+ Network licensing program, please visit www.openinventionnetwork.com
+ <http://www.openinventionnetwork.com>. */
+
+#define DW_OP_OPERANDS \
+ DW_OP_1 (DW_OP_addr, DW_FORM_addr) \
+ DW_OP_0 (DW_OP_deref) \
+ DW_OP_0 (DW_OP_xderef) \
+ DW_OP_1 (DW_OP_deref_size, DW_FORM_data1) \
+ DW_OP_1 (DW_OP_xderef_size, DW_FORM_data1) \
+ DW_OP_1 (DW_OP_const1u, DW_FORM_data1) \
+ DW_OP_1 (DW_OP_const1s, DW_FORM_data1) \
+ DW_OP_1 (DW_OP_const2u, DW_FORM_data2) \
+ DW_OP_1 (DW_OP_const2s, DW_FORM_data2) \
+ DW_OP_1 (DW_OP_const4u, DW_FORM_data4) \
+ DW_OP_1 (DW_OP_const4s, DW_FORM_data4) \
+ DW_OP_1 (DW_OP_const8u, DW_FORM_data8) \
+ DW_OP_1 (DW_OP_const8s, DW_FORM_data8) \
+ DW_OP_1 (DW_OP_constu, DW_FORM_udata) \
+ DW_OP_1 (DW_OP_consts, DW_FORM_sdata) \
+ DW_OP_0 (DW_OP_dup) \
+ DW_OP_0 (DW_OP_drop) \
+ DW_OP_0 (DW_OP_over) \
+ DW_OP_1 (DW_OP_pick, DW_FORM_data1) \
+ DW_OP_0 (DW_OP_swap) \
+ DW_OP_0 (DW_OP_rot) \
+ DW_OP_0 (DW_OP_abs) \
+ DW_OP_0 (DW_OP_and) \
+ DW_OP_0 (DW_OP_div) \
+ DW_OP_0 (DW_OP_minus) \
+ DW_OP_0 (DW_OP_mod) \
+ DW_OP_0 (DW_OP_mul) \
+ DW_OP_0 (DW_OP_neg) \
+ DW_OP_0 (DW_OP_not) \
+ DW_OP_0 (DW_OP_or) \
+ DW_OP_0 (DW_OP_plus) \
+ DW_OP_1 (DW_OP_plus_uconst, DW_FORM_udata) \
+ DW_OP_0 (DW_OP_shl) \
+ DW_OP_0 (DW_OP_shr) \
+ DW_OP_0 (DW_OP_shra) \
+ DW_OP_0 (DW_OP_xor) \
+ DW_OP_1 (DW_OP_bra, DW_FORM_data2) \
+ DW_OP_0 (DW_OP_eq) \
+ DW_OP_0 (DW_OP_ge) \
+ DW_OP_0 (DW_OP_gt) \
+ DW_OP_0 (DW_OP_le) \
+ DW_OP_0 (DW_OP_lt) \
+ DW_OP_0 (DW_OP_ne) \
+ DW_OP_1 (DW_OP_skip, DW_FORM_data2) \
+ DW_OP_0 (DW_OP_lit0) \
+ DW_OP_0 (DW_OP_lit1) \
+ DW_OP_0 (DW_OP_lit2) \
+ DW_OP_0 (DW_OP_lit3) \
+ DW_OP_0 (DW_OP_lit4) \
+ DW_OP_0 (DW_OP_lit5) \
+ DW_OP_0 (DW_OP_lit6) \
+ DW_OP_0 (DW_OP_lit7) \
+ DW_OP_0 (DW_OP_lit8) \
+ DW_OP_0 (DW_OP_lit9) \
+ DW_OP_0 (DW_OP_lit10) \
+ DW_OP_0 (DW_OP_lit11) \
+ DW_OP_0 (DW_OP_lit12) \
+ DW_OP_0 (DW_OP_lit13) \
+ DW_OP_0 (DW_OP_lit14) \
+ DW_OP_0 (DW_OP_lit15) \
+ DW_OP_0 (DW_OP_lit16) \
+ DW_OP_0 (DW_OP_lit17) \
+ DW_OP_0 (DW_OP_lit18) \
+ DW_OP_0 (DW_OP_lit19) \
+ DW_OP_0 (DW_OP_lit20) \
+ DW_OP_0 (DW_OP_lit21) \
+ DW_OP_0 (DW_OP_lit22) \
+ DW_OP_0 (DW_OP_lit23) \
+ DW_OP_0 (DW_OP_lit24) \
+ DW_OP_0 (DW_OP_lit25) \
+ DW_OP_0 (DW_OP_lit26) \
+ DW_OP_0 (DW_OP_lit27) \
+ DW_OP_0 (DW_OP_lit28) \
+ DW_OP_0 (DW_OP_lit29) \
+ DW_OP_0 (DW_OP_lit30) \
+ DW_OP_0 (DW_OP_lit31) \
+ DW_OP_0 (DW_OP_reg0) \
+ DW_OP_0 (DW_OP_reg1) \
+ DW_OP_0 (DW_OP_reg2) \
+ DW_OP_0 (DW_OP_reg3) \
+ DW_OP_0 (DW_OP_reg4) \
+ DW_OP_0 (DW_OP_reg5) \
+ DW_OP_0 (DW_OP_reg6) \
+ DW_OP_0 (DW_OP_reg7) \
+ DW_OP_0 (DW_OP_reg8) \
+ DW_OP_0 (DW_OP_reg9) \
+ DW_OP_0 (DW_OP_reg10) \
+ DW_OP_0 (DW_OP_reg11) \
+ DW_OP_0 (DW_OP_reg12) \
+ DW_OP_0 (DW_OP_reg13) \
+ DW_OP_0 (DW_OP_reg14) \
+ DW_OP_0 (DW_OP_reg15) \
+ DW_OP_0 (DW_OP_reg16) \
+ DW_OP_0 (DW_OP_reg17) \
+ DW_OP_0 (DW_OP_reg18) \
+ DW_OP_0 (DW_OP_reg19) \
+ DW_OP_0 (DW_OP_reg20) \
+ DW_OP_0 (DW_OP_reg21) \
+ DW_OP_0 (DW_OP_reg22) \
+ DW_OP_0 (DW_OP_reg23) \
+ DW_OP_0 (DW_OP_reg24) \
+ DW_OP_0 (DW_OP_reg25) \
+ DW_OP_0 (DW_OP_reg26) \
+ DW_OP_0 (DW_OP_reg27) \
+ DW_OP_0 (DW_OP_reg28) \
+ DW_OP_0 (DW_OP_reg29) \
+ DW_OP_0 (DW_OP_reg30) \
+ DW_OP_0 (DW_OP_reg31) \
+ DW_OP_1 (DW_OP_breg0, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg1, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg2, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg3, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg4, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg5, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg6, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg7, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg8, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg9, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg10, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg11, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg12, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg13, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg14, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg15, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg16, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg17, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg18, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg19, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg20, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg21, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg22, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg23, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg24, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg25, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg26, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg27, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg28, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg29, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg30, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_breg31, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_regx, DW_FORM_udata) \
+ DW_OP_1 (DW_OP_fbreg, DW_FORM_sdata) \
+ DW_OP_2 (DW_OP_bregx, DW_FORM_udata, DW_FORM_sdata) \
+ DW_OP_1 (DW_OP_piece, DW_FORM_udata) \
+ DW_OP_0 (DW_OP_nop) \
+ DW_OP_0 (DW_OP_push_object_address) \
+ DW_OP_1 (DW_OP_call2, DW_FORM_data2) \
+ DW_OP_1 (DW_OP_call4, DW_FORM_data4) \
+ DW_OP_1 (DW_OP_call_ref, DW_FORM_addr) \
+ DW_OP_0 (DW_OP_form_tls_address) \
+ DW_OP_0 (DW_OP_GNU_push_tls_address) \
+ DW_OP_0 (DW_OP_call_frame_cfa) \
+ DW_OP_2 (DW_OP_bit_piece, DW_FORM_udata, DW_FORM_udata) \
+ DW_OP_0 (DW_OP_GNU_uninit)
diff --git a/src/dwarflint.c b/src/dwarflint.c
index 64307bbf..da29c0fe 100644
--- a/src/dwarflint.c
+++ b/src/dwarflint.c
@@ -51,6 +51,7 @@
#include "dwarfstrings.h"
#include "dwarflint.h"
#include "dwarflint-readctx.h"
+#include "dwarf-opcodes.h"
/* Bug report address. */
const char *argp_program_bug_address = PACKAGE_BUGREPORT;
@@ -4114,10 +4115,18 @@ get_location_opcode_operands (uint8_t opcode, uint8_t *op1, uint8_t *op2)
{
switch (opcode)
{
-#define DEF_DW_OP(OPCODE, OP1, OP2) \
+#define DW_OP_G(OPCODE, OP1, OP2) \
case OPCODE: *op1 = OP1; *op2 = OP2; return true;
-# include "expr_opcodes.h"
-#undef DEF_DW_OP
+#define DW_OP_0(OPCODE) DW_OP_G(OPCODE, 0, 0)
+#define DW_OP_1(OPCODE, OP1) DW_OP_G(OPCODE, OP1, 0)
+#define DW_OP_2(OPCODE, OP1, OP2) DW_OP_G(OPCODE, OP1, OP2)
+
+ DW_OP_OPERANDS
+
+#undef DEF_DW_OP_2
+#undef DEF_DW_OP_1
+#undef DEF_DW_OP_0
+#undef DEF_DW_OP_G
default:
return false;
};
diff --git a/src/expr_opcodes.h b/src/expr_opcodes.h
deleted file mode 100644
index b38f218a..00000000
--- a/src/expr_opcodes.h
+++ /dev/null
@@ -1,154 +0,0 @@
-DEF_DW_OP (DW_OP_addr, DW_FORM_addr, 0)
-DEF_DW_OP (DW_OP_deref, 0, 0)
-DEF_DW_OP (DW_OP_xderef, 0, 0)
-DEF_DW_OP (DW_OP_deref_size, DW_FORM_data1, 0)
-DEF_DW_OP (DW_OP_xderef_size, DW_FORM_data1, 0)
-DEF_DW_OP (DW_OP_const1u, DW_FORM_data1, 0)
-DEF_DW_OP (DW_OP_const1s, DW_FORM_data1, 0)
-DEF_DW_OP (DW_OP_const2u, DW_FORM_data2, 0)
-DEF_DW_OP (DW_OP_const2s, DW_FORM_data2, 0)
-DEF_DW_OP (DW_OP_const4u, DW_FORM_data4, 0)
-DEF_DW_OP (DW_OP_const4s, DW_FORM_data4, 0)
-DEF_DW_OP (DW_OP_const8u, DW_FORM_data8, 0)
-DEF_DW_OP (DW_OP_const8s, DW_FORM_data8, 0)
-DEF_DW_OP (DW_OP_constu, DW_FORM_udata, 0)
-DEF_DW_OP (DW_OP_consts, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_dup, 0, 0)
-DEF_DW_OP (DW_OP_drop, 0, 0)
-DEF_DW_OP (DW_OP_over, 0, 0)
-DEF_DW_OP (DW_OP_pick, DW_FORM_data1, 0)
-DEF_DW_OP (DW_OP_swap, 0, 0)
-DEF_DW_OP (DW_OP_rot, 0, 0)
-DEF_DW_OP (DW_OP_abs, 0, 0)
-DEF_DW_OP (DW_OP_and, 0, 0)
-DEF_DW_OP (DW_OP_div, 0, 0)
-DEF_DW_OP (DW_OP_minus, 0, 0)
-DEF_DW_OP (DW_OP_mod, 0, 0)
-DEF_DW_OP (DW_OP_mul, 0, 0)
-DEF_DW_OP (DW_OP_neg, 0, 0)
-DEF_DW_OP (DW_OP_not, 0, 0)
-DEF_DW_OP (DW_OP_or, 0, 0)
-DEF_DW_OP (DW_OP_plus, 0, 0)
-DEF_DW_OP (DW_OP_plus_uconst, DW_FORM_udata, 0)
-DEF_DW_OP (DW_OP_shl, 0, 0)
-DEF_DW_OP (DW_OP_shr, 0, 0)
-DEF_DW_OP (DW_OP_shra, 0, 0)
-DEF_DW_OP (DW_OP_xor, 0, 0)
-DEF_DW_OP (DW_OP_bra, DW_FORM_data2, 0)
-DEF_DW_OP (DW_OP_eq, 0, 0)
-DEF_DW_OP (DW_OP_ge, 0, 0)
-DEF_DW_OP (DW_OP_gt, 0, 0)
-DEF_DW_OP (DW_OP_le, 0, 0)
-DEF_DW_OP (DW_OP_lt, 0, 0)
-DEF_DW_OP (DW_OP_ne, 0, 0)
-DEF_DW_OP (DW_OP_skip, DW_FORM_data2, 0)
-DEF_DW_OP (DW_OP_lit0, 0, 0)
-DEF_DW_OP (DW_OP_lit1, 0, 0)
-DEF_DW_OP (DW_OP_lit2, 0, 0)
-DEF_DW_OP (DW_OP_lit3, 0, 0)
-DEF_DW_OP (DW_OP_lit4, 0, 0)
-DEF_DW_OP (DW_OP_lit5, 0, 0)
-DEF_DW_OP (DW_OP_lit6, 0, 0)
-DEF_DW_OP (DW_OP_lit7, 0, 0)
-DEF_DW_OP (DW_OP_lit8, 0, 0)
-DEF_DW_OP (DW_OP_lit9, 0, 0)
-DEF_DW_OP (DW_OP_lit10, 0, 0)
-DEF_DW_OP (DW_OP_lit11, 0, 0)
-DEF_DW_OP (DW_OP_lit12, 0, 0)
-DEF_DW_OP (DW_OP_lit13, 0, 0)
-DEF_DW_OP (DW_OP_lit14, 0, 0)
-DEF_DW_OP (DW_OP_lit15, 0, 0)
-DEF_DW_OP (DW_OP_lit16, 0, 0)
-DEF_DW_OP (DW_OP_lit17, 0, 0)
-DEF_DW_OP (DW_OP_lit18, 0, 0)
-DEF_DW_OP (DW_OP_lit19, 0, 0)
-DEF_DW_OP (DW_OP_lit20, 0, 0)
-DEF_DW_OP (DW_OP_lit21, 0, 0)
-DEF_DW_OP (DW_OP_lit22, 0, 0)
-DEF_DW_OP (DW_OP_lit23, 0, 0)
-DEF_DW_OP (DW_OP_lit24, 0, 0)
-DEF_DW_OP (DW_OP_lit25, 0, 0)
-DEF_DW_OP (DW_OP_lit26, 0, 0)
-DEF_DW_OP (DW_OP_lit27, 0, 0)
-DEF_DW_OP (DW_OP_lit28, 0, 0)
-DEF_DW_OP (DW_OP_lit29, 0, 0)
-DEF_DW_OP (DW_OP_lit30, 0, 0)
-DEF_DW_OP (DW_OP_lit31, 0, 0)
-DEF_DW_OP (DW_OP_reg0, 0, 0)
-DEF_DW_OP (DW_OP_reg1, 0, 0)
-DEF_DW_OP (DW_OP_reg2, 0, 0)
-DEF_DW_OP (DW_OP_reg3, 0, 0)
-DEF_DW_OP (DW_OP_reg4, 0, 0)
-DEF_DW_OP (DW_OP_reg5, 0, 0)
-DEF_DW_OP (DW_OP_reg6, 0, 0)
-DEF_DW_OP (DW_OP_reg7, 0, 0)
-DEF_DW_OP (DW_OP_reg8, 0, 0)
-DEF_DW_OP (DW_OP_reg9, 0, 0)
-DEF_DW_OP (DW_OP_reg10, 0, 0)
-DEF_DW_OP (DW_OP_reg11, 0, 0)
-DEF_DW_OP (DW_OP_reg12, 0, 0)
-DEF_DW_OP (DW_OP_reg13, 0, 0)
-DEF_DW_OP (DW_OP_reg14, 0, 0)
-DEF_DW_OP (DW_OP_reg15, 0, 0)
-DEF_DW_OP (DW_OP_reg16, 0, 0)
-DEF_DW_OP (DW_OP_reg17, 0, 0)
-DEF_DW_OP (DW_OP_reg18, 0, 0)
-DEF_DW_OP (DW_OP_reg19, 0, 0)
-DEF_DW_OP (DW_OP_reg20, 0, 0)
-DEF_DW_OP (DW_OP_reg21, 0, 0)
-DEF_DW_OP (DW_OP_reg22, 0, 0)
-DEF_DW_OP (DW_OP_reg23, 0, 0)
-DEF_DW_OP (DW_OP_reg24, 0, 0)
-DEF_DW_OP (DW_OP_reg25, 0, 0)
-DEF_DW_OP (DW_OP_reg26, 0, 0)
-DEF_DW_OP (DW_OP_reg27, 0, 0)
-DEF_DW_OP (DW_OP_reg28, 0, 0)
-DEF_DW_OP (DW_OP_reg29, 0, 0)
-DEF_DW_OP (DW_OP_reg30, 0, 0)
-DEF_DW_OP (DW_OP_reg31, 0, 0)
-DEF_DW_OP (DW_OP_breg0, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg1, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg2, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg3, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg4, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg5, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg6, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg7, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg8, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg9, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg10, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg11, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg12, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg13, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg14, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg15, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg16, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg17, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg18, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg19, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg20, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg21, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg22, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg23, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg24, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg25, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg26, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg27, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg28, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg29, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg30, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_breg31, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_regx, DW_FORM_udata, 0)
-DEF_DW_OP (DW_OP_fbreg, DW_FORM_sdata, 0)
-DEF_DW_OP (DW_OP_bregx, DW_FORM_udata, DW_FORM_sdata)
-DEF_DW_OP (DW_OP_piece, DW_FORM_udata, 0)
-DEF_DW_OP (DW_OP_nop, 0, 0)
-DEF_DW_OP (DW_OP_push_object_address, 0, 0)
-DEF_DW_OP (DW_OP_call2, DW_FORM_data2, 0)
-DEF_DW_OP (DW_OP_call4, DW_FORM_data4, 0)
-DEF_DW_OP (DW_OP_call_ref, DW_FORM_addr, 0)
-DEF_DW_OP (DW_OP_form_tls_address, 0, 0)
-DEF_DW_OP (DW_OP_GNU_push_tls_address, 0, 0)
-DEF_DW_OP (DW_OP_call_frame_cfa, 0, 0)
-DEF_DW_OP (DW_OP_bit_piece, DW_FORM_udata, DW_FORM_udata)
-DEF_DW_OP (DW_OP_GNU_uninit, 0, 0)