Lines Matching refs:cts

1129 /* From 'c', get the Form data into 'cts'.  Either it gets a 1/2/4/8
1133 void get_Form_contents ( /*OUT*/FormContents* cts,
1137 VG_(bzero_inline)(cts, sizeof(*cts));
1143 cts->u.val = (ULong)(UChar)get_UChar(c);
1144 cts->szB = 1;
1145 TRACE_D3("%u", (UInt)cts->u.val);
1148 cts->u.val = (ULong)(UShort)get_UShort(c);
1149 cts->szB = 2;
1150 TRACE_D3("%u", (UInt)cts->u.val);
1153 cts->u.val = (ULong)(UInt)get_UInt(c);
1154 cts->szB = 4;
1155 TRACE_D3("%u", (UInt)cts->u.val);
1158 cts->u.val = get_ULong(c);
1159 cts->szB = 8;
1160 TRACE_D3("%llu", cts->u.val);
1163 cts->u.val = (ULong)get_Dwarfish_UWord( c, cc->is_dw64 );
1164 cts->szB = cc->is_dw64 ? 8 : 4;
1165 TRACE_D3("%llu", cts->u.val);
1168 cts->u.val = (ULong)(Long)get_SLEB128(c);
1169 cts->szB = 8;
1170 TRACE_D3("%lld", (Long)cts->u.val);
1173 cts->u.val = (ULong)(Long)get_ULEB128(c);
1174 cts->szB = 8;
1175 TRACE_D3("%llu", (Long)cts->u.val);
1184 cts->u.val = (ULong)(UWord)get_UWord(c);
1185 cts->szB = sizeof(UWord);
1186 TRACE_D3("0x%lx", (UWord)cts->u.val);
1209 cts->u.val = (ULong)(UWord)get_UWord(c);
1210 cts->szB = sizeof(UWord);
1212 cts->u.val = get_Dwarfish_UWord(c, cc->is_dw64);
1213 cts->szB = cc->is_dw64 ? sizeof(ULong) : sizeof(UInt);
1215 TRACE_D3("0x%lx", (UWord)cts->u.val);
1216 if (0) VG_(printf)("DW_FORM_ref_addr 0x%lx\n", (UWord)cts->u.val);
1219 || cts->u.val >= (ULong)cc->escn_debug_info.szB) {
1243 cts->u.cur = str;
1244 cts->szB = - (Long)(1 + (ULong)ML_(cur_strlen)(str));
1254 cts->u.cur = str;
1257 cts->szB = - (Long)(1 + (ULong)ML_(cur_strlen)(str));
1263 cts->u.val = (ULong)res;
1264 cts->szB = sizeof(UWord);
1271 cts->u.val = (ULong)res;
1272 cts->szB = sizeof(UWord);
1279 cts->u.val = (ULong)res;
1280 cts->szB = sizeof(UWord);
1287 cts->u.val = (ULong)res;
1288 cts->szB = sizeof(UWord);
1295 cts->u.val = (ULong)res;
1296 cts->szB = sizeof(UWord);
1303 cts->u.val = (ULong)u8;
1304 cts->szB = 1;
1309 cts->u.val = 1;
1310 cts->szB = 1;
1321 cts->u.cur = block;
1322 cts->szB = - (Long)u64;
1334 cts->u.cur = block;
1335 cts->szB = - (Long)u64;
1347 cts->u.cur = block;
1348 cts->szB = - (Long)u64;
1361 cts->u.cur = block;
1362 cts->szB = - (Long)u64;
1390 cts->u.val = lookup_signatured_type (cc->signature_types, signature,
1396 cts->u.val = 0; /* Assign a dummy/rubbish value */
1398 cts->szB = sizeof(UWord);
1402 get_Form_contents (cts, cc, c, td3, (DW_FORM)get_ULEB128(c));
1406 cts->u.val = get_Dwarfish_UWord(c, cc->is_dw64);
1407 cts->szB = cc->is_dw64 ? sizeof(ULong) : sizeof(UInt);
1408 TRACE_D3("0x%lx", (UWord)cts->u.val);
1409 if (0) VG_(printf)("DW_FORM_GNU_ref_alt 0x%lx\n", (UWord)cts->u.val);
1414 else if (cts->u.val >= (ULong)cc->escn_debug_info_alt.szB) {
1440 cts->u.cur = str;
1441 cts->szB = - (Long)(1 + (ULong)ML_(cur_strlen)(str));
1544 FormContents cts;
1548 get_Form_contents( &cts, cc, c_die, False /*td3*/,
1550 if ( cts.szB > 0 )
1551 *sibling = cts.u.val;
1554 get_Form_contents( &cts, cc, c_die, False /*td3*/,
1756 /* cts is derived from a DW_AT_location and so refers either to a
1761 static GExpr* get_GX ( const CUConst* cc, Bool td3, const FormContents* cts )
1764 if (cts->szB < 0) {
1766 cts->u.cur points at the image bytes */
1767 gexpr = make_singleton_GX( cts->u.cur, (ULong)(- cts->szB) );
1770 if (cts->szB > 0) {
1771 /* represents a location list. cts->u.val is the offset of it
1775 gexpr = make_general_GX( cc, td3, cts->u.val, cc->cu_svma );
1993 FormContents cts;
2020 get_Form_contents( &cts, cc, &c, True, form );
2021 if (attr == DW_AT_sibling && cts.szB > 0) {
2022 sibling = cts.u.val;
2077 FormContents cts;
2101 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
2102 if (attr == DW_AT_low_pc && cts.szB > 0) {
2103 ip_lo = cts.u.val;
2106 if (attr == DW_AT_high_pc && cts.szB > 0) {
2107 ip_hi1 = cts.u.val;
2112 if (attr == DW_AT_ranges && cts.szB > 0) {
2113 rangeoff = cts.u.val;
2117 if (cts.szB >= 0)
2119 HChar *str = ML_(cur_read_strdup)( cts.u.cur,
2124 if (attr == DW_AT_stmt_list && cts.szB > 0) {
2126 cc, cts.u.val, td3 );
2203 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
2204 if (attr == DW_AT_low_pc && cts.szB > 0) {
2205 ip_lo = cts.u.val;
2208 if (attr == DW_AT_high_pc && cts.szB > 0) {
2209 ip_hi1 = cts.u.val;
2214 if (attr == DW_AT_ranges && cts.szB > 0) {
2215 rangeoff = cts.u.val;
2220 && cts.szB != 0 /* either scalar or nonempty block */) {
2221 fbGX = get_GX( cc, False/*td3*/, &cts );
2289 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
2291 if (attr == DW_AT_name && cts.szB < 0) {
2292 name = ML_(addStrFromCursor)( cc->di, cts.u.cur );
2295 && cts.szB != 0 /* either scalar or nonempty block */) {
2296 gexpr = get_GX( cc, False/*td3*/, &cts );
2300 if (attr == DW_AT_type && cts.szB > 0) {
2301 typeR = cook_die_using_form( cc, cts.u.val, form );
2303 if (attr == DW_AT_external && cts.szB > 0 && cts.u.val > 0) {
2306 if (attr == DW_AT_abstract_origin && cts.szB > 0) {
2307 abs_ori = (UWord)cts.u.val;
2309 if (attr == DW_AT_declaration && cts.szB > 0 && cts.u.val > 0) {
2312 if (attr == DW_AT_decl_line && cts.szB > 0) {
2313 lineNo = (Int)cts.u.val;
2315 if (attr == DW_AT_decl_file && cts.szB > 0) {
2316 Int ftabIx = (Int)cts.u.val;
2585 FormContents cts;
2636 get_Form_contents( &cts, cc, &c, False/*td3*/, form );
2639 if (cts.szB >= 0)
2641 fnname = ML_(cur_read_strdup)( cts.u.cur,
2651 if (cts.szB == 0)
2657 cdie = cook_die_using_form(cc, (UWord)cts.u.val, form);
2692 FormContents cts;
2710 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
2711 if (attr == DW_AT_low_pc && cts.szB > 0) {
2712 ip_lo = cts.u.val;
2716 if (cts.szB >= 0)
2718 HChar *str = ML_(cur_read_strdup)( cts.u.cur,
2723 if (attr == DW_AT_stmt_list && cts.szB > 0) {
2725 cc, cts.u.val, td3 );
2727 if (attr == DW_AT_sibling && cts.szB > 0) {
2728 parser->sibling = cts.u.val;
2753 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
2754 if (attr == DW_AT_call_file && cts.szB > 0) {
2755 Int ftabIx = (Int)cts.u.val;
2764 if (attr == DW_AT_call_line && cts.szB > 0) {
2765 caller_lineno = cts.u.val;
2768 if (attr == DW_AT_abstract_origin && cts.szB > 0) {
2770 = cook_die_using_form (cc, (UWord)cts.u.val, form);
2773 if (attr == DW_AT_low_pc && cts.szB > 0) {
2774 ip_lo = cts.u.val;
2777 if (attr == DW_AT_high_pc && cts.szB > 0) {
2778 ip_hi1 = cts.u.val;
2783 if (attr == DW_AT_ranges && cts.szB > 0) {
2784 rangeoff = cts.u.val;
2787 if (attr == DW_AT_sibling && cts.szB > 0) {
2788 parser->sibling = cts.u.val;
3034 FormContents cts;
3065 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3068 if (cts.szB <= 0)
3070 switch (cts.u.val) {
3107 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3108 if (attr == DW_AT_name && cts.szB < 0) {
3110 = ML_(cur_read_strdup)( cts.u.cur,
3113 if (attr == DW_AT_byte_size && cts.szB > 0) {
3114 typeE.Te.TyBase.szB = cts.u.val;
3116 if (attr == DW_AT_encoding && cts.szB > 0) {
3117 switch (cts.u.val) {
3218 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3219 if (attr == DW_AT_byte_size && cts.szB > 0) {
3220 typeE.Te.TyPorR.szB = cts.u.val;
3222 if (attr == DW_AT_type && cts.szB > 0) {
3224 = cook_die_using_form( cc, (UWord)cts.u.val, form );
3250 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3251 if (attr == DW_AT_name && cts.szB < 0) {
3253 = ML_(cur_read_strdup)( cts.u.cur,
3256 if (attr == DW_AT_byte_size && cts.szB > 0) {
3257 typeE.Te.TyEnum.szB = cts.u.val;
3331 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3332 if (attr == DW_AT_name && cts.szB < 0) {
3334 = ML_(cur_read_strdup)( cts.u.cur,
3337 if (attr == DW_AT_const_value && cts.szB > 0) {
3338 atomE.Te.Atom.value = cts.u.val;
3386 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3387 if (attr == DW_AT_name && cts.szB < 0) {
3389 = ML_(cur_read_strdup)( cts.u.cur,
3392 if (attr == DW_AT_byte_size && cts.szB >= 0) {
3393 typeE.Te.TyStOrUn.szB = cts.u.val;
3396 if (attr == DW_AT_declaration && cts.szB > 0 && cts.u.val > 0) {
3399 if (attr == DW_AT_specification && cts.szB > 0 && cts.u.val > 0) {
3403 && cts.szB > 0) {
3407 = cook_die_using_form( cc, (UWord)cts.u.val, form );
3473 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3474 if (attr == DW_AT_name && cts.szB < 0) {
3476 = ML_(cur_read_strdup)( cts.u.cur,
3479 if (attr == DW_AT_type && cts.szB > 0) {
3481 = cook_die_using_form( cc, (UWord)cts.u.val, form );
3487 if (attr == DW_AT_data_member_location && cts.szB > 0) {
3489 fieldE.Te.Field.pos.offset = cts.u.val;
3491 if (attr == DW_AT_data_member_location && cts.szB <= 0) {
3492 fieldE.Te.Field.nLoc = (UWord)(-cts.szB);
3494 = ML_(cur_read_memdup)( cts.u.cur,
3560 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3561 if (attr == DW_AT_type && cts.szB > 0) {
3563 = cook_die_using_form( cc, (UWord)cts.u.val, form );
3600 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3601 if (attr == DW_AT_lower_bound && cts.szB > 0) {
3602 lower = (Long)cts.u.val;
3605 if (attr == DW_AT_upper_bound && cts.szB > 0) {
3606 upper = (Long)cts.u.val;
3609 if (attr == DW_AT_count && cts.szB > 0) {
3610 /*count = (Long)cts.u.val;*/
3681 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3682 if (attr == DW_AT_name && cts.szB < 0) {
3684 = ML_(cur_read_strdup)( cts.u.cur,
3687 if (attr == DW_AT_type && cts.szB > 0) {
3689 = cook_die_using_form( cc, (UWord)cts.u.val, form );
3731 get_Form_contents( &cts, cc, c_die, False/*td3*/, form );
3732 if (attr == DW_AT_type && cts.szB > 0) {
3734 = cook_die_using_form( cc, (UWord)cts.u.val, form );