mono_hwcap_arch_init ()
{
  long unsigned int D.5762;
  long unsigned int D.5765;
  long unsigned int D.5768;
  long unsigned int D.5771;
  int D.5746;
  int iftmp.0;
  int D.5745;
  const char[7] * D.5781;
  unsigned char D.5782;
  int D.5783;
  unsigned char D.5784;
  int D.5785;
  const unsigned char * D.5790;
  unsigned char D.5791;
  int D.5792;
  const unsigned char * D.5793;
  unsigned char D.5794;
  int D.5795;
  const unsigned char * D.5800;
  unsigned char D.5801;
  int D.5802;
  const unsigned char * D.5803;
  unsigned char D.5804;
  int D.5805;
  const unsigned char * D.5810;
  unsigned char D.5811;
  int D.5812;
  const unsigned char * D.5813;
  unsigned char D.5814;
  int D.5815;
  int D.5818;
  const char * D.5820;
  char D.5821;
  long unsigned int hwcap;
  long unsigned int platform;

  hwcap = getauxval (16);
  if (hwcap != 0) goto <D.5760>; else goto <D.5761>;
  <D.5760>:
  D.5762 = hwcap & 8192;
  if (D.5762 != 0) goto <D.5763>; else goto <D.5764>;
  <D.5763>:
  mono_hwcap_ppc_has_icache_snoop = 1;
  <D.5764>:
  D.5765 = hwcap & 989184;
  if (D.5765 != 0) goto <D.5766>; else goto <D.5767>;
  <D.5766>:
  mono_hwcap_ppc_is_isa_2x = 1;
  <D.5767>:
  D.5768 = hwcap & 1073741824;
  if (D.5768 != 0) goto <D.5769>; else goto <D.5770>;
  <D.5769>:
  mono_hwcap_ppc_is_isa_64 = 1;
  <D.5770>:
  D.5771 = hwcap & 512;
  if (D.5771 != 0) goto <D.5772>; else goto <D.5773>;
  <D.5772>:
  mono_hwcap_ppc_has_move_fpr_gpr = 1;
  <D.5773>:
  <D.5761>:
  platform = getauxval (15);
  if (platform != 0) goto <D.5774>; else goto <D.5775>;
  <D.5774>:
  {
    const char * str;

    str = (const char *) platform;
    {
      size_t __s1_len;
      size_t __s2_len;

      __s2_len = 6;
      if (__s2_len <= 3) goto <D.5779>; else goto <D.5780>;
      <D.5779>:
      {
        const unsigned char * __s2;
        int __result;

        __s2 = str;
        D.5781 = "ppc970";
        D.5782 = MEM[(const unsigned char *)D.5781];
        D.5783 = (int) D.5782;
        D.5784 = *__s2;
        D.5785 = (int) D.5784;
        __result = D.5783 - D.5785;
        {
          if (__s2_len != 0) goto <D.5786>; else goto <D.5787>;
          <D.5786>:
          if (__result == 0) goto <D.5788>; else goto <D.5789>;
          <D.5788>:
          D.5790 = &MEM[(void *)"ppc970" + 1B];
          D.5791 = *D.5790;
          D.5792 = (int) D.5791;
          D.5793 = __s2 + 1;
          D.5794 = *D.5793;
          D.5795 = (int) D.5794;
          __result = D.5792 - D.5795;
          if (__s2_len > 1) goto <D.5796>; else goto <D.5797>;
          <D.5796>:
          if (__result == 0) goto <D.5798>; else goto <D.5799>;
          <D.5798>:
          D.5800 = &MEM[(void *)"ppc970" + 2B];
          D.5801 = *D.5800;
          D.5802 = (int) D.5801;
          D.5803 = __s2 + 2;
          D.5804 = *D.5803;
          D.5805 = (int) D.5804;
          __result = D.5802 - D.5805;
          if (__s2_len > 2) goto <D.5806>; else goto <D.5807>;
          <D.5806>:
          if (__result == 0) goto <D.5808>; else goto <D.5809>;
          <D.5808>:
          D.5810 = &MEM[(void *)"ppc970" + 3B];
          D.5811 = *D.5810;
          D.5812 = (int) D.5811;
          D.5813 = __s2 + 3;
          D.5814 = *D.5813;
          D.5815 = (int) D.5814;
          __result = D.5812 - D.5815;
          <D.5809>:
          <D.5807>:
          <D.5799>:
          <D.5797>:
          <D.5789>:
          <D.5787>:
        }
        D.5745 = __result;
      }
      iftmp.0 = -D.5745;
      goto <D.5816>;
      <D.5780>:
      iftmp.0 = __builtin_strcmp (str, "ppc970");
      <D.5816>:
      D.5746 = iftmp.0;
    }
    if (D.5746 == 0) goto <D.5776>; else goto <D.5817>;
    <D.5817>:
    D.5818 = strncmp (str, "power", 5);
    if (D.5818 == 0) goto <D.5819>; else goto <D.5777>;
    <D.5819>:
    D.5820 = str + 5;
    D.5821 = *D.5820;
    if (D.5821 > 51) goto <D.5822>; else goto <D.5777>;
    <D.5822>:
    D.5820 = str + 5;
    D.5821 = *D.5820;
    if (D.5821 <= 55) goto <D.5776>; else goto <D.5777>;
    <D.5776>:
    mono_hwcap_ppc_has_multiple_ls_units = 1;
    <D.5777>:
  }
  <D.5775>:
}


mono_hwcap_print (struct FILE * f)
{
  int mono_hwcap_ppc_has_icache_snoop.1;
  int mono_hwcap_ppc_is_isa_2x.2;
  int mono_hwcap_ppc_is_isa_64.3;
  int mono_hwcap_ppc_has_move_fpr_gpr.4;
  int mono_hwcap_ppc_has_multiple_ls_units.5;

  mono_hwcap_ppc_has_icache_snoop.1 = mono_hwcap_ppc_has_icache_snoop;
  monoeg_g_fprintf (f, "mono_hwcap_ppc_has_icache_snoop = %i\n", mono_hwcap_ppc_has_icache_snoop.1);
  mono_hwcap_ppc_is_isa_2x.2 = mono_hwcap_ppc_is_isa_2x;
  monoeg_g_fprintf (f, "mono_hwcap_ppc_is_isa_2x = %i\n", mono_hwcap_ppc_is_isa_2x.2);
  mono_hwcap_ppc_is_isa_64.3 = mono_hwcap_ppc_is_isa_64;
  monoeg_g_fprintf (f, "mono_hwcap_ppc_is_isa_64 = %i\n", mono_hwcap_ppc_is_isa_64.3);
  mono_hwcap_ppc_has_move_fpr_gpr.4 = mono_hwcap_ppc_has_move_fpr_gpr;
  monoeg_g_fprintf (f, "mono_hwcap_ppc_has_move_fpr_gpr = %i\n", mono_hwcap_ppc_has_move_fpr_gpr.4);
  mono_hwcap_ppc_has_multiple_ls_units.5 = mono_hwcap_ppc_has_multiple_ls_units;
  monoeg_g_fprintf (f, "mono_hwcap_ppc_has_multiple_ls_units = %i\n", mono_hwcap_ppc_has_multiple_ls_units.5);
}


