{
char *insnp = frag_more (2);
/* We need to mark the start of the insn by passing dwarf2_emit_insn the offset from the current fragment position. This must be done after the first fragment is created but before any other fragments (fixed or varying) are created. Note that the offset only corresponds to the "size" of the insn for a fixed-size, non-expanded insn. */if (OUTPUT_FLAVOR == bfd_target_elf_flavour)
dwarf2_emit_insn (2);
return insnp;

{
valueTaddr = fixP->fx_where + fixP->fx_frag->fr_address;
/* FIXME: We get here only at the end of assembly, when X in ".-X" is still unknown. Since we don't have pc-relative relocations in a.out, this is invalid. What to do if anything for a.out, is to add pc-relative relocations everywhere including the elinux program loader. For ELF, allow straight-forward PC-relative relocations, which are always relative to the location after the relocation. */if (OUTPUT_FLAVOR != bfd_target_elf_flavour
|| (fixP->fx_r_type != BFD_RELOC_8_PCREL
&& fixP->fx_r_type != BFD_RELOC_16_PCREL
&& fixP->fx_r_type != BFD_RELOC_32_PCREL
&& fixP->fx_r_type != BFD_RELOC_CRIS_LAPCQ_OFFSET))
as_bad_where (fixP->fx_file, fixP->fx_line,
_("Invalid pc-relative relocation"));
return fixP->fx_size + addr;

{
/* Right now we take the easy route and check for sameness. It's not obvious that allowing e.g. --march=v32 and .arch common_v0_v32 would be more useful than confusing, implementation-wise and user-wise. */char *str = input_line_pointer;
enumcris_archs arch = cris_arch_from_string (&str);
if (arch == arch_cris_unknown)
{
as_bad (_("unknown operand to .arch"));
/* For this one, str does not reflect the end of the operand, since there was no matching arch. Skip it manually; skip things that can be part of a word (a name). */while (is_part_of_name (*str))
str++;
}
elseif (arch != cris_arch)
as_bad (_(".arch <arch> requires a matching --march=... option"));
input_line_pointer = str;
demand_empty_rest_of_line ();
return;