Lines Matching refs:info

295 ieee_error (struct ieee_info *info, const bfd_byte *p, const char *s)  in ieee_error()  argument
298 fprintf (stderr, "%s: 0x%lx: %s (0x%x)\n", bfd_get_filename (info->abfd), in ieee_error()
299 (unsigned long) (p - info->bytes), s, *p); in ieee_error()
301 fprintf (stderr, "%s: %s\n", bfd_get_filename (info->abfd), s); in ieee_error()
307 ieee_eof (struct ieee_info *info) in ieee_eof() argument
309 ieee_error (info, (const bfd_byte *) NULL, in ieee_eof()
329 ieee_read_number (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv) in ieee_read_number() argument
331 return ieee_read_optional_number (info, pp, pv, (bfd_boolean *) NULL); in ieee_read_number()
338 ieee_read_optional_number (struct ieee_info *info, const bfd_byte **pp, in ieee_read_optional_number() argument
343 if (*pp >= info->pend) in ieee_read_optional_number()
350 ieee_eof (info); in ieee_read_optional_number()
370 if (*pp + i - 1 >= info->pend) in ieee_read_optional_number()
372 ieee_eof (info); in ieee_read_optional_number()
397 ieee_error (info, *pp - 1, _("invalid number")); in ieee_read_optional_number()
404 ieee_read_id (struct ieee_info *info, const bfd_byte **pp, in ieee_read_id() argument
407 return ieee_read_optional_id (info, pp, pname, pnamlen, (bfd_boolean *) NULL); in ieee_read_id()
414 ieee_read_optional_id (struct ieee_info *info, const bfd_byte **pp, in ieee_read_optional_id() argument
421 if (*pp >= info->pend) in ieee_read_optional_id()
423 ieee_eof (info); in ieee_read_optional_id()
450 ieee_error (info, *pp - 1, _("invalid string length")); in ieee_read_optional_id()
454 if ((unsigned long) (info->pend - *pp) < len) in ieee_read_optional_id()
456 ieee_eof (info); in ieee_read_optional_id()
477 ieee_read_expression (struct ieee_info *info, const bfd_byte **pp, in ieee_read_expression() argument
498 if (! ieee_read_optional_number (info, pp, &val, &present)) in ieee_read_expression()
505 ieee_error (info, start, _("expression stack overflow")); in ieee_read_expression()
525 ieee_error (info, start, _("unsupported IEEE expression operator")); in ieee_read_expression()
533 if (! ieee_read_number (info, pp, &indx)) in ieee_read_expression()
535 for (s = info->abfd->sections; s != NULL; s = s->next) in ieee_read_expression()
540 ieee_error (info, start, _("unknown section")); in ieee_read_expression()
546 ieee_error (info, start, _("expression stack overflow")); in ieee_read_expression()
550 *esp++ = bfd_get_section_vma (info->abfd, s); in ieee_read_expression()
561 ieee_error (info, start, _("expression stack underflow")); in ieee_read_expression()
575 ieee_error (info, expr_start, _("expression stack mismatch")); in ieee_read_expression()
587 ieee_builtin_type (struct ieee_info *info, const bfd_byte *p, in ieee_builtin_type() argument
595 && info->types.builtins[indx] != DEBUG_TYPE_NULL) in ieee_builtin_type()
596 return info->types.builtins[indx]; in ieee_builtin_type()
598 dhandle = info->dhandle; in ieee_builtin_type()
603 ieee_builtin_type (info, p, indx - 32)); in ieee_builtin_type()
605 info->types.builtins[indx] = type; in ieee_builtin_type()
612 ieee_error (info, p, _("unknown builtin type")); in ieee_builtin_type()
689 ieee_builtin_type (info, p, in ieee_builtin_type()
692 ieee_builtin_type (info, p, in ieee_builtin_type()
757 ieee_error (info, p, _("BCD float type not supported")); in ieee_builtin_type()
766 info->types.builtins[indx] = type; in ieee_builtin_type()
776 ieee_alloc_type (struct ieee_info *info, unsigned int indx, bfd_boolean ref) in ieee_alloc_type() argument
782 if (indx >= info->types.alloc) in ieee_alloc_type()
784 nalloc = info->types.alloc; in ieee_alloc_type()
790 info->types.types = ((struct ieee_type *) in ieee_alloc_type()
791 xrealloc (info->types.types, in ieee_alloc_type()
792 nalloc * sizeof *info->types.types)); in ieee_alloc_type()
794 memset (info->types.types + info->types.alloc, 0, in ieee_alloc_type()
795 (nalloc - info->types.alloc) * sizeof *info->types.types); in ieee_alloc_type()
797 tend = info->types.types + nalloc; in ieee_alloc_type()
798 for (t = info->types.types + info->types.alloc; t < tend; t++) in ieee_alloc_type()
801 info->types.alloc = nalloc; in ieee_alloc_type()
806 t = info->types.types + indx; in ieee_alloc_type()
811 t->type = debug_make_indirect_type (info->dhandle, t->pslot, in ieee_alloc_type()
824 ieee_read_type_index (struct ieee_info *info, const bfd_byte **pp, in ieee_read_type_index() argument
832 if (! ieee_read_number (info, pp, &indx)) in ieee_read_type_index()
837 *ptype = ieee_builtin_type (info, start, indx); in ieee_read_type_index()
844 if (! ieee_alloc_type (info, indx, TRUE)) in ieee_read_type_index()
847 *ptype = info->types.types[indx].type; in ieee_read_type_index()
858 struct ieee_info info; in parse_ieee() local
862 info.dhandle = dhandle; in parse_ieee()
863 info.abfd = abfd; in parse_ieee()
864 info.bytes = bytes; in parse_ieee()
865 info.pend = bytes + len; in parse_ieee()
866 info.blockstack.bsp = info.blockstack.stack; in parse_ieee()
867 info.saw_filename = FALSE; in parse_ieee()
868 info.vars.alloc = 0; in parse_ieee()
869 info.vars.vars = NULL; in parse_ieee()
870 info.global_vars = NULL; in parse_ieee()
871 info.types.alloc = 0; in parse_ieee()
872 info.types.types = NULL; in parse_ieee()
873 info.global_types = NULL; in parse_ieee()
874 info.tags = NULL; in parse_ieee()
876 info.types.builtins[i] = DEBUG_TYPE_NULL; in parse_ieee()
879 pend = info.pend; in parse_ieee()
894 ieee_error (&info, record_start, _("unexpected number")); in parse_ieee()
901 ieee_error (&info, record_start, _("unexpected record type")); in parse_ieee()
905 if (! parse_ieee_bb (&info, &p)) in parse_ieee()
910 if (! parse_ieee_be (&info, &p)) in parse_ieee()
915 if (! parse_ieee_nn (&info, &p)) in parse_ieee()
920 if (! parse_ieee_ty (&info, &p)) in parse_ieee()
925 if (! parse_ieee_atn (&info, &p)) in parse_ieee()
931 if (info.blockstack.bsp != info.blockstack.stack) in parse_ieee()
933 ieee_error (&info, (const bfd_byte *) NULL, in parse_ieee()
944 parse_ieee_bb (struct ieee_info *info, const bfd_byte **pp) in parse_ieee_bb() argument
960 if (! ieee_read_number (info, pp, &size) in parse_ieee_bb()
961 || ! ieee_read_id (info, pp, &name, &namlen)) in parse_ieee_bb()
974 if (! debug_set_filename (info->dhandle, namcopy)) in parse_ieee_bb()
976 info->saw_filename = TRUE; in parse_ieee_bb()
979 if (info->vars.vars != NULL) in parse_ieee_bb()
980 free (info->vars.vars); in parse_ieee_bb()
981 info->vars.vars = NULL; in parse_ieee_bb()
982 info->vars.alloc = 0; in parse_ieee_bb()
983 if (info->types.types != NULL) in parse_ieee_bb()
984 free (info->types.types); in parse_ieee_bb()
985 info->types.types = NULL; in parse_ieee_bb()
986 info->types.alloc = 0; in parse_ieee_bb()
989 if (info->global_types != NULL) in parse_ieee_bb()
991 info->types.alloc = info->global_types->alloc; in parse_ieee_bb()
992 info->types.types = ((struct ieee_type *) in parse_ieee_bb()
993 xmalloc (info->types.alloc in parse_ieee_bb()
994 * sizeof (*info->types.types))); in parse_ieee_bb()
995 memcpy (info->types.types, info->global_types->types, in parse_ieee_bb()
996 info->types.alloc * sizeof (*info->types.types)); in parse_ieee_bb()
1004 if (! debug_set_filename (info->dhandle, "*global*")) in parse_ieee_bb()
1006 info->saw_filename = TRUE; in parse_ieee_bb()
1021 if (! ieee_read_number (info, pp, &stackspace) in parse_ieee_bb()
1022 || ! ieee_read_number (info, pp, &typindx) in parse_ieee_bb()
1023 || ! ieee_read_expression (info, pp, &offset)) in parse_ieee_bb()
1030 return_type = ieee_builtin_type (info, block_start, typindx); in parse_ieee_bb()
1037 if (! ieee_alloc_type (info, typindx, TRUE)) in parse_ieee_bb()
1040 return_type = info->types.types[typindx].type; in parse_ieee_bb()
1041 if (debug_get_type_kind (info->dhandle, return_type) in parse_ieee_bb()
1043 return_type = debug_get_return_type (info->dhandle, in parse_ieee_bb()
1050 if (! debug_record_function (info->dhandle, namcopy, return_type, in parse_ieee_bb()
1067 if (! ieee_read_optional_number (info, pp, &ignore, &present)) in parse_ieee_bb()
1073 if (! info->saw_filename) in parse_ieee_bb()
1078 if (! debug_set_filename (info->dhandle, namcopy)) in parse_ieee_bb()
1080 info->saw_filename = TRUE; in parse_ieee_bb()
1086 if (! debug_start_source (info->dhandle, namcopy)) in parse_ieee_bb()
1096 if (! ieee_read_number (info, pp, &stackspace) in parse_ieee_bb()
1097 || ! ieee_read_number (info, pp, &typindx) in parse_ieee_bb()
1098 || ! ieee_read_expression (info, pp, &offset)) in parse_ieee_bb()
1105 if (! debug_start_block (info->dhandle, offset)) in parse_ieee_bb()
1126 return_type = ieee_builtin_type (info, block_start, in parse_ieee_bb()
1134 if (! ieee_alloc_type (info, typindx, TRUE)) in parse_ieee_bb()
1137 return_type = info->types.types[typindx].type; in parse_ieee_bb()
1138 if (debug_get_type_kind (info->dhandle, return_type) in parse_ieee_bb()
1140 return_type = debug_get_return_type (info->dhandle, in parse_ieee_bb()
1147 if (! debug_record_function (info->dhandle, namcopy, in parse_ieee_bb()
1165 if (! info->saw_filename) in parse_ieee_bb()
1170 if (! debug_set_filename (info->dhandle, namcopy)) in parse_ieee_bb()
1172 info->saw_filename = TRUE; in parse_ieee_bb()
1175 if (! ieee_read_id (info, pp, &inam, &inamlen) in parse_ieee_bb()
1176 || ! ieee_read_number (info, pp, &tool_type) in parse_ieee_bb()
1177 || ! ieee_read_optional_id (info, pp, &vstr, &vstrlen, &present)) in parse_ieee_bb()
1183 if (! ieee_read_optional_number (info, pp, &ignore, &present)) in parse_ieee_bb()
1198 if (! ieee_read_number (info, pp, &sectype) in parse_ieee_bb()
1199 || ! ieee_read_number (info, pp, &secindx) in parse_ieee_bb()
1200 || ! ieee_read_expression (info, pp, &offset) in parse_ieee_bb()
1201 || ! ieee_read_optional_number (info, pp, &map, &present)) in parse_ieee_bb()
1207 ieee_error (info, block_start, _("unknown BB type")); in parse_ieee_bb()
1214 if (info->blockstack.bsp >= info->blockstack.stack + BLOCKSTACK_SIZE) in parse_ieee_bb()
1216 ieee_error (info, (const bfd_byte *) NULL, _("stack overflow")); in parse_ieee_bb()
1220 info->blockstack.bsp->kind = b; in parse_ieee_bb()
1222 info->blockstack.bsp->filename = namcopy; in parse_ieee_bb()
1223 info->blockstack.bsp->fnindx = fnindx; in parse_ieee_bb()
1224 info->blockstack.bsp->skip = skip; in parse_ieee_bb()
1225 ++info->blockstack.bsp; in parse_ieee_bb()
1233 parse_ieee_be (struct ieee_info *info, const bfd_byte **pp) in parse_ieee_be() argument
1237 if (info->blockstack.bsp <= info->blockstack.stack) in parse_ieee_be()
1239 ieee_error (info, *pp, _("stack underflow")); in parse_ieee_be()
1242 --info->blockstack.bsp; in parse_ieee_be()
1244 switch (info->blockstack.bsp->kind) in parse_ieee_be()
1253 info->global_vars = ((struct ieee_vars *) in parse_ieee_be()
1254 xmalloc (sizeof *info->global_vars)); in parse_ieee_be()
1255 info->global_vars->alloc = info->vars.alloc; in parse_ieee_be()
1256 info->global_vars->vars = ((struct ieee_var *) in parse_ieee_be()
1257 xmalloc (info->vars.alloc in parse_ieee_be()
1258 * sizeof (*info->vars.vars))); in parse_ieee_be()
1259 memcpy (info->global_vars->vars, info->vars.vars, in parse_ieee_be()
1260 info->vars.alloc * sizeof (*info->vars.vars)); in parse_ieee_be()
1264 info->global_types = ((struct ieee_types *) in parse_ieee_be()
1265 xmalloc (sizeof *info->global_types)); in parse_ieee_be()
1266 info->global_types->alloc = info->types.alloc; in parse_ieee_be()
1267 info->global_types->types = ((struct ieee_type *) in parse_ieee_be()
1268 xmalloc (info->types.alloc in parse_ieee_be()
1269 * sizeof (*info->types.types))); in parse_ieee_be()
1270 memcpy (info->global_types->types, info->types.types, in parse_ieee_be()
1271 info->types.alloc * sizeof (*info->types.types)); in parse_ieee_be()
1272 memset (info->global_types->builtins, 0, in parse_ieee_be()
1273 sizeof (info->global_types->builtins)); in parse_ieee_be()
1279 if (! ieee_read_expression (info, pp, &offset)) in parse_ieee_be()
1281 if (! info->blockstack.bsp->skip) in parse_ieee_be()
1283 if (! debug_end_function (info->dhandle, offset + 1)) in parse_ieee_be()
1291 if (! ieee_read_expression (info, pp, &offset)) in parse_ieee_be()
1293 if (! debug_end_block (info->dhandle, offset + 1)) in parse_ieee_be()
1300 if (info->blockstack.bsp > info->blockstack.stack) in parse_ieee_be()
1304 bl = info->blockstack.bsp; in parse_ieee_be()
1310 if (! debug_start_source (info->dhandle, bl->filename)) in parse_ieee_be()
1315 while (bl != info->blockstack.stack); in parse_ieee_be()
1320 if (! ieee_read_expression (info, pp, &offset)) in parse_ieee_be()
1336 parse_ieee_nn (struct ieee_info *info, const bfd_byte **pp) in parse_ieee_nn() argument
1345 if (! ieee_read_number (info, pp, &varindx) in parse_ieee_nn()
1346 || ! ieee_read_id (info, pp, &name, &namlen)) in parse_ieee_nn()
1351 ieee_error (info, nn_start, _("illegal variable index")); in parse_ieee_nn()
1356 if (varindx >= info->vars.alloc) in parse_ieee_nn()
1360 alloc = info->vars.alloc; in parse_ieee_nn()
1365 info->vars.vars = ((struct ieee_var *) in parse_ieee_nn()
1366 xrealloc (info->vars.vars, in parse_ieee_nn()
1367 alloc * sizeof *info->vars.vars)); in parse_ieee_nn()
1368 memset (info->vars.vars + info->vars.alloc, 0, in parse_ieee_nn()
1369 (alloc - info->vars.alloc) * sizeof *info->vars.vars); in parse_ieee_nn()
1370 info->vars.alloc = alloc; in parse_ieee_nn()
1373 info->vars.vars[varindx].name = name; in parse_ieee_nn()
1374 info->vars.vars[varindx].namlen = namlen; in parse_ieee_nn()
1382 parse_ieee_ty (struct ieee_info *info, const bfd_byte **pp) in parse_ieee_ty() argument
1394 if (! ieee_read_number (info, pp, &typeindx)) in parse_ieee_ty()
1399 ieee_error (info, ty_start, _("illegal type index")); in parse_ieee_ty()
1404 if (! ieee_alloc_type (info, typeindx, FALSE)) in parse_ieee_ty()
1409 ieee_error (info, *pp, _("unknown TY code")); in parse_ieee_ty()
1416 if (! ieee_read_number (info, pp, &varindx)) in parse_ieee_ty()
1421 ieee_error (info, ty_var_start, _("illegal variable index")); in parse_ieee_ty()
1426 if (varindx >= info->vars.alloc || info->vars.vars[varindx].name == NULL) in parse_ieee_ty()
1428 ieee_error (info, ty_var_start, _("undefined variable in TY")); in parse_ieee_ty()
1434 if (! ieee_read_number (info, pp, &tc)) in parse_ieee_ty()
1437 dhandle = info->dhandle; in parse_ieee_ty()
1446 ieee_error (info, ty_code_start, _("unknown TY code")); in parse_ieee_ty()
1454 if (! ieee_read_number (info, pp, &size)) in parse_ieee_ty()
1467 if (! ieee_read_type_index (info, pp, &ele_type) in parse_ieee_ty()
1468 || ! ieee_read_number (info, pp, &lower) in parse_ieee_ty()
1469 || ! ieee_read_number (info, pp, &upper)) in parse_ieee_ty()
1472 ieee_builtin_type (info, ty_code_start, in parse_ieee_ty()
1491 if (! ieee_read_number (info, pp, &size)) in parse_ieee_ty()
1505 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_ty()
1542 if (! ieee_read_number (info, pp, &size)) in parse_ieee_ty()
1556 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_ty()
1560 if (! ieee_read_type_index (info, pp, &ftype) in parse_ieee_ty()
1561 || ! ieee_read_number (info, pp, &bitpos) in parse_ieee_ty()
1562 || ! ieee_read_number (info, pp, &bitsize)) in parse_ieee_ty()
1606 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_ty()
1610 if (! ieee_read_number (info, pp, &val)) in parse_ieee_ty()
1648 if (! ieee_read_type_index (info, pp, &t)) in parse_ieee_ty()
1659 if (! ieee_read_number (info, pp, &low) in parse_ieee_ty()
1660 || ! ieee_read_number (info, pp, &high) in parse_ieee_ty()
1661 || ! ieee_read_number (info, pp, &signedp) in parse_ieee_ty()
1662 || ! ieee_read_number (info, pp, &size)) in parse_ieee_ty()
1681 if (! ieee_read_number (info, pp, &size)) in parse_ieee_ty()
1697 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_ty()
1701 if (! ieee_read_number (info, pp, &tindx) in parse_ieee_ty()
1702 || ! ieee_read_number (info, pp, &offset)) in parse_ieee_ty()
1707 ftype = ieee_builtin_type (info, ty_code_start, tindx); in parse_ieee_ty()
1716 if (! ieee_alloc_type (info, tindx, TRUE)) in parse_ieee_ty()
1718 t = info->types.types + tindx; in parse_ieee_ty()
1749 if (! ieee_read_type_index (info, pp, &type)) in parse_ieee_ty()
1766 if (! ieee_read_number (info, pp, &attr) in parse_ieee_ty()
1767 || ! ieee_read_type_index (info, pp, &rtype) in parse_ieee_ty()
1768 || ! ieee_read_number (info, pp, &nargs)) in parse_ieee_ty()
1775 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_ty()
1780 pv = info->vars.vars + varindx; in parse_ieee_ty()
1811 if (! ieee_read_type_index (info, pp, &etype) in parse_ieee_ty()
1812 || ! ieee_read_number (info, pp, &high)) in parse_ieee_ty()
1816 ieee_builtin_type (info, ty_code_start, in parse_ieee_ty()
1831 if (! ieee_read_id (info, pp, &name, &namlen)) in parse_ieee_ty()
1840 ieee_error (info, ty_code_start, _("Pascal file name not supported")); in parse_ieee_ty()
1850 if (! ieee_read_number (info, pp, &signedp) in parse_ieee_ty()
1851 || ! ieee_read_number (info, pp, &bitsize)) in parse_ieee_ty()
1857 if (! ieee_read_optional_number (info, pp, &dummy, &present)) in parse_ieee_ty()
1868 if (! ieee_read_type_index (info, pp, &type)) in parse_ieee_ty()
1881 if (! ieee_read_number (info, pp, &kind) in parse_ieee_ty()
1882 || ! ieee_read_type_index (info, pp, &t)) in parse_ieee_ty()
1888 ieee_error (info, ty_start, _("unsupported qualifier")); in parse_ieee_ty()
1908 if (! ieee_read_number (info, pp, &size) in parse_ieee_ty()
1909 || ! ieee_read_type_index (info, pp, &etype)) in parse_ieee_ty()
1930 pv = info->vars.vars + varindx; in parse_ieee_ty()
1932 if (! ieee_read_number (info, pp, &attr) in parse_ieee_ty()
1933 || ! ieee_read_number (info, pp, &frame_type) in parse_ieee_ty()
1934 || ! ieee_read_number (info, pp, &push_mask) in parse_ieee_ty()
1935 || ! ieee_read_type_index (info, pp, &rtype) in parse_ieee_ty()
1936 || ! ieee_read_number (info, pp, &nargs)) in parse_ieee_ty()
1950 if (! ieee_read_type_index (info, pp, arg_types + i)) in parse_ieee_ty()
1996 if (! ieee_read_number (info, pp, &level) in parse_ieee_ty()
1997 || ! ieee_read_optional_number (info, pp, &father, &present)) in parse_ieee_ty()
2026 info->vars.vars[varindx].type = type; in parse_ieee_ty()
2029 && info->vars.vars[varindx].namlen > 0) in parse_ieee_ty()
2033 name = savestring (info->vars.vars[varindx].name, in parse_ieee_ty()
2034 info->vars.vars[varindx].namlen); in parse_ieee_ty()
2049 it->next = info->tags; in parse_ieee_ty()
2050 info->tags = it; in parse_ieee_ty()
2063 info->types.types[typeindx].type = type; in parse_ieee_ty()
2064 info->types.types[typeindx].arg_slots = arg_slots; in parse_ieee_ty()
2065 info->types.types[typeindx].bitsize = type_bitsize; in parse_ieee_ty()
2071 if (info->types.types[typeindx].pslot != NULL) in parse_ieee_ty()
2072 *info->types.types[typeindx].pslot = type; in parse_ieee_ty()
2080 parse_ieee_atn (struct ieee_info *info, const bfd_byte **pp) in parse_ieee_atn() argument
2097 if (! ieee_read_number (info, pp, &varindx) in parse_ieee_atn()
2098 || ! ieee_read_type_index (info, pp, &type)) in parse_ieee_atn()
2103 if (! ieee_read_number (info, pp, &atn_code)) in parse_ieee_atn()
2117 return ieee_read_number (info, pp, &v); in parse_ieee_atn()
2119 ieee_error (info, atn_start, _("illegal variable index")); in parse_ieee_atn()
2125 if (varindx >= info->vars.alloc in parse_ieee_atn()
2126 || info->vars.vars[varindx].name == NULL) in parse_ieee_atn()
2132 if (varindx >= info->vars.alloc) in parse_ieee_atn()
2136 alloc = info->vars.alloc; in parse_ieee_atn()
2141 info->vars.vars = ((struct ieee_var *) in parse_ieee_atn()
2142 xrealloc (info->vars.vars, in parse_ieee_atn()
2144 * sizeof *info->vars.vars))); in parse_ieee_atn()
2145 memset (info->vars.vars + info->vars.alloc, 0, in parse_ieee_atn()
2146 ((alloc - info->vars.alloc) in parse_ieee_atn()
2147 * sizeof *info->vars.vars)); in parse_ieee_atn()
2148 info->vars.alloc = alloc; in parse_ieee_atn()
2151 pvar = info->vars.vars + varindx; in parse_ieee_atn()
2157 ieee_error (info, atn_start, _("undefined variable in ATN")); in parse_ieee_atn()
2162 pvar = info->vars.vars + varindx; in parse_ieee_atn()
2170 dhandle = info->dhandle; in parse_ieee_atn()
2200 ieee_error (info, atn_code_start, _("unknown ATN type")); in parse_ieee_atn()
2205 if (! ieee_read_number (info, pp, &v)) in parse_ieee_atn()
2216 if (! ieee_read_number (info, pp, &v)) in parse_ieee_atn()
2224 ieee_regno_to_genreg (info->abfd, v)); in parse_ieee_atn()
2228 if (! ieee_require_asn (info, pp, &v)) in parse_ieee_atn()
2233 if (info->blockstack.bsp <= info->blockstack.stack) in parse_ieee_atn()
2236 blocktype = info->blockstack.bsp[-1].kind; in parse_ieee_atn()
2263 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2264 || ! ieee_read_number (info, pp, &v2) in parse_ieee_atn()
2265 || ! ieee_read_optional_number (info, pp, &v3, &present)) in parse_ieee_atn()
2269 if (! ieee_read_optional_number (info, pp, &v4, &present)) in parse_ieee_atn()
2276 if (! ieee_require_asn (info, pp, &v3)) in parse_ieee_atn()
2285 if (! ieee_require_asn (info, pp, &v)) in parse_ieee_atn()
2296 if (! ieee_read_number (info, pp, &v)) in parse_ieee_atn()
2306 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2307 || ! ieee_read_optional_number (info, pp, &v2, &present)) in parse_ieee_atn()
2322 ieee_error (info, atn_code_start, _("unsupported ATN11")); in parse_ieee_atn()
2332 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2333 || ! ieee_read_number (info, pp, &v2) in parse_ieee_atn()
2334 || ! ieee_read_optional_number (info, pp, &v3, &present)) in parse_ieee_atn()
2338 if (! ieee_read_optional_number (info, pp, &v4, &present)) in parse_ieee_atn()
2342 if (! ieee_read_optional_number (info, pp, &v5, &present)) in parse_ieee_atn()
2349 ieee_error (info, atn_code_start, _("unsupported ATN12")); in parse_ieee_atn()
2357 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2358 || ! ieee_read_optional_number (info, pp, &v2, &present)) in parse_ieee_atn()
2362 if (! ieee_read_optional_number (info, pp, &v2, &present)) in parse_ieee_atn()
2366 if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_atn()
2373 if (! ieee_require_asn (info, pp, &v3)) in parse_ieee_atn()
2382 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2383 || ! ieee_read_optional_number (info, pp, &v2, &present) in parse_ieee_atn()
2384 || ! ieee_require_asn (info, pp, &v3)) in parse_ieee_atn()
2399 if (! ieee_read_number (info, pp, &v) in parse_ieee_atn()
2400 || ! ieee_read_number (info, pp, &v2) in parse_ieee_atn()
2401 || ! ieee_read_optional_id (info, pp, &name, &namlen, &present)) in parse_ieee_atn()
2408 ieee_error (info, atn_code_start, in parse_ieee_atn()
2412 return ieee_read_cxx_misc (info, pp, v2); in parse_ieee_atn()
2422 ieee_error (info, *pp, _("bad misc record")); in parse_ieee_atn()
2426 if (! ieee_require_atn65 (info, pp, &name, &namlen)) in parse_ieee_atn()
2431 if (! ieee_require_asn (info, pp, &v3)) in parse_ieee_atn()
2447 ieee_read_cxx_misc (struct ieee_info *info, const bfd_byte **pp, in ieee_read_cxx_misc() argument
2456 if (! ieee_require_asn (info, pp, &category)) in ieee_read_cxx_misc()
2463 ieee_error (info, start, _("unrecognized C++ misc record")); in ieee_read_cxx_misc()
2467 if (! ieee_read_cxx_class (info, pp, count)) in ieee_read_cxx_misc()
2481 if (! ieee_require_asn (info, pp, &flags)) in ieee_read_cxx_misc()
2483 if (*pp < info->pend in ieee_read_cxx_misc()
2486 if (! ieee_require_atn65 (info, pp, &name, &namlen)) in ieee_read_cxx_misc()
2498 if (! ieee_read_cxx_defaults (info, pp, count)) in ieee_read_cxx_misc()
2510 if (! ieee_require_atn65 (info, pp, &name, &namlen) in ieee_read_cxx_misc()
2511 || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen) in ieee_read_cxx_misc()
2512 || ! ieee_require_atn65 (info, pp, &cxx_class, &classlen) in ieee_read_cxx_misc()
2513 || ! ieee_require_asn (info, pp, &control)) in ieee_read_cxx_misc()
2521 if (! ieee_read_reference (info, pp)) in ieee_read_cxx_misc()
2533 ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp, in ieee_read_cxx_class() argument
2562 if (! ieee_require_asn (info, pp, &cxx_class)) in ieee_read_cxx_class()
2566 if (! ieee_require_atn65 (info, pp, &tag, &taglen)) in ieee_read_cxx_class()
2571 for (it = info->tags; it != NULL; it = it->next) in ieee_read_cxx_class()
2578 ieee_error (info, start, _("undefined C++ object")); in ieee_read_cxx_class()
2582 dhandle = info->dhandle; in ieee_read_cxx_class()
2605 if (! ieee_require_asn (info, pp, &id)) in ieee_read_cxx_class()
2612 ieee_error (info, spec_start, _("unrecognized C++ object spec")); in ieee_read_cxx_class()
2629 if (! ieee_require_asn (info, pp, &flags) in ieee_read_cxx_class()
2630 || ! ieee_require_atn65 (info, pp, &base, &baselen) in ieee_read_cxx_class()
2631 || ! ieee_require_asn (info, pp, &cinline) in ieee_read_cxx_class()
2632 || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen)) in ieee_read_cxx_class()
2648 ieee_error (info, start, _("unsupported C++ object type")); in ieee_read_cxx_class()
2658 ieee_error (info, start, _("C++ base class not defined")); in ieee_read_cxx_class()
2670 ieee_error (info, start, _("C++ object has no fields")); in ieee_read_cxx_class()
2688 ieee_error (info, start, in ieee_read_cxx_class()
2739 if (! ieee_require_asn (info, pp, &flags) in ieee_read_cxx_class()
2740 || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen) in ieee_read_cxx_class()
2741 || ! ieee_require_atn65 (info, pp, &mangledname, &mangledlen)) in ieee_read_cxx_class()
2754 pv = info->vars.vars; in ieee_read_cxx_class()
2755 pvend = pv + info->vars.alloc; in ieee_read_cxx_class()
2765 ftype = ieee_builtin_type (info, start, in ieee_read_cxx_class()
2775 ieee_error (info, start, _("C++ object has no fields")); in ieee_read_cxx_class()
2795 ieee_error (info, start, in ieee_read_cxx_class()
2837 ieee_error (info, start, _("unknown C++ visibility")); in ieee_read_cxx_class()
2871 ieee_error (info, start, _("bad C++ field bit pos or size")); in ieee_read_cxx_class()
2909 if (! ieee_require_asn (info, pp, &flags) in ieee_read_cxx_class()
2910 || ! ieee_require_atn65 (info, pp, &name, &namlen) in ieee_read_cxx_class()
2911 || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)) in ieee_read_cxx_class()
2918 if (! ieee_require_asn (info, pp, &voffset)) in ieee_read_cxx_class()
2922 if (! ieee_require_asn (info, pp, &control)) in ieee_read_cxx_class()
2934 pv = info->vars.vars; in ieee_read_cxx_class()
2935 pvend = pv + info->vars.alloc; in ieee_read_cxx_class()
2948 ieee_builtin_type (info, start, in ieee_read_cxx_class()
2962 ieee_error (info, start, in ieee_read_cxx_class()
2972 ieee_error (info, start, in ieee_read_cxx_class()
2987 ieee_error (info, start, _("unknown C++ visibility")); in ieee_read_cxx_class()
3012 ieee_error (info, start, _("C++ static virtual method")); in ieee_read_cxx_class()
3081 if (! ieee_require_asn (info, pp, &spec)) in ieee_read_cxx_class()
3090 if (! ieee_require_atn65 (info, pp, &filename, &filenamlen) in ieee_read_cxx_class()
3091 || ! ieee_require_asn (info, pp, &lineno)) in ieee_read_cxx_class()
3100 if (! ieee_require_atn65 (info, pp, &mangled, &mangledlen)) in ieee_read_cxx_class()
3106 ieee_error (info, start, in ieee_read_cxx_class()
3121 if (! ieee_require_atn65 (info, pp, &vname, &vnamelen) in ieee_read_cxx_class()
3122 || ! ieee_require_asn (info, pp, &vsize) in ieee_read_cxx_class()
3123 || ! ieee_require_atn65 (info, pp, &base, &baselen) in ieee_read_cxx_class()
3124 || ! ieee_require_asn (info, pp, &control)) in ieee_read_cxx_class()
3146 ieee_error (info, start, _("undefined C++ vtable")); in ieee_read_cxx_class()
3198 ieee_read_cxx_defaults (struct ieee_info *info, const bfd_byte **pp, in ieee_read_cxx_defaults() argument
3212 if (info->blockstack.bsp <= info->blockstack.stack in ieee_read_cxx_defaults()
3213 || info->blockstack.bsp[-1].fnindx == (unsigned int) -1) in ieee_read_cxx_defaults()
3215 ieee_error (info, start, _("C++ default values not in a function")); in ieee_read_cxx_defaults()
3219 if (! ieee_require_atn65 (info, pp, &fnname, &fnlen) in ieee_read_cxx_defaults()
3220 || ! ieee_require_asn (info, pp, &defcount)) in ieee_read_cxx_defaults()
3230 if (! ieee_require_asn (info, pp, &type)) in ieee_read_cxx_defaults()
3242 if (! ieee_require_asn (info, pp, &val)) in ieee_read_cxx_defaults()
3249 if (! ieee_require_atn65 (info, pp, &strval, &strvallen)) in ieee_read_cxx_defaults()
3255 ieee_error (info, start, _("unrecognized C++ default type")); in ieee_read_cxx_defaults()
3270 dhandle = info->dhandle; in ieee_read_cxx_defaults()
3271 arg_slots = info->types.types[info->blockstack.bsp[-1].fnindx].arg_slots; in ieee_read_cxx_defaults()
3277 if (! ieee_require_asn (info, pp, &indx)) in ieee_read_cxx_defaults()
3286 ieee_error (info, start, _("reference parameter is not a pointer")); in ieee_read_cxx_defaults()
3303 ieee_read_reference (struct ieee_info *info, const bfd_byte **pp) in ieee_read_reference() argument
3314 if (! ieee_require_asn (info, pp, &flags)) in ieee_read_reference()
3321 if (! ieee_require_atn65 (info, pp, &cxx_class, &classlen)) in ieee_read_reference()
3325 if (! ieee_require_atn65 (info, pp, &name, &namlen)) in ieee_read_reference()
3345 vars = &info->vars; in ieee_read_reference()
3348 vars = info->global_vars; in ieee_read_reference()
3368 ieee_error (info, start, in ieee_read_reference()
3409 for (it = info->tags; it != NULL; it = it->next) in ieee_read_reference()
3420 pf = debug_get_fields (info->dhandle, it->type); in ieee_read_reference()
3423 ieee_error (info, start, in ieee_read_reference()
3432 fname = debug_get_field_name (info->dhandle, *pf); in ieee_read_reference()
3451 ieee_error (info, start, _("C++ reference not found")); in ieee_read_reference()
3457 if (debug_get_type_kind (info->dhandle, *pslot) != DEBUG_KIND_POINTER) in ieee_read_reference()
3459 ieee_error (info, start, _("C++ reference is not pointer")); in ieee_read_reference()
3463 target = debug_get_target_type (info->dhandle, *pslot); in ieee_read_reference()
3464 *pslot = debug_make_reference_type (info->dhandle, target); in ieee_read_reference()
3474 ieee_require_asn (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv) in ieee_require_asn() argument
3485 ieee_error (info, start, _("missing required ASN")); in ieee_require_asn()
3493 ieee_error (info, start, _("missing required ASN")); in ieee_require_asn()
3499 if (! ieee_read_number (info, pp, &varindx)) in ieee_require_asn()
3502 return ieee_read_expression (info, pp, pv); in ieee_require_asn()
3508 ieee_require_atn65 (struct ieee_info *info, const bfd_byte **pp, in ieee_require_atn65() argument
3520 ieee_error (info, start, _("missing required ATN65")); in ieee_require_atn65()
3528 ieee_error (info, start, _("missing required ATN65")); in ieee_require_atn65()
3533 if (! ieee_read_number (info, pp, &name_indx) in ieee_require_atn65()
3534 || ! ieee_read_number (info, pp, &type_indx) in ieee_require_atn65()
3535 || ! ieee_read_number (info, pp, &atn_code)) in ieee_require_atn65()
3542 ieee_error (info, start, _("bad ATN65 record")); in ieee_require_atn65()
3546 return ieee_read_id (info, pp, pname, pnamlen); in ieee_require_atn65()
4052 ieee_init_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED, in ieee_init_buffer()
4067 ieee_change_buffer (struct ieee_handle *info, struct ieee_buflist *buflist) in ieee_change_buffer() argument
4080 info->current = buflist; in ieee_change_buffer()
4081 info->curbuf = buflist->tail; in ieee_change_buffer()
4089 ieee_append_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED, in ieee_append_buffer()
4107 #define ieee_write_byte(info, b) \ argument
4108 ((info)->curbuf->c < IEEE_BUFSIZE \
4109 ? ((info)->curbuf->buf[(info)->curbuf->c++] = (b), TRUE) \
4110 : ieee_real_write_byte ((info), (b)))
4113 ieee_real_write_byte (struct ieee_handle *info, int b) in ieee_real_write_byte() argument
4115 if (info->curbuf->c >= IEEE_BUFSIZE) in ieee_real_write_byte()
4122 if (info->current->head == NULL) in ieee_real_write_byte()
4123 info->current->head = n; in ieee_real_write_byte()
4125 info->current->tail->next = n; in ieee_real_write_byte()
4126 info->current->tail = n; in ieee_real_write_byte()
4127 info->curbuf = n; in ieee_real_write_byte()
4130 info->curbuf->buf[info->curbuf->c] = b; in ieee_real_write_byte()
4131 ++info->curbuf->c; in ieee_real_write_byte()
4139 ieee_write_2bytes (struct ieee_handle *info, int i) in ieee_write_2bytes() argument
4141 return (ieee_write_byte (info, i >> 8) in ieee_write_2bytes()
4142 && ieee_write_byte (info, i & 0xff)); in ieee_write_2bytes()
4148 ieee_write_number (struct ieee_handle *info, bfd_vma v) in ieee_write_number() argument
4156 return ieee_write_byte (info, (int) v); in ieee_write_number()
4176 if (! ieee_write_byte (info, (int) ieee_number_repeat_start_enum + c)) in ieee_write_number()
4180 if (! ieee_write_byte (info, *p)) in ieee_write_number()
4190 ieee_write_id (struct ieee_handle *info, const char *s) in ieee_write_id() argument
4197 if (! ieee_write_byte (info, len)) in ieee_write_id()
4202 if (! ieee_write_byte (info, (int) ieee_extension_length_1_enum) in ieee_write_id()
4203 || ! ieee_write_byte (info, len)) in ieee_write_id()
4208 if (! ieee_write_byte (info, (int) ieee_extension_length_2_enum) in ieee_write_id()
4209 || ! ieee_write_2bytes (info, len)) in ieee_write_id()
4219 if (! ieee_write_byte (info, *s)) in ieee_write_id()
4228 ieee_write_asn (struct ieee_handle *info, unsigned int indx, bfd_vma val) in ieee_write_asn() argument
4230 return (ieee_write_2bytes (info, (int) ieee_asn_record_enum) in ieee_write_asn()
4231 && ieee_write_number (info, indx) in ieee_write_asn()
4232 && ieee_write_number (info, val)); in ieee_write_asn()
4238 ieee_write_atn65 (struct ieee_handle *info, unsigned int indx, const char *s) in ieee_write_atn65() argument
4240 return (ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_write_atn65()
4241 && ieee_write_number (info, indx) in ieee_write_atn65()
4242 && ieee_write_number (info, 0) in ieee_write_atn65()
4243 && ieee_write_number (info, 65) in ieee_write_atn65()
4244 && ieee_write_id (info, s)); in ieee_write_atn65()
4250 ieee_push_type (struct ieee_handle *info, unsigned int indx, in ieee_push_type() argument
4263 ts->next = info->type_stack; in ieee_push_type()
4264 info->type_stack = ts; in ieee_push_type()
4272 ieee_pop_type (struct ieee_handle *info) in ieee_pop_type() argument
4274 return ieee_pop_type_used (info, TRUE); in ieee_pop_type()
4280 ieee_pop_unused_type (struct ieee_handle *info) in ieee_pop_unused_type() argument
4282 (void) ieee_pop_type_used (info, FALSE); in ieee_pop_unused_type()
4288 ieee_pop_type_used (struct ieee_handle *info, bfd_boolean used) in ieee_pop_type_used() argument
4293 ts = info->type_stack; in ieee_pop_type_used()
4305 if (ieee_buffer_emptyp (&info->types)) in ieee_pop_type_used()
4307 if (! ieee_change_buffer (info, &info->types) in ieee_pop_type_used()
4308 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_pop_type_used()
4309 || ! ieee_write_byte (info, 1) in ieee_pop_type_used()
4310 || ! ieee_write_number (info, 0) in ieee_pop_type_used()
4311 || ! ieee_write_id (info, info->modname)) in ieee_pop_type_used()
4314 buflist = &info->types; in ieee_pop_type_used()
4319 if (ieee_buffer_emptyp (&info->global_types)) in ieee_pop_type_used()
4321 if (! ieee_change_buffer (info, &info->global_types) in ieee_pop_type_used()
4322 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_pop_type_used()
4323 || ! ieee_write_byte (info, 2) in ieee_pop_type_used()
4324 || ! ieee_write_number (info, 0) in ieee_pop_type_used()
4325 || ! ieee_write_id (info, "")) in ieee_pop_type_used()
4328 buflist = &info->global_types; in ieee_pop_type_used()
4331 if (! ieee_append_buffer (info, buflist, &ts->type.fndef)) in ieee_pop_type_used()
4336 info->type_stack = ts->next; in ieee_pop_type_used()
4344 ieee_add_range (struct ieee_handle *info, bfd_boolean global, bfd_vma low, in ieee_add_range() argument
4353 plist = &info->global_ranges; in ieee_add_range()
4355 plist = &info->ranges; in ieee_add_range()
4400 ieee_start_range (struct ieee_handle *info, bfd_vma low) in ieee_start_range() argument
4407 r->next = info->pending_ranges; in ieee_start_range()
4408 info->pending_ranges = r; in ieee_start_range()
4415 ieee_end_range (struct ieee_handle *info, bfd_vma high) in ieee_end_range() argument
4420 assert (info->pending_ranges != NULL); in ieee_end_range()
4421 r = info->pending_ranges; in ieee_end_range()
4423 info->pending_ranges = r->next; in ieee_end_range()
4425 return ieee_add_range (info, FALSE, low, high); in ieee_end_range()
4431 ieee_define_type (struct ieee_handle *info, unsigned int size, in ieee_define_type() argument
4434 return ieee_define_named_type (info, (const char *) NULL, in ieee_define_type()
4442 ieee_define_named_type (struct ieee_handle *info, const char *name, in ieee_define_named_type() argument
4454 type_indx = info->type_indx; in ieee_define_named_type()
4455 ++info->type_indx; in ieee_define_named_type()
4458 name_indx = info->name_indx; in ieee_define_named_type()
4459 ++info->name_indx; in ieee_define_named_type()
4469 if (! ieee_change_buffer (info, buflist)) in ieee_define_named_type()
4474 if (! ieee_buffer_emptyp (&info->types)) in ieee_define_named_type()
4476 if (! ieee_change_buffer (info, &info->types)) in ieee_define_named_type()
4481 if (! ieee_change_buffer (info, &info->types) in ieee_define_named_type()
4482 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_define_named_type()
4483 || ! ieee_write_byte (info, 1) in ieee_define_named_type()
4484 || ! ieee_write_number (info, 0) in ieee_define_named_type()
4485 || ! ieee_write_id (info, info->modname)) in ieee_define_named_type()
4491 if (! ieee_buffer_emptyp (&info->global_types)) in ieee_define_named_type()
4493 if (! ieee_change_buffer (info, &info->global_types)) in ieee_define_named_type()
4498 if (! ieee_change_buffer (info, &info->global_types) in ieee_define_named_type()
4499 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_define_named_type()
4500 || ! ieee_write_byte (info, 2) in ieee_define_named_type()
4501 || ! ieee_write_number (info, 0) in ieee_define_named_type()
4502 || ! ieee_write_id (info, "")) in ieee_define_named_type()
4510 if (! ieee_push_type (info, type_indx, size, unsignedp, localp)) in ieee_define_named_type()
4513 return (ieee_write_byte (info, (int) ieee_nn_record) in ieee_define_named_type()
4514 && ieee_write_number (info, name_indx) in ieee_define_named_type()
4515 && ieee_write_id (info, name) in ieee_define_named_type()
4516 && ieee_write_byte (info, (int) ieee_ty_record_enum) in ieee_define_named_type()
4517 && ieee_write_number (info, type_indx) in ieee_define_named_type()
4518 && ieee_write_byte (info, 0xce) in ieee_define_named_type()
4519 && ieee_write_number (info, name_indx)); in ieee_define_named_type()
4525 ieee_get_modified_info (struct ieee_handle *info, unsigned int indx) in ieee_get_modified_info() argument
4527 if (indx >= info->modified_alloc) in ieee_get_modified_info()
4531 nalloc = info->modified_alloc; in ieee_get_modified_info()
4536 info->modified = ((struct ieee_modified_type *) in ieee_get_modified_info()
4537 xrealloc (info->modified, in ieee_get_modified_info()
4538 nalloc * sizeof *info->modified)); in ieee_get_modified_info()
4539 memset (info->modified + info->modified_alloc, 0, in ieee_get_modified_info()
4540 (nalloc - info->modified_alloc) * sizeof *info->modified); in ieee_get_modified_info()
4541 info->modified_alloc = nalloc; in ieee_get_modified_info()
4544 return info->modified + indx; in ieee_get_modified_info()
4586 #define ieee_name_type_hash_traverse(table, func, info) \ argument
4590 (info)))
4597 struct ieee_handle info; in write_ieee_debugging_info() local
4602 memset (&info, 0, sizeof info); in write_ieee_debugging_info()
4603 info.abfd = abfd; in write_ieee_debugging_info()
4604 info.type_indx = 256; in write_ieee_debugging_info()
4605 info.name_indx = 32; in write_ieee_debugging_info()
4607 if (!bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc, in write_ieee_debugging_info()
4609 || !bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc, in write_ieee_debugging_info()
4613 if (! ieee_init_buffer (&info, &info.global_types) in write_ieee_debugging_info()
4614 || ! ieee_init_buffer (&info, &info.data) in write_ieee_debugging_info()
4615 || ! ieee_init_buffer (&info, &info.types) in write_ieee_debugging_info()
4616 || ! ieee_init_buffer (&info, &info.vars) in write_ieee_debugging_info()
4617 || ! ieee_init_buffer (&info, &info.cxx) in write_ieee_debugging_info()
4618 || ! ieee_init_buffer (&info, &info.linenos) in write_ieee_debugging_info()
4619 || ! ieee_init_buffer (&info, &info.fntype) in write_ieee_debugging_info()
4620 || ! ieee_init_buffer (&info, &info.fnargs)) in write_ieee_debugging_info()
4623 if (! debug_write (dhandle, &ieee_fns, (void *) &info)) in write_ieee_debugging_info()
4626 if (info.filename != NULL) in write_ieee_debugging_info()
4628 if (! ieee_finish_compilation_unit (&info)) in write_ieee_debugging_info()
4633 info.error = FALSE; in write_ieee_debugging_info()
4634 ieee_name_type_hash_traverse (&info.tags, in write_ieee_debugging_info()
4636 (void *) &info); in write_ieee_debugging_info()
4637 if (info.error) in write_ieee_debugging_info()
4641 if (! ieee_buffer_emptyp (&info.global_types)) in write_ieee_debugging_info()
4645 if (! ieee_change_buffer (&info, &info.global_types) in write_ieee_debugging_info()
4646 || ! ieee_write_byte (&info, (int) ieee_nn_record) in write_ieee_debugging_info()
4647 || ! ieee_write_number (&info, info.name_indx) in write_ieee_debugging_info()
4648 || ! ieee_write_id (&info, "") in write_ieee_debugging_info()
4649 || ! ieee_write_byte (&info, (int) ieee_ty_record_enum) in write_ieee_debugging_info()
4650 || ! ieee_write_number (&info, info.type_indx) in write_ieee_debugging_info()
4651 || ! ieee_write_byte (&info, 0xce) in write_ieee_debugging_info()
4652 || ! ieee_write_number (&info, info.name_indx) in write_ieee_debugging_info()
4653 || ! ieee_write_number (&info, 'P') in write_ieee_debugging_info()
4654 || ! ieee_write_number (&info, (int) builtin_void + 32) in write_ieee_debugging_info()
4655 || ! ieee_write_byte (&info, (int) ieee_be_record_enum)) in write_ieee_debugging_info()
4658 if (! ieee_append_buffer (&info, &info.global_types, &info.data)) in write_ieee_debugging_info()
4660 info.data = info.global_types; in write_ieee_debugging_info()
4665 info.error = FALSE; in write_ieee_debugging_info()
4666 if (! ieee_init_buffer (&info, &info.vars)) in write_ieee_debugging_info()
4668 bfd_map_over_sections (abfd, ieee_add_bb11_blocks, (void *) &info); in write_ieee_debugging_info()
4669 if (info.error) in write_ieee_debugging_info()
4671 if (! ieee_buffer_emptyp (&info.vars)) in write_ieee_debugging_info()
4673 if (! ieee_change_buffer (&info, &info.vars) in write_ieee_debugging_info()
4674 || ! ieee_write_byte (&info, (int) ieee_be_record_enum)) in write_ieee_debugging_info()
4677 if (! ieee_append_buffer (&info, &info.data, &info.vars)) in write_ieee_debugging_info()
4685 if (ieee_buffer_emptyp (&info.data)) in write_ieee_debugging_info()
4700 for (b = info.data.head; b != NULL; b = b->next) in write_ieee_debugging_info()
4710 for (b = info.data.head; b != NULL; b = b->next) in write_ieee_debugging_info()
4728 bfd_hash_table_free (&info.typedefs.root); in write_ieee_debugging_info()
4729 bfd_hash_table_free (&info.tags.root); in write_ieee_debugging_info()
4740 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_write_undefined_tag() local
4751 if (ieee_buffer_emptyp (&info->global_types)) in ieee_write_undefined_tag()
4753 if (! ieee_change_buffer (info, &info->global_types) in ieee_write_undefined_tag()
4754 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_write_undefined_tag()
4755 || ! ieee_write_byte (info, 2) in ieee_write_undefined_tag()
4756 || ! ieee_write_number (info, 0) in ieee_write_undefined_tag()
4757 || ! ieee_write_id (info, "")) in ieee_write_undefined_tag()
4759 info->error = TRUE; in ieee_write_undefined_tag()
4765 if (! ieee_change_buffer (info, &info->global_types)) in ieee_write_undefined_tag()
4767 info->error = TRUE; in ieee_write_undefined_tag()
4772 name_indx = info->name_indx; in ieee_write_undefined_tag()
4773 ++info->name_indx; in ieee_write_undefined_tag()
4774 if (! ieee_write_byte (info, (int) ieee_nn_record) in ieee_write_undefined_tag()
4775 || ! ieee_write_number (info, name_indx) in ieee_write_undefined_tag()
4776 || ! ieee_write_id (info, nt->type.name) in ieee_write_undefined_tag()
4777 || ! ieee_write_byte (info, (int) ieee_ty_record_enum) in ieee_write_undefined_tag()
4778 || ! ieee_write_number (info, nt->type.indx) in ieee_write_undefined_tag()
4779 || ! ieee_write_byte (info, 0xce) in ieee_write_undefined_tag()
4780 || ! ieee_write_number (info, name_indx)) in ieee_write_undefined_tag()
4782 info->error = TRUE; in ieee_write_undefined_tag()
4790 info->error = TRUE; in ieee_write_undefined_tag()
4804 if (! ieee_write_number (info, code) in ieee_write_undefined_tag()
4805 || ! ieee_write_number (info, 0)) in ieee_write_undefined_tag()
4807 info->error = TRUE; in ieee_write_undefined_tag()
4820 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_start_compilation_unit() local
4827 if (info->filename != NULL) in ieee_start_compilation_unit()
4829 if (! ieee_finish_compilation_unit (info)) in ieee_start_compilation_unit()
4833 info->filename = filename; in ieee_start_compilation_unit()
4855 info->modname = c; in ieee_start_compilation_unit()
4857 if (! ieee_init_buffer (info, &info->types) in ieee_start_compilation_unit()
4858 || ! ieee_init_buffer (info, &info->vars) in ieee_start_compilation_unit()
4859 || ! ieee_init_buffer (info, &info->cxx) in ieee_start_compilation_unit()
4860 || ! ieee_init_buffer (info, &info->linenos)) in ieee_start_compilation_unit()
4862 info->ranges = NULL; in ieee_start_compilation_unit()
4866 if (! ieee_change_buffer (info, &info->types) in ieee_start_compilation_unit()
4867 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_start_compilation_unit()
4868 || ! ieee_write_byte (info, 1) in ieee_start_compilation_unit()
4869 || ! ieee_write_number (info, 0) in ieee_start_compilation_unit()
4870 || ! ieee_write_id (info, info->modname)) in ieee_start_compilation_unit()
4873 ++info->name_indx; in ieee_start_compilation_unit()
4874 if (! ieee_change_buffer (info, &info->vars) in ieee_start_compilation_unit()
4875 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_start_compilation_unit()
4876 || ! ieee_write_byte (info, 3) in ieee_start_compilation_unit()
4877 || ! ieee_write_number (info, 0) in ieee_start_compilation_unit()
4878 || ! ieee_write_id (info, info->modname)) in ieee_start_compilation_unit()
4887 ieee_finish_compilation_unit (struct ieee_handle *info) in ieee_finish_compilation_unit() argument
4891 if (! ieee_buffer_emptyp (&info->types)) in ieee_finish_compilation_unit()
4893 if (! ieee_change_buffer (info, &info->types) in ieee_finish_compilation_unit()
4894 || ! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_finish_compilation_unit()
4898 if (! ieee_buffer_emptyp (&info->cxx)) in ieee_finish_compilation_unit()
4902 assert (! ieee_buffer_emptyp (&info->vars)); in ieee_finish_compilation_unit()
4903 if (! ieee_change_buffer (info, &info->vars)) in ieee_finish_compilation_unit()
4908 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_finish_compilation_unit()
4909 || ! ieee_write_byte (info, 6) in ieee_finish_compilation_unit()
4910 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
4911 || ! ieee_write_id (info, "__XRYCPP") in ieee_finish_compilation_unit()
4912 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
4913 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
4914 || ! ieee_write_number (info, info->highaddr - 1) in ieee_finish_compilation_unit()
4915 || ! ieee_append_buffer (info, &info->vars, &info->cxx) in ieee_finish_compilation_unit()
4916 || ! ieee_change_buffer (info, &info->vars) in ieee_finish_compilation_unit()
4917 || ! ieee_write_byte (info, (int) ieee_be_record_enum) in ieee_finish_compilation_unit()
4918 || ! ieee_write_number (info, info->highaddr - 1)) in ieee_finish_compilation_unit()
4922 if (! ieee_buffer_emptyp (&info->vars)) in ieee_finish_compilation_unit()
4924 if (! ieee_change_buffer (info, &info->vars) in ieee_finish_compilation_unit()
4925 || ! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_finish_compilation_unit()
4929 if (info->pending_lineno_filename != NULL) in ieee_finish_compilation_unit()
4932 if (! ieee_lineno ((void *) info, (const char *) NULL, 0, (bfd_vma) -1)) in ieee_finish_compilation_unit()
4935 if (! ieee_buffer_emptyp (&info->linenos)) in ieee_finish_compilation_unit()
4937 if (! ieee_change_buffer (info, &info->linenos) in ieee_finish_compilation_unit()
4938 || ! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_finish_compilation_unit()
4940 if (filename_cmp (info->filename, info->lineno_filename) != 0) in ieee_finish_compilation_unit()
4945 if (! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_finish_compilation_unit()
4950 if (! ieee_append_buffer (info, &info->data, &info->types) in ieee_finish_compilation_unit()
4951 || ! ieee_append_buffer (info, &info->data, &info->vars) in ieee_finish_compilation_unit()
4952 || ! ieee_append_buffer (info, &info->data, &info->linenos)) in ieee_finish_compilation_unit()
4956 if (! ieee_change_buffer (info, &info->data)) in ieee_finish_compilation_unit()
4959 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_finish_compilation_unit()
4960 || ! ieee_write_byte (info, 10) in ieee_finish_compilation_unit()
4961 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
4962 || ! ieee_write_id (info, info->modname) in ieee_finish_compilation_unit()
4963 || ! ieee_write_id (info, "") in ieee_finish_compilation_unit()
4964 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
4965 || ! ieee_write_id (info, "GNU objcopy")) in ieee_finish_compilation_unit()
4968 for (r = info->ranges; r != NULL; r = r->next) in ieee_finish_compilation_unit()
4978 for (s = info->abfd->sections; s != NULL; s = s->next) in ieee_finish_compilation_unit()
4980 if (bfd_get_section_vma (info->abfd, s) <= low in ieee_finish_compilation_unit()
4981 && high <= (bfd_get_section_vma (info->abfd, s) in ieee_finish_compilation_unit()
4982 + bfd_section_size (info->abfd, s))) in ieee_finish_compilation_unit()
4996 <= (bfd_get_section_vma (info->abfd, s) in ieee_finish_compilation_unit()
4997 + bfd_section_size (info->abfd, s)))) in ieee_finish_compilation_unit()
5010 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_finish_compilation_unit()
5011 || ! ieee_write_byte (info, 11) in ieee_finish_compilation_unit()
5012 || ! ieee_write_number (info, 0) in ieee_finish_compilation_unit()
5013 || ! ieee_write_id (info, "") in ieee_finish_compilation_unit()
5014 || ! ieee_write_number (info, kind) in ieee_finish_compilation_unit()
5015 || ! ieee_write_number (info, s->index + IEEE_SECTION_NUMBER_BASE) in ieee_finish_compilation_unit()
5016 || ! ieee_write_number (info, low) in ieee_finish_compilation_unit()
5017 || ! ieee_write_byte (info, (int) ieee_be_record_enum) in ieee_finish_compilation_unit()
5018 || ! ieee_write_number (info, high - low)) in ieee_finish_compilation_unit()
5022 if (! ieee_add_range (info, TRUE, low, high)) in ieee_finish_compilation_unit()
5026 if (! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_finish_compilation_unit()
5038 struct ieee_handle *info = (struct ieee_handle *) data; in ieee_add_bb11_blocks() local
5047 for (r = info->global_ranges; r != NULL; r = r->next) in ieee_add_bb11_blocks()
5055 if (! ieee_add_bb11 (info, sec, low, high)) in ieee_add_bb11_blocks()
5056 info->error = TRUE; in ieee_add_bb11_blocks()
5063 if (! ieee_add_bb11 (info, sec, low, r->low)) in ieee_add_bb11_blocks()
5065 info->error = TRUE; in ieee_add_bb11_blocks()
5078 ieee_add_bb11 (struct ieee_handle *info, asection *sec, bfd_vma low, in ieee_add_bb11() argument
5083 if (! ieee_buffer_emptyp (&info->vars)) in ieee_add_bb11()
5085 if (! ieee_change_buffer (info, &info->vars)) in ieee_add_bb11()
5097 filename = bfd_get_filename (info->abfd); in ieee_add_bb11()
5119 if (! ieee_change_buffer (info, &info->vars) in ieee_add_bb11()
5120 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_add_bb11()
5121 || ! ieee_write_byte (info, 10) in ieee_add_bb11()
5122 || ! ieee_write_number (info, 0) in ieee_add_bb11()
5123 || ! ieee_write_id (info, c) in ieee_add_bb11()
5124 || ! ieee_write_id (info, "") in ieee_add_bb11()
5125 || ! ieee_write_number (info, 0) in ieee_add_bb11()
5126 || ! ieee_write_id (info, "GNU objcopy")) in ieee_add_bb11()
5142 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_add_bb11()
5143 || ! ieee_write_byte (info, 11) in ieee_add_bb11()
5144 || ! ieee_write_number (info, 0) in ieee_add_bb11()
5145 || ! ieee_write_id (info, "") in ieee_add_bb11()
5146 || ! ieee_write_number (info, kind) in ieee_add_bb11()
5147 || ! ieee_write_number (info, sec->index + IEEE_SECTION_NUMBER_BASE) in ieee_add_bb11()
5148 || ! ieee_write_number (info, low) in ieee_add_bb11()
5149 || ! ieee_write_byte (info, (int) ieee_be_record_enum) in ieee_add_bb11()
5150 || ! ieee_write_number (info, high - low)) in ieee_add_bb11()
5174 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_empty_type() local
5176 return ieee_push_type (info, (int) builtin_unknown, 0, FALSE, FALSE); in ieee_empty_type()
5184 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_void_type() local
5186 return ieee_push_type (info, (int) builtin_void, 0, FALSE, FALSE); in ieee_void_type()
5194 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_int_type() local
5219 return ieee_push_type (info, indx, size, unsignedp, FALSE); in ieee_int_type()
5227 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_float_type() local
5250 return ieee_push_type (info, indx, size, FALSE, FALSE); in ieee_float_type()
5258 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_complex_type() local
5264 if (info->complex_float_index != 0) in ieee_complex_type()
5265 return ieee_push_type (info, info->complex_float_index, size * 2, in ieee_complex_type()
5274 if (info->complex_double_index != 0) in ieee_complex_type()
5275 return ieee_push_type (info, info->complex_double_index, size * 2, in ieee_complex_type()
5285 if (! ieee_define_type (info, size * 2, FALSE, FALSE) in ieee_complex_type()
5286 || ! ieee_write_number (info, code) in ieee_complex_type()
5287 || ! ieee_write_id (info, "")) in ieee_complex_type()
5291 info->complex_float_index = info->type_stack->type.indx; in ieee_complex_type()
5293 info->complex_double_index = info->type_stack->type.indx; in ieee_complex_type()
5313 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_enum_type() local
5321 for (e = info->enums; e != NULL; e = e->next) in ieee_enum_type()
5361 return ieee_push_type (info, e->indx, 0, TRUE, FALSE); in ieee_enum_type()
5390 if (! ieee_define_named_type (info, tag, indx, 0, TRUE, localp, in ieee_enum_type()
5392 || ! ieee_write_number (info, simple ? 'E' : 'N')) in ieee_enum_type()
5398 if (! ieee_write_number (info, 4)) in ieee_enum_type()
5405 if (! ieee_write_id (info, names[i])) in ieee_enum_type()
5409 if (! ieee_write_number (info, vals[i])) in ieee_enum_type()
5421 e->indx = info->type_stack->type.indx; in ieee_enum_type()
5424 e->next = info->enums; in ieee_enum_type()
5425 info->enums = e; in ieee_enum_type()
5441 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_pointer_type() local
5446 localp = info->type_stack->type.localp; in ieee_pointer_type()
5447 indx = ieee_pop_type (info); in ieee_pointer_type()
5452 return ieee_push_type (info, indx + 32, 0, TRUE, FALSE); in ieee_pointer_type()
5462 return ieee_push_type (info, m->pointer, 4, TRUE, FALSE); in ieee_pointer_type()
5465 if (! ieee_define_type (info, 4, TRUE, localp) in ieee_pointer_type()
5466 || ! ieee_write_number (info, 'P') in ieee_pointer_type()
5467 || ! ieee_write_number (info, indx)) in ieee_pointer_type()
5471 m->pointer = info->type_stack->type.indx; in ieee_pointer_type()
5484 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_function_type() local
5499 if (info->type_stack->type.localp) in ieee_function_type()
5501 args[i] = ieee_pop_type (info); in ieee_function_type()
5507 if (info->type_stack->type.localp) in ieee_function_type()
5509 retindx = ieee_pop_type (info); in ieee_function_type()
5519 return ieee_push_type (info, m->function, 0, TRUE, FALSE); in ieee_function_type()
5524 if (! ieee_init_buffer (info, &fndef) in ieee_function_type()
5525 || ! ieee_define_named_type (info, (const char *) NULL, in ieee_function_type()
5528 || ! ieee_write_number (info, 'x') in ieee_function_type()
5529 || ! ieee_write_number (info, 0x41) in ieee_function_type()
5530 || ! ieee_write_number (info, 0) in ieee_function_type()
5531 || ! ieee_write_number (info, 0) in ieee_function_type()
5532 || ! ieee_write_number (info, retindx) in ieee_function_type()
5533 || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0))) in ieee_function_type()
5541 if (! ieee_write_number (info, args[i])) in ieee_function_type()
5549 if (! ieee_write_number (info, (bfd_vma) builtin_void + 32)) in ieee_function_type()
5553 if (! ieee_write_number (info, 0)) in ieee_function_type()
5558 info->type_stack->type.fndef = fndef; in ieee_function_type()
5561 m->function = info->type_stack->type.indx; in ieee_function_type()
5571 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_reference_type() local
5578 info->type_stack->type.referencep = TRUE; in ieee_reference_type()
5587 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_range_type() local
5591 size = info->type_stack->type.size; in ieee_range_type()
5592 unsignedp = info->type_stack->type.unsignedp; in ieee_range_type()
5593 localp = info->type_stack->type.localp; in ieee_range_type()
5594 ieee_pop_unused_type (info); in ieee_range_type()
5595 return (ieee_define_type (info, size, unsignedp, localp) in ieee_range_type()
5596 && ieee_write_number (info, 'R') in ieee_range_type()
5597 && ieee_write_number (info, (bfd_vma) low) in ieee_range_type()
5598 && ieee_write_number (info, (bfd_vma) high) in ieee_range_type()
5599 && ieee_write_number (info, unsignedp ? 0 : 1) in ieee_range_type()
5600 && ieee_write_number (info, size)); in ieee_range_type()
5609 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_array_type() local
5617 ieee_pop_unused_type (info); in ieee_array_type()
5618 localp = info->type_stack->type.localp; in ieee_array_type()
5619 size = info->type_stack->type.size; in ieee_array_type()
5620 eleindx = ieee_pop_type (info); in ieee_array_type()
5629 m = ieee_get_modified_info (info, eleindx); in ieee_array_type()
5636 return ieee_push_type (info, a->indx, size, FALSE, FALSE); in ieee_array_type()
5640 if (! ieee_define_type (info, size, FALSE, localp) in ieee_array_type()
5641 || ! ieee_write_number (info, low == 0 ? 'Z' : 'C') in ieee_array_type()
5642 || ! ieee_write_number (info, eleindx)) in ieee_array_type()
5646 if (! ieee_write_number (info, low)) in ieee_array_type()
5650 if (! ieee_write_number (info, high + 1)) in ieee_array_type()
5658 a->indx = info->type_stack->type.indx; in ieee_array_type()
5674 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_set_type() local
5678 localp = info->type_stack->type.localp; in ieee_set_type()
5679 eleindx = ieee_pop_type (info); in ieee_set_type()
5683 return (ieee_define_type (info, 0, TRUE, localp) in ieee_set_type()
5684 && ieee_write_number (info, 's') in ieee_set_type()
5685 && ieee_write_number (info, 4) in ieee_set_type()
5686 && ieee_write_number (info, eleindx)); in ieee_set_type()
5710 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_method_type() local
5717 ieee_pop_unused_type (info); in ieee_method_type()
5727 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_const_type() local
5733 size = info->type_stack->type.size; in ieee_const_type()
5734 unsignedp = info->type_stack->type.unsignedp; in ieee_const_type()
5735 localp = info->type_stack->type.localp; in ieee_const_type()
5736 indx = ieee_pop_type (info); in ieee_const_type()
5740 m = ieee_get_modified_info (info, indx); in ieee_const_type()
5745 return ieee_push_type (info, m->const_qualified, size, unsignedp, in ieee_const_type()
5749 if (! ieee_define_type (info, size, unsignedp, localp) in ieee_const_type()
5750 || ! ieee_write_number (info, 'n') in ieee_const_type()
5751 || ! ieee_write_number (info, 1) in ieee_const_type()
5752 || ! ieee_write_number (info, indx)) in ieee_const_type()
5756 m->const_qualified = info->type_stack->type.indx; in ieee_const_type()
5766 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_volatile_type() local
5772 size = info->type_stack->type.size; in ieee_volatile_type()
5773 unsignedp = info->type_stack->type.unsignedp; in ieee_volatile_type()
5774 localp = info->type_stack->type.localp; in ieee_volatile_type()
5775 indx = ieee_pop_type (info); in ieee_volatile_type()
5779 m = ieee_get_modified_info (info, indx); in ieee_volatile_type()
5784 return ieee_push_type (info, m->volatile_qualified, size, unsignedp, in ieee_volatile_type()
5788 if (! ieee_define_type (info, size, unsignedp, localp) in ieee_volatile_type()
5789 || ! ieee_write_number (info, 'n') in ieee_volatile_type()
5790 || ! ieee_write_number (info, 2) in ieee_volatile_type()
5791 || ! ieee_write_number (info, indx)) in ieee_volatile_type()
5795 m->volatile_qualified = info->type_stack->type.indx; in ieee_volatile_type()
5827 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_start_struct_type() local
5856 h = ieee_name_type_hash_lookup (&info->tags, look, TRUE, copy); in ieee_start_struct_type()
5892 nt->type.indx = info->type_indx; in ieee_start_struct_type()
5893 ++info->type_indx; in ieee_start_struct_type()
5898 if (! ieee_init_buffer (info, &strdef) in ieee_start_struct_type()
5899 || ! ieee_define_named_type (info, tag, nt->type.indx, size, TRUE, in ieee_start_struct_type()
5901 || ! ieee_write_number (info, structp ? 'S' : 'U') in ieee_start_struct_type()
5902 || ! ieee_write_number (info, size)) in ieee_start_struct_type()
5913 nt->type = info->type_stack->type; in ieee_start_struct_type()
5917 info->type_stack->type.name = tag; in ieee_start_struct_type()
5918 info->type_stack->type.strdef = strdef; in ieee_start_struct_type()
5919 info->type_stack->type.ignorep = ignorep; in ieee_start_struct_type()
5930 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_struct_field() local
5938 assert (info->type_stack != NULL in ieee_struct_field()
5939 && info->type_stack->next != NULL in ieee_struct_field()
5940 && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef)); in ieee_struct_field()
5944 if (info->type_stack->next->type.ignorep) in ieee_struct_field()
5946 ieee_pop_unused_type (info); in ieee_struct_field()
5950 size = info->type_stack->type.size; in ieee_struct_field()
5951 unsignedp = info->type_stack->type.unsignedp; in ieee_struct_field()
5952 referencep = info->type_stack->type.referencep; in ieee_struct_field()
5953 localp = info->type_stack->type.localp; in ieee_struct_field()
5954 indx = ieee_pop_type (info); in ieee_struct_field()
5957 info->type_stack->type.localp = TRUE; in ieee_struct_field()
5959 if (info->type_stack->type.classdef != NULL) in ieee_struct_field()
5968 nindx = info->type_stack->type.classdef->indx; in ieee_struct_field()
5969 if (! ieee_change_buffer (info, in ieee_struct_field()
5970 &info->type_stack->type.classdef->pmiscbuf) in ieee_struct_field()
5971 || ! ieee_write_asn (info, nindx, 'd') in ieee_struct_field()
5972 || ! ieee_write_asn (info, nindx, flags) in ieee_struct_field()
5973 || ! ieee_write_atn65 (info, nindx, name) in ieee_struct_field()
5974 || ! ieee_write_atn65 (info, nindx, name)) in ieee_struct_field()
5976 info->type_stack->type.classdef->pmisccount += 4; in ieee_struct_field()
5985 nindx = info->name_indx; in ieee_struct_field()
5986 ++info->name_indx; in ieee_struct_field()
5988 if (! ieee_change_buffer (info, in ieee_struct_field()
5989 &info->type_stack->type.classdef->refs) in ieee_struct_field()
5990 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_struct_field()
5991 || ! ieee_write_number (info, nindx) in ieee_struct_field()
5992 || ! ieee_write_id (info, "") in ieee_struct_field()
5993 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_struct_field()
5994 || ! ieee_write_number (info, nindx) in ieee_struct_field()
5995 || ! ieee_write_number (info, 0) in ieee_struct_field()
5996 || ! ieee_write_number (info, 62) in ieee_struct_field()
5997 || ! ieee_write_number (info, 80) in ieee_struct_field()
5998 || ! ieee_write_number (info, 4) in ieee_struct_field()
5999 || ! ieee_write_asn (info, nindx, 'R') in ieee_struct_field()
6000 || ! ieee_write_asn (info, nindx, 3) in ieee_struct_field()
6001 || ! ieee_write_atn65 (info, nindx, info->type_stack->type.name) in ieee_struct_field()
6002 || ! ieee_write_atn65 (info, nindx, name)) in ieee_struct_field()
6013 if (! ieee_define_type (info, 0, unsignedp, in ieee_struct_field()
6014 info->type_stack->type.localp) in ieee_struct_field()
6015 || ! ieee_write_number (info, 'g') in ieee_struct_field()
6016 || ! ieee_write_number (info, unsignedp ? 0 : 1) in ieee_struct_field()
6017 || ! ieee_write_number (info, bitsize) in ieee_struct_field()
6018 || ! ieee_write_number (info, indx)) in ieee_struct_field()
6020 indx = ieee_pop_type (info); in ieee_struct_field()
6026 return (ieee_change_buffer (info, &info->type_stack->type.strdef) in ieee_struct_field()
6027 && ieee_write_id (info, name) in ieee_struct_field()
6028 && ieee_write_number (info, indx) in ieee_struct_field()
6029 && ieee_write_number (info, offset)); in ieee_struct_field()
6037 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_end_struct_type() local
6040 assert (info->type_stack != NULL in ieee_end_struct_type()
6041 && ! ieee_buffer_emptyp (&info->type_stack->type.strdef)); in ieee_end_struct_type()
6046 if (info->type_stack->type.ignorep) in ieee_end_struct_type()
6053 if (! info->type_stack->type.localp) in ieee_end_struct_type()
6056 if (ieee_buffer_emptyp (&info->global_types)) in ieee_end_struct_type()
6058 if (! ieee_change_buffer (info, &info->global_types) in ieee_end_struct_type()
6059 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_end_struct_type()
6060 || ! ieee_write_byte (info, 2) in ieee_end_struct_type()
6061 || ! ieee_write_number (info, 0) in ieee_end_struct_type()
6062 || ! ieee_write_id (info, "")) in ieee_end_struct_type()
6065 pb = &info->global_types; in ieee_end_struct_type()
6070 if (ieee_buffer_emptyp (&info->types)) in ieee_end_struct_type()
6072 if (! ieee_change_buffer (info, &info->types) in ieee_end_struct_type()
6073 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_end_struct_type()
6074 || ! ieee_write_byte (info, 1) in ieee_end_struct_type()
6075 || ! ieee_write_number (info, 0) in ieee_end_struct_type()
6076 || ! ieee_write_id (info, info->modname)) in ieee_end_struct_type()
6079 pb = &info->types; in ieee_end_struct_type()
6083 if (! ieee_append_buffer (info, pb, &info->type_stack->type.strdef) in ieee_end_struct_type()
6084 || ! ieee_init_buffer (info, &info->type_stack->type.strdef)) in ieee_end_struct_type()
6099 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_start_class_type() local
6125 vclass = info->type_stack->type.name; in ieee_start_class_type()
6129 (void) ieee_pop_type (info); in ieee_start_class_type()
6135 indx = info->name_indx; in ieee_start_class_type()
6136 ++info->name_indx; in ieee_start_class_type()
6141 if (! ieee_init_buffer (info, &pmiscbuf) in ieee_start_class_type()
6142 || ! ieee_change_buffer (info, &pmiscbuf) in ieee_start_class_type()
6143 || ! ieee_write_asn (info, indx, 'T') in ieee_start_class_type()
6144 || ! ieee_write_asn (info, indx, structp ? 'o' : 'u') in ieee_start_class_type()
6145 || ! ieee_write_atn65 (info, indx, tag)) in ieee_start_class_type()
6157 info->type_stack->type.classdef = classdef; in ieee_start_class_type()
6168 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_static_member() local
6175 ieee_pop_unused_type (info); in ieee_class_static_member()
6177 assert (info->type_stack != NULL in ieee_class_static_member()
6178 && info->type_stack->type.classdef != NULL); in ieee_class_static_member()
6183 nindx = info->type_stack->type.classdef->indx; in ieee_class_static_member()
6185 if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf) in ieee_class_static_member()
6186 || ! ieee_write_asn (info, nindx, 'd') in ieee_class_static_member()
6187 || ! ieee_write_asn (info, nindx, flags) in ieee_class_static_member()
6188 || ! ieee_write_atn65 (info, nindx, name) in ieee_class_static_member()
6189 || ! ieee_write_atn65 (info, nindx, physname)) in ieee_class_static_member()
6191 info->type_stack->type.classdef->pmisccount += 4; in ieee_class_static_member()
6202 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_baseclass() local
6210 assert (info->type_stack != NULL in ieee_class_baseclass()
6211 && info->type_stack->type.name != NULL in ieee_class_baseclass()
6212 && info->type_stack->next != NULL in ieee_class_baseclass()
6213 && info->type_stack->next->type.classdef != NULL in ieee_class_baseclass()
6214 && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef)); in ieee_class_baseclass()
6216 bname = info->type_stack->type.name; in ieee_class_baseclass()
6217 localp = info->type_stack->type.localp; in ieee_class_baseclass()
6218 bindx = ieee_pop_type (info); in ieee_class_baseclass()
6234 info->type_stack->type.localp = TRUE; in ieee_class_baseclass()
6239 if (! ieee_change_buffer (info, &info->type_stack->type.strdef) in ieee_class_baseclass()
6240 || ! ieee_write_id (info, fname) in ieee_class_baseclass()
6241 || ! ieee_write_number (info, bindx) in ieee_class_baseclass()
6242 || ! ieee_write_number (info, bitpos / 8)) in ieee_class_baseclass()
6253 nindx = info->type_stack->type.classdef->indx; in ieee_class_baseclass()
6255 if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf) in ieee_class_baseclass()
6256 || ! ieee_write_asn (info, nindx, 'b') in ieee_class_baseclass()
6257 || ! ieee_write_asn (info, nindx, flags) in ieee_class_baseclass()
6258 || ! ieee_write_atn65 (info, nindx, bname) in ieee_class_baseclass()
6259 || ! ieee_write_asn (info, nindx, 0) in ieee_class_baseclass()
6260 || ! ieee_write_atn65 (info, nindx, fname)) in ieee_class_baseclass()
6265 info->type_stack->type.classdef->pmisccount += 5; in ieee_class_baseclass()
6277 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_start_method() local
6279 assert (info->type_stack != NULL in ieee_class_start_method()
6280 && info->type_stack->type.classdef != NULL in ieee_class_start_method()
6281 && info->type_stack->type.classdef->method == NULL); in ieee_class_start_method()
6283 info->type_stack->type.classdef->method = name; in ieee_class_start_method()
6291 ieee_class_method_var (struct ieee_handle *info, const char *physname, in ieee_class_method_var() argument
6304 ieee_pop_unused_type (info); in ieee_class_method_var()
6309 ieee_pop_unused_type (info); in ieee_class_method_var()
6311 assert (info->type_stack != NULL in ieee_class_method_var()
6312 && info->type_stack->type.classdef != NULL in ieee_class_method_var()
6313 && info->type_stack->type.classdef->method != NULL); in ieee_class_method_var()
6327 nindx = info->type_stack->type.classdef->indx; in ieee_class_method_var()
6331 if (! ieee_change_buffer (info, in ieee_class_method_var()
6332 &info->type_stack->type.classdef->pmiscbuf) in ieee_class_method_var()
6333 || ! ieee_write_asn (info, nindx, is_virtual ? 'v' : 'm') in ieee_class_method_var()
6334 || ! ieee_write_asn (info, nindx, flags) in ieee_class_method_var()
6335 || ! ieee_write_atn65 (info, nindx, in ieee_class_method_var()
6336 info->type_stack->type.classdef->method) in ieee_class_method_var()
6337 || ! ieee_write_atn65 (info, nindx, physname)) in ieee_class_method_var()
6342 if (voffset > info->type_stack->type.classdef->voffset) in ieee_class_method_var()
6343 info->type_stack->type.classdef->voffset = voffset; in ieee_class_method_var()
6344 if (! ieee_write_asn (info, nindx, voffset)) in ieee_class_method_var()
6346 ++info->type_stack->type.classdef->pmisccount; in ieee_class_method_var()
6349 if (! ieee_write_asn (info, nindx, 0)) in ieee_class_method_var()
6352 info->type_stack->type.classdef->pmisccount += 5; in ieee_class_method_var()
6365 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_method_variant() local
6367 return ieee_class_method_var (info, physname, visibility, FALSE, constp, in ieee_class_method_variant()
6378 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_static_method_variant() local
6380 return ieee_class_method_var (info, physname, visibility, TRUE, constp, in ieee_class_static_method_variant()
6389 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_class_end_method() local
6391 assert (info->type_stack != NULL in ieee_class_end_method()
6392 && info->type_stack->type.classdef != NULL in ieee_class_end_method()
6393 && info->type_stack->type.classdef->method != NULL); in ieee_class_end_method()
6395 info->type_stack->type.classdef->method = NULL; in ieee_class_end_method()
6405 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_end_class_type() local
6408 assert (info->type_stack != NULL in ieee_end_class_type()
6409 && info->type_stack->type.classdef != NULL); in ieee_end_class_type()
6414 if (info->type_stack->type.ignorep) in ieee_end_class_type()
6417 nindx = info->type_stack->type.classdef->indx; in ieee_end_class_type()
6420 if (info->type_stack->type.classdef->vclass != NULL in ieee_end_class_type()
6421 || info->type_stack->type.classdef->ownvptr) in ieee_end_class_type()
6423 if (! ieee_change_buffer (info, in ieee_end_class_type()
6424 &info->type_stack->type.classdef->pmiscbuf) in ieee_end_class_type()
6425 || ! ieee_write_asn (info, nindx, 'z') in ieee_end_class_type()
6426 || ! ieee_write_atn65 (info, nindx, "") in ieee_end_class_type()
6427 || ! ieee_write_asn (info, nindx, in ieee_end_class_type()
6428 info->type_stack->type.classdef->voffset)) in ieee_end_class_type()
6430 if (info->type_stack->type.classdef->ownvptr) in ieee_end_class_type()
6432 if (! ieee_write_atn65 (info, nindx, "")) in ieee_end_class_type()
6437 if (! ieee_write_atn65 (info, nindx, in ieee_end_class_type()
6438 info->type_stack->type.classdef->vclass)) in ieee_end_class_type()
6441 if (! ieee_write_asn (info, nindx, 0)) in ieee_end_class_type()
6443 info->type_stack->type.classdef->pmisccount += 5; in ieee_end_class_type()
6450 if (! ieee_change_buffer (info, &info->cxx) in ieee_end_class_type()
6451 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_end_class_type()
6452 || ! ieee_write_number (info, nindx) in ieee_end_class_type()
6453 || ! ieee_write_id (info, "") in ieee_end_class_type()
6454 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_end_class_type()
6455 || ! ieee_write_number (info, nindx) in ieee_end_class_type()
6456 || ! ieee_write_number (info, 0) in ieee_end_class_type()
6457 || ! ieee_write_number (info, 62) in ieee_end_class_type()
6458 || ! ieee_write_number (info, 80) in ieee_end_class_type()
6459 || ! ieee_write_number (info, in ieee_end_class_type()
6460 info->type_stack->type.classdef->pmisccount)) in ieee_end_class_type()
6463 if (! ieee_append_buffer (info, &info->cxx, in ieee_end_class_type()
6464 &info->type_stack->type.classdef->pmiscbuf)) in ieee_end_class_type()
6466 if (! ieee_buffer_emptyp (&info->type_stack->type.classdef->refs)) in ieee_end_class_type()
6468 if (! ieee_append_buffer (info, &info->cxx, in ieee_end_class_type()
6469 &info->type_stack->type.classdef->refs)) in ieee_end_class_type()
6481 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_typedef_type() local
6485 h = ieee_name_type_hash_lookup (&info->typedefs, name, FALSE, FALSE); in ieee_typedef_type()
6496 if (! ieee_push_type (info, nt->type.indx, nt->type.size, in ieee_typedef_type()
6501 info->type_stack->type = nt->type; in ieee_typedef_type()
6512 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_tag_type() local
6525 for (e = info->enums; e != NULL; e = e->next) in ieee_tag_type()
6527 return ieee_push_type (info, e->indx, 0, TRUE, FALSE); in ieee_tag_type()
6532 e->indx = info->type_indx; in ieee_tag_type()
6533 ++info->type_indx; in ieee_tag_type()
6537 e->next = info->enums; in ieee_tag_type()
6538 info->enums = e; in ieee_tag_type()
6540 return ieee_push_type (info, e->indx, 0, TRUE, FALSE); in ieee_tag_type()
6553 h = ieee_name_type_hash_lookup (&info->tags, name, TRUE, copy); in ieee_tag_type()
6561 if (! ieee_push_type (info, nt->type.indx, nt->type.size, in ieee_tag_type()
6565 info->type_stack->type = nt->type; in ieee_tag_type()
6582 nt->type.indx = info->type_indx; in ieee_tag_type()
6584 ++info->type_indx; in ieee_tag_type()
6590 if (! ieee_push_type (info, nt->type.indx, 0, FALSE, localp)) in ieee_tag_type()
6593 info->type_stack->type.name = h->root.string; in ieee_tag_type()
6603 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_typdef() local
6611 type = info->type_stack->type; in ieee_typdef()
6771 h = ieee_name_type_hash_lookup (&info->typedefs, name, TRUE, FALSE); in ieee_typdef()
6785 ieee_pop_unused_type (info); in ieee_typdef()
6813 ieee_pop_unused_type (info); in ieee_typdef()
6817 indx = ieee_pop_type (info); in ieee_typdef()
6819 if (! ieee_define_named_type (info, name, (unsigned int) -1, type.size, in ieee_typdef()
6822 || ! ieee_write_number (info, 'T') in ieee_typdef()
6823 || ! ieee_write_number (info, indx)) in ieee_typdef()
6829 (void) ieee_pop_type (info); in ieee_typdef()
6839 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_tag() local
6843 (void) ieee_pop_type (info); in ieee_tag()
6874 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_typed_constant() local
6877 ieee_pop_unused_type (info); in ieee_typed_constant()
6887 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_variable() local
6895 size = info->type_stack->type.size; in ieee_variable()
6896 referencep = info->type_stack->type.referencep; in ieee_variable()
6897 type_indx = ieee_pop_type (info); in ieee_variable()
6899 assert (! ieee_buffer_emptyp (&info->vars)); in ieee_variable()
6900 if (! ieee_change_buffer (info, &info->vars)) in ieee_variable()
6903 name_indx = info->name_indx; in ieee_variable()
6904 ++info->name_indx; in ieee_variable()
6907 if (! ieee_write_byte (info, (int) ieee_nn_record) in ieee_variable()
6908 || ! ieee_write_number (info, name_indx) in ieee_variable()
6909 || ! ieee_write_id (info, name) in ieee_variable()
6910 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_variable()
6911 || ! ieee_write_number (info, name_indx) in ieee_variable()
6912 || ! ieee_write_number (info, type_indx)) in ieee_variable()
6920 if (! ieee_write_number (info, 8) in ieee_variable()
6921 || ! ieee_add_range (info, FALSE, val, val + size)) in ieee_variable()
6927 if (! ieee_write_number (info, 3) in ieee_variable()
6928 || ! ieee_add_range (info, FALSE, val, val + size)) in ieee_variable()
6934 if (! ieee_write_number (info, 3) in ieee_variable()
6935 || ! ieee_add_range (info, FALSE, val, val + size)) in ieee_variable()
6941 if (! ieee_write_number (info, 1) in ieee_variable()
6942 || ! ieee_write_number (info, val)) in ieee_variable()
6948 if (! ieee_write_number (info, 2) in ieee_variable()
6949 || ! ieee_write_number (info, in ieee_variable()
6950 ieee_genreg_to_regno (info->abfd, val))) in ieee_variable()
6959 if (! ieee_write_asn (info, name_indx, val)) in ieee_variable()
6970 nindx = info->name_indx; in ieee_variable()
6971 ++info->name_indx; in ieee_variable()
6979 if (! ieee_change_buffer (info, &info->cxx)) in ieee_variable()
6983 if (! ieee_write_byte (info, (int) ieee_nn_record) in ieee_variable()
6984 || ! ieee_write_number (info, nindx) in ieee_variable()
6985 || ! ieee_write_id (info, "") in ieee_variable()
6986 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_variable()
6987 || ! ieee_write_number (info, nindx) in ieee_variable()
6988 || ! ieee_write_number (info, 0) in ieee_variable()
6989 || ! ieee_write_number (info, 62) in ieee_variable()
6990 || ! ieee_write_number (info, 80) in ieee_variable()
6991 || ! ieee_write_number (info, 3) in ieee_variable()
6992 || ! ieee_write_asn (info, nindx, 'R') in ieee_variable()
6993 || ! ieee_write_asn (info, nindx, refflag) in ieee_variable()
6994 || ! ieee_write_atn65 (info, nindx, name)) in ieee_variable()
7006 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_start_function() local
7010 referencep = info->type_stack->type.referencep; in ieee_start_function()
7011 retindx = ieee_pop_type (info); in ieee_start_function()
7017 if (! ieee_buffer_emptyp (&info->fntype)) in ieee_start_function()
7024 info->fnname = name; in ieee_start_function()
7027 if (! ieee_define_named_type (info, name, (unsigned int) -1, 0, FALSE, TRUE, in ieee_start_function()
7028 &info->fntype) in ieee_start_function()
7029 || ! ieee_write_number (info, 'x') in ieee_start_function()
7030 || ! ieee_write_number (info, 0x40) in ieee_start_function()
7031 || ! ieee_write_number (info, 0) in ieee_start_function()
7032 || ! ieee_write_number (info, 0) in ieee_start_function()
7033 || ! ieee_write_number (info, retindx)) in ieee_start_function()
7036 typeindx = ieee_pop_type (info); in ieee_start_function()
7038 if (! ieee_init_buffer (info, &info->fnargs)) in ieee_start_function()
7040 info->fnargcount = 0; in ieee_start_function()
7048 nindx = info->name_indx; in ieee_start_function()
7049 ++info->name_indx; in ieee_start_function()
7050 if (! ieee_change_buffer (info, &info->cxx) in ieee_start_function()
7051 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_start_function()
7052 || ! ieee_write_number (info, nindx) in ieee_start_function()
7053 || ! ieee_write_id (info, "") in ieee_start_function()
7054 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_start_function()
7055 || ! ieee_write_number (info, nindx) in ieee_start_function()
7056 || ! ieee_write_number (info, 0) in ieee_start_function()
7057 || ! ieee_write_number (info, 62) in ieee_start_function()
7058 || ! ieee_write_number (info, 80) in ieee_start_function()
7059 || ! ieee_write_number (info, 3) in ieee_start_function()
7060 || ! ieee_write_asn (info, nindx, 'R') in ieee_start_function()
7061 || ! ieee_write_asn (info, nindx, global ? 0 : 1) in ieee_start_function()
7062 || ! ieee_write_atn65 (info, nindx, name)) in ieee_start_function()
7066 assert (! ieee_buffer_emptyp (&info->vars)); in ieee_start_function()
7067 if (! ieee_change_buffer (info, &info->vars)) in ieee_start_function()
7072 ++info->block_depth; in ieee_start_function()
7074 return (ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_start_function()
7075 && ieee_write_byte (info, global ? 4 : 6) in ieee_start_function()
7076 && ieee_write_number (info, 0) in ieee_start_function()
7077 && ieee_write_id (info, name) in ieee_start_function()
7078 && ieee_write_number (info, 0) in ieee_start_function()
7079 && ieee_write_number (info, typeindx)); in ieee_start_function()
7089 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_function_parameter() local
7092 assert (info->block_depth == 1); in ieee_function_parameter()
7099 m->referencep = info->type_stack->type.referencep; in ieee_function_parameter()
7100 m->type = ieee_pop_type (info); in ieee_function_parameter()
7104 for (pm = &info->pending_parms; *pm != NULL; pm = &(*pm)->next) in ieee_function_parameter()
7109 if (! ieee_change_buffer (info, &info->fnargs) in ieee_function_parameter()
7110 || ! ieee_write_number (info, m->type)) in ieee_function_parameter()
7112 ++info->fnargcount; in ieee_function_parameter()
7120 ieee_output_pending_parms (struct ieee_handle *info) in ieee_output_pending_parms() argument
7126 for (m = info->pending_parms; m != NULL; m = m->next) in ieee_output_pending_parms()
7145 if (! ieee_push_type (info, m->type, 0, FALSE, FALSE)) in ieee_output_pending_parms()
7147 info->type_stack->type.referencep = m->referencep; in ieee_output_pending_parms()
7150 if (! ieee_variable ((void *) info, m->name, vkind, m->val)) in ieee_output_pending_parms()
7162 nindx = info->name_indx; in ieee_output_pending_parms()
7163 ++info->name_indx; in ieee_output_pending_parms()
7164 if (! ieee_change_buffer (info, &info->vars) in ieee_output_pending_parms()
7165 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_output_pending_parms()
7166 || ! ieee_write_number (info, nindx) in ieee_output_pending_parms()
7167 || ! ieee_write_id (info, "") in ieee_output_pending_parms()
7168 || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_output_pending_parms()
7169 || ! ieee_write_number (info, nindx) in ieee_output_pending_parms()
7170 || ! ieee_write_number (info, 0) in ieee_output_pending_parms()
7171 || ! ieee_write_number (info, 62) in ieee_output_pending_parms()
7172 || ! ieee_write_number (info, 80) in ieee_output_pending_parms()
7173 || ! ieee_write_number (info, refcount + 3) in ieee_output_pending_parms()
7174 || ! ieee_write_asn (info, nindx, 'B') in ieee_output_pending_parms()
7175 || ! ieee_write_atn65 (info, nindx, info->fnname) in ieee_output_pending_parms()
7176 || ! ieee_write_asn (info, nindx, 0)) in ieee_output_pending_parms()
7178 for (m = info->pending_parms, varindx = 1; in ieee_output_pending_parms()
7184 if (! ieee_write_asn (info, nindx, varindx)) in ieee_output_pending_parms()
7190 m = info->pending_parms; in ieee_output_pending_parms()
7200 info->pending_parms = NULL; in ieee_output_pending_parms()
7211 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_start_block() local
7213 if (! ieee_change_buffer (info, &info->vars)) in ieee_start_block()
7216 if (info->block_depth == 1) in ieee_start_block()
7218 if (! ieee_write_number (info, addr) in ieee_start_block()
7219 || ! ieee_output_pending_parms (info)) in ieee_start_block()
7224 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_start_block()
7225 || ! ieee_write_byte (info, 6) in ieee_start_block()
7226 || ! ieee_write_number (info, 0) in ieee_start_block()
7227 || ! ieee_write_id (info, "") in ieee_start_block()
7228 || ! ieee_write_number (info, 0) in ieee_start_block()
7229 || ! ieee_write_number (info, 0) in ieee_start_block()
7230 || ! ieee_write_number (info, addr)) in ieee_start_block()
7234 if (! ieee_start_range (info, addr)) in ieee_start_block()
7237 ++info->block_depth; in ieee_start_block()
7247 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_end_block() local
7252 if (! ieee_change_buffer (info, &info->vars) in ieee_end_block()
7253 || ! ieee_write_byte (info, (int) ieee_be_record_enum) in ieee_end_block()
7254 || ! ieee_write_number (info, addr - 1)) in ieee_end_block()
7257 if (! ieee_end_range (info, addr)) in ieee_end_block()
7260 --info->block_depth; in ieee_end_block()
7262 if (addr > info->highaddr) in ieee_end_block()
7263 info->highaddr = addr; in ieee_end_block()
7273 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_end_function() local
7275 assert (info->block_depth == 1); in ieee_end_function()
7277 --info->block_depth; in ieee_end_function()
7285 if (! ieee_change_buffer (info, &info->fntype) in ieee_end_function()
7286 || ! ieee_write_number (info, info->fnargcount) in ieee_end_function()
7287 || ! ieee_change_buffer (info, &info->fnargs) in ieee_end_function()
7288 || ! ieee_write_number (info, 0)) in ieee_end_function()
7292 if (ieee_buffer_emptyp (&info->types)) in ieee_end_function()
7294 if (! ieee_change_buffer (info, &info->types) in ieee_end_function()
7295 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_end_function()
7296 || ! ieee_write_byte (info, 1) in ieee_end_function()
7297 || ! ieee_write_number (info, 0) in ieee_end_function()
7298 || ! ieee_write_id (info, info->modname)) in ieee_end_function()
7302 if (! ieee_append_buffer (info, &info->types, &info->fntype) in ieee_end_function()
7303 || ! ieee_append_buffer (info, &info->types, &info->fnargs)) in ieee_end_function()
7306 info->fnname = NULL; in ieee_end_function()
7307 if (! ieee_init_buffer (info, &info->fntype) in ieee_end_function()
7308 || ! ieee_init_buffer (info, &info->fnargs)) in ieee_end_function()
7310 info->fnargcount = 0; in ieee_end_function()
7320 struct ieee_handle *info = (struct ieee_handle *) p; in ieee_lineno() local
7322 assert (info->filename != NULL); in ieee_lineno()
7328 if (info->pending_lineno_filename != NULL in ieee_lineno()
7329 && addr != info->pending_lineno_addr) in ieee_lineno()
7332 if (! ieee_buffer_emptyp (&info->linenos)) in ieee_lineno()
7334 if (! ieee_change_buffer (info, &info->linenos)) in ieee_lineno()
7339 info->lineno_name_indx = info->name_indx; in ieee_lineno()
7340 ++info->name_indx; in ieee_lineno()
7341 if (! ieee_change_buffer (info, &info->linenos) in ieee_lineno()
7342 || ! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_lineno()
7343 || ! ieee_write_byte (info, 5) in ieee_lineno()
7344 || ! ieee_write_number (info, 0) in ieee_lineno()
7345 || ! ieee_write_id (info, info->filename) in ieee_lineno()
7346 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_lineno()
7347 || ! ieee_write_number (info, info->lineno_name_indx) in ieee_lineno()
7348 || ! ieee_write_id (info, "")) in ieee_lineno()
7350 info->lineno_filename = info->filename; in ieee_lineno()
7353 if (filename_cmp (info->pending_lineno_filename, in ieee_lineno()
7354 info->lineno_filename) != 0) in ieee_lineno()
7356 if (filename_cmp (info->filename, info->lineno_filename) != 0) in ieee_lineno()
7360 if (! ieee_write_byte (info, (int) ieee_be_record_enum)) in ieee_lineno()
7362 if (filename_cmp (info->filename, in ieee_lineno()
7363 info->pending_lineno_filename) == 0) in ieee_lineno()
7367 info->lineno_name_indx = info->name_indx; in ieee_lineno()
7368 ++info->name_indx; in ieee_lineno()
7369 if (! ieee_write_byte (info, (int) ieee_nn_record) in ieee_lineno()
7370 || ! ieee_write_number (info, info->lineno_name_indx) in ieee_lineno()
7371 || ! ieee_write_id (info, "")) in ieee_lineno()
7375 if (filename_cmp (info->filename, in ieee_lineno()
7376 info->pending_lineno_filename) != 0) in ieee_lineno()
7380 info->lineno_name_indx = info->name_indx; in ieee_lineno()
7381 ++info->name_indx; in ieee_lineno()
7382 if (! ieee_write_byte (info, (int) ieee_bb_record_enum) in ieee_lineno()
7383 || ! ieee_write_byte (info, 5) in ieee_lineno()
7384 || ! ieee_write_number (info, 0) in ieee_lineno()
7385 || ! ieee_write_id (info, info->pending_lineno_filename) in ieee_lineno()
7386 || ! ieee_write_byte (info, (int) ieee_nn_record) in ieee_lineno()
7387 || ! ieee_write_number (info, info->lineno_name_indx) in ieee_lineno()
7388 || ! ieee_write_id (info, "")) in ieee_lineno()
7391 info->lineno_filename = info->pending_lineno_filename; in ieee_lineno()
7394 if (! ieee_write_2bytes (info, (int) ieee_atn_record_enum) in ieee_lineno()
7395 || ! ieee_write_number (info, info->lineno_name_indx) in ieee_lineno()
7396 || ! ieee_write_number (info, 0) in ieee_lineno()
7397 || ! ieee_write_number (info, 7) in ieee_lineno()
7398 || ! ieee_write_number (info, info->pending_lineno) in ieee_lineno()
7399 || ! ieee_write_number (info, 0) in ieee_lineno()
7400 || ! ieee_write_asn (info, info->lineno_name_indx, in ieee_lineno()
7401 info->pending_lineno_addr)) in ieee_lineno()
7405 info->pending_lineno_filename = filename; in ieee_lineno()
7406 info->pending_lineno = lineno; in ieee_lineno()
7407 info->pending_lineno_addr = addr; in ieee_lineno()