FreeBSD/contrib/binutils/gas/config/tc-arm.c
/* Neon-syntax VFP conversions.  */
Neon-syntax VFP conversions.
Neon - syntax VFP conversions .
static void
do_vfp_nsyn_cvt (enum neon_shape rs, int flavour)
{
  const char *opname = 0;
  if (rs == NS_DDI || rs == NS_QQI || rs == NS_FFI)
    {
      const char *enc[] =
        {
          "ftosls",
          "ftouls",
          "fsltos",
          "fultos",
          NULL,
          NULL,
          "ftosld",
          "ftould",
          "fsltod",
          "fultod",
          "fshtos",
          "fuhtos",
          "fshtod",
          "fuhtod",
          "ftoshs",
          "ftouhs",
          "ftoshd",
          "ftouhd"
        };
      if (flavour >= 0 && flavour < (int) ARRAY_SIZE (enc))
        {
          opname = enc[flavour];
          constraint (inst.operands[0].reg != inst.operands[1].reg,
                      _("operands 0 and 1 must be the same register"));
          inst.operands[1] = inst.operands[2];
          memset (&inst.operands[2], '\0', sizeof (inst.operands[2]));
        }
    }
  else
    {
      const char *enc[] =
        {
          "ftosizs",
          "ftouizs",
          "fsitos",
          "fuitos",
          "fcvtsd",
          "fcvtds",
          "ftosizd",
          "ftouizd",
          "fsitod",
          "fuitod"
        };
      if (flavour >= 0 && flavour < (int) ARRAY_SIZE (enc))
        opname = enc[flavour];
    }
  if (opname)
    do_vfp_nsyn_opcode (opname);
}
static void do_vfp_nsyn_cvt ( enum neon_shape rs , int flavour ) { const char * opname = 0 ; if ( rs == NS_DDI || rs == NS_QQI || rs == NS_FFI ) { const char * enc [ ] = { " " , " " , " " , " " , NULL , NULL , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " } ; if ( flavour >= 0 && flavour < ( int ) ARRAY_SIZE ( enc ) ) { opname = enc [ flavour ] ; constraint ( inst . operands [ 0 ] . reg != inst . operands [ 1 ] . reg , _ ( " " ) ) ; inst . operands [ 1 ] = inst . operands [ 2 ] ; memset ( & inst . operands [ 2 ] , ' \0 ' , sizeof ( inst . operands [ 2 ] ) ) ; } } else { const char * enc [ ] = { " " , " " , " " , " " , " " , " " , " " , " " , " " , " " } ; if ( flavour >= 0 && flavour < ( int ) ARRAY_SIZE ( enc ) ) opname = enc [ flavour ] ; } if ( opname ) do_vfp_nsyn_opcode ( opname ) ; }
Neon-syntax VFP conversions.
Neon - syntax VFP conversions .
/* Conversions with immediate bitshift.  */ /* Conversions without bitshift.  */