Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: third_party/yasm/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c

Issue 11364046: Update Yasm to 1.2.0 (Yasm Part 1/3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * DWARF2 debugging format 2 * DWARF2 debugging format
3 * 3 *
4 * Copyright (C) 2006-2007 Peter Johnson 4 * Copyright (C) 2006-2007 Peter Johnson
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright 11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
14 * 14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE. 25 * POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 #include <util.h> 27 #include <util.h>
28 /*@unused@*/ RCSID("$Id: dwarf2-dbgfmt.c 2130 2008-10-07 05:38:11Z peter $");
29 28
30 #include <libyasm.h> 29 #include <libyasm.h>
31 30
32 #include "dwarf2-dbgfmt.h" 31 #include "dwarf2-dbgfmt.h"
33 32
34 struct dwarf2_head { 33 struct dwarf2_head {
35 yasm_bytecode *start_prevbc; 34 yasm_bytecode *start_prevbc;
36 yasm_bytecode *end_prevbc; 35 yasm_bytecode *end_prevbc;
37 /*@null@*/ yasm_section *debug_ptr; 36 /*@null@*/ yasm_section *debug_ptr;
38 int with_address; 37 int with_address;
39 int with_segment; 38 int with_segment;
40 }; 39 };
41 40
42 /* Bytecode callback function prototypes */ 41 /* Bytecode callback function prototypes */
43 static void dwarf2_head_bc_destroy(void *contents); 42 static void dwarf2_head_bc_destroy(void *contents);
44 static void dwarf2_head_bc_print(const void *contents, FILE *f, 43 static void dwarf2_head_bc_print(const void *contents, FILE *f,
45 int indent_level); 44 int indent_level);
46 static int dwarf2_head_bc_calc_len 45 static int dwarf2_head_bc_calc_len
47 (yasm_bytecode *bc, yasm_bc_add_span_func add_span, void *add_span_data); 46 (yasm_bytecode *bc, yasm_bc_add_span_func add_span, void *add_span_data);
48 static int dwarf2_head_bc_tobytes 47 static int dwarf2_head_bc_tobytes
49 (yasm_bytecode *bc, unsigned char **bufp, void *d, 48 (yasm_bytecode *bc, unsigned char **bufp, unsigned char *bufstart, void *d,
50 yasm_output_value_func output_value, 49 yasm_output_value_func output_value,
51 /*@null@*/ yasm_output_reloc_func output_reloc); 50 /*@null@*/ yasm_output_reloc_func output_reloc);
52 51
53 /* Bytecode callback structures */ 52 /* Bytecode callback structures */
54 static const yasm_bytecode_callback dwarf2_head_bc_callback = { 53 static const yasm_bytecode_callback dwarf2_head_bc_callback = {
55 dwarf2_head_bc_destroy, 54 dwarf2_head_bc_destroy,
56 dwarf2_head_bc_print, 55 dwarf2_head_bc_print,
57 yasm_bc_finalize_common, 56 yasm_bc_finalize_common,
58 NULL, 57 NULL,
59 dwarf2_head_bc_calc_len, 58 dwarf2_head_bc_calc_len,
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 static int 240 static int
242 dwarf2_head_bc_calc_len(yasm_bytecode *bc, yasm_bc_add_span_func add_span, 241 dwarf2_head_bc_calc_len(yasm_bytecode *bc, yasm_bc_add_span_func add_span,
243 void *add_span_data) 242 void *add_span_data)
244 { 243 {
245 yasm_internal_error(N_("tried to calc_len a dwarf2 head bytecode")); 244 yasm_internal_error(N_("tried to calc_len a dwarf2 head bytecode"));
246 /*@notreached@*/ 245 /*@notreached@*/
247 return 0; 246 return 0;
248 } 247 }
249 248
250 static int 249 static int
251 dwarf2_head_bc_tobytes(yasm_bytecode *bc, unsigned char **bufp, void *d, 250 dwarf2_head_bc_tobytes(yasm_bytecode *bc, unsigned char **bufp,
251 unsigned char *bufstart, void *d,
252 yasm_output_value_func output_value, 252 yasm_output_value_func output_value,
253 yasm_output_reloc_func output_reloc) 253 yasm_output_reloc_func output_reloc)
254 { 254 {
255 yasm_object *object = yasm_section_get_object(bc->section); 255 yasm_object *object = yasm_section_get_object(bc->section);
256 yasm_dbgfmt_dwarf2 *dbgfmt_dwarf2 = (yasm_dbgfmt_dwarf2 *)object->dbgfmt; 256 yasm_dbgfmt_dwarf2 *dbgfmt_dwarf2 = (yasm_dbgfmt_dwarf2 *)object->dbgfmt;
257 dwarf2_head *head = (dwarf2_head *)bc->contents; 257 dwarf2_head *head = (dwarf2_head *)bc->contents;
258 unsigned char *buf = *bufp; 258 unsigned char *buf = *bufp;
259 yasm_intnum *intn, *cval; 259 yasm_intnum *intn, *cval;
260 260
261 if (dbgfmt_dwarf2->format == DWARF2_FORMAT_64BIT) { 261 if (dbgfmt_dwarf2->format == DWARF2_FORMAT_64BIT) {
(...skipping 19 matching lines...) Expand all
281 buf += 2; 281 buf += 2;
282 282
283 /* Pointer to another debug section */ 283 /* Pointer to another debug section */
284 if (head->debug_ptr) { 284 if (head->debug_ptr) {
285 yasm_value value; 285 yasm_value value;
286 yasm_value_init_sym(&value, 286 yasm_value_init_sym(&value,
287 yasm_dwarf2__bc_sym(object->symtab, 287 yasm_dwarf2__bc_sym(object->symtab,
288 yasm_section_bcs_first(head->debug_ptr)), 288 yasm_section_bcs_first(head->debug_ptr)),
289 dbgfmt_dwarf2->sizeof_offset*8); 289 dbgfmt_dwarf2->sizeof_offset*8);
290 output_value(&value, buf, dbgfmt_dwarf2->sizeof_offset, 290 output_value(&value, buf, dbgfmt_dwarf2->sizeof_offset,
291 (unsigned long)(buf-*bufp), bc, 0, d); 291 (unsigned long)(buf-bufstart), bc, 0, d);
292 buf += dbgfmt_dwarf2->sizeof_offset; 292 buf += dbgfmt_dwarf2->sizeof_offset;
293 } 293 }
294 294
295 /* Size of the offset portion of the address */ 295 /* Size of the offset portion of the address */
296 if (head->with_address) 296 if (head->with_address)
297 YASM_WRITE_8(buf, dbgfmt_dwarf2->sizeof_address); 297 YASM_WRITE_8(buf, dbgfmt_dwarf2->sizeof_address);
298 298
299 /* Size of a segment descriptor. 0 = flat address space */ 299 /* Size of a segment descriptor. 0 = flat address space */
300 if (head->with_segment) 300 if (head->with_segment)
301 YASM_WRITE_8(buf, 0); 301 YASM_WRITE_8(buf, 0);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 339
340 /* Define dbgfmt structure -- see dbgfmt.h for details */ 340 /* Define dbgfmt structure -- see dbgfmt.h for details */
341 yasm_dbgfmt_module yasm_dwarf2_LTX_dbgfmt = { 341 yasm_dbgfmt_module yasm_dwarf2_LTX_dbgfmt = {
342 "DWARF2 debugging format", 342 "DWARF2 debugging format",
343 "dwarf2", 343 "dwarf2",
344 dwarf2_directives, 344 dwarf2_directives,
345 dwarf2_dbgfmt_create, 345 dwarf2_dbgfmt_create,
346 dwarf2_dbgfmt_destroy, 346 dwarf2_dbgfmt_destroy,
347 dwarf2_dbgfmt_generate 347 dwarf2_dbgfmt_generate
348 }; 348 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698