__attribute__((visibility ("hidden")))
mono_arch_regname (int reg)
{
  unsigned int reg.0;
  const char * D.25408;
  static const char * rnames[16] = {(const char *) "s390_r0", (const char *) "s390_sp", (const char *) "s390_r2", (const char *) "s390_r3", (const char *) "s390_r4", (const char *) "s390_r5", (const char *) "s390_r6", (const char *) "s390_r7", (const char *) "s390_r8", (const char *) "s390_r9", (const char *) "s390_r10", (const char *) "s390_r11", (const char *) "s390_r12", (const char *) "s390_r13", (const char *) "s390_r14", (const char *) "s390_r15"};

  reg.0 = (unsigned int) reg;
  if (reg.0 <= 15) goto <D.25406>; else goto <D.25407>;
  <D.25406>:
  D.25408 = rnames[reg];
  return D.25408;
  <D.25407>:
  D.25408 = "unknown";
  return D.25408;
}


__attribute__((visibility ("hidden")))
mono_arch_fregname (int reg)
{
  unsigned int reg.1;
  const char * D.25413;
  static const char * rnames[16] = {(const char *) "s390_f0", (const char *) "s390_f1", (const char *) "s390_f2", (const char *) "s390_f3", (const char *) "s390_f4", (const char *) "s390_f5", (const char *) "s390_f6", (const char *) "s390_f7", (const char *) "s390_f8", (const char *) "s390_f9", (const char *) "s390_f10", (const char *) "s390_f11", (const char *) "s390_f12", (const char *) "s390_f13", (const char *) "s390_f14", (const char *) "s390_f15"};

  reg.1 = (unsigned int) reg;
  if (reg.1 <= 15) goto <D.25411>; else goto <D.25412>;
  <D.25411>:
  D.25413 = rnames[reg];
  return D.25413;
  <D.25412>:
  D.25413 = "unknown";
  return D.25413;
}


__attribute__((visibility ("hidden")))
mono_arch_get_argument_info (struct MonoGenericSharingContext * gsctx, struct MonoMethodSignature * csig, int param_count, struct MonoJitArgumentInfo * arg_info)
{
  struct MonoType * D.25415;
  int D.25416;
  unsigned int frame_size.2;
  unsigned int D.25420;
  short unsigned int D.25421;
  long unsigned int D.25422;
  long unsigned int D.25423;
  short unsigned int D.25426;
  long unsigned int D.25427;
  struct MonoType * D.25430;
  int align.3;
  int D.25433;
  int D.25434;
  int D.25435;
  int pad.4;
  long unsigned int D.25437;
  long unsigned int D.25438;
  struct MonoJitArgumentInfo * D.25439;
  unsigned char D.25440;
  sizetype D.25441;
  sizetype D.25442;
  sizetype D.25443;
  struct MonoJitArgumentInfo * D.25444;
  short unsigned int D.25445;
  int pad.5;
  int D.25447;
  int k;
  int frame_size;
  int size;
  int align;
  int pad;
  int offset;

  try
    {
      frame_size = 0;
      offset = 8;
      D.25415 = csig->ret;
      D.25416 = mono_type_is_struct (D.25415);
      if (D.25416 != 0) goto <D.25417>; else goto <D.25418>;
      <D.25417>:
      frame_size.2 = (unsigned int) frame_size;
      D.25420 = frame_size.2 + 8;
      frame_size = (int) D.25420;
      offset = offset + 8;
      <D.25418>:
      D.25421 = (short unsigned int) offset;
      arg_info->offset = D.25421;
      D.25422 = BIT_FIELD_REF <*csig, 64, 64>;
      D.25423 = D.25422 & 512;
      if (D.25423 != 0) goto <D.25424>; else goto <D.25425>;
      <D.25424>:
      frame_size.2 = (unsigned int) frame_size;
      D.25420 = frame_size.2 + 8;
      frame_size = (int) D.25420;
      offset = offset + 8;
      <D.25425>:
      D.25426 = (short unsigned int) frame_size;
      arg_info->size = D.25426;
      k = 0;
      goto <D.24037>;
      <D.24036>:
      D.25422 = BIT_FIELD_REF <*csig, 64, 64>;
      D.25427 = D.25422 & 128;
      if (D.25427 != 0) goto <D.25428>; else goto <D.25429>;
      <D.25428>:
      D.25430 = csig->params[k];
      size = mono_type_native_stack_size (D.25430, &align);
      goto <D.25431>;
      <D.25429>:
      D.25430 = csig->params[k];
      size = mini_type_stack_size (0B, D.25430, &align);
      <D.25431>:
      align.3 = align;
      align.3 = align;
      D.25433 = align.3 + -1;
      D.25434 = D.25433 & frame_size;
      D.25435 = align.3 - D.25434;
      align.3 = align;
      D.25433 = align.3 + -1;
      pad = D.25435 & D.25433;
      pad.4 = pad;
      frame_size = pad.4 + frame_size;
      D.25437 = (long unsigned int) k;
      D.25438 = D.25437 * 6;
      D.25439 = arg_info + D.25438;
      D.25440 = (unsigned char) pad;
      D.25439->pad = D.25440;
      frame_size = frame_size + size;
      D.25441 = (sizetype) k;
      D.25442 = D.25441 + 1;
      D.25443 = D.25442 * 6;
      D.25444 = arg_info + D.25443;
      D.25444->pad = 0;
      D.25441 = (sizetype) k;
      D.25442 = D.25441 + 1;
      D.25443 = D.25442 * 6;
      D.25444 = arg_info + D.25443;
      D.25445 = (short unsigned int) size;
      D.25444->size = D.25445;
      offset = offset + pad;
      D.25441 = (sizetype) k;
      D.25442 = D.25441 + 1;
      D.25443 = D.25442 * 6;
      D.25444 = arg_info + D.25443;
      D.25421 = (short unsigned int) offset;
      D.25444->offset = D.25421;
      offset = offset + size;
      k = k + 1;
      <D.24037>:
      if (k < param_count) goto <D.24036>; else goto <D.24038>;
      <D.24038>:
      align = 8;
      align.3 = align;
      align.3 = align;
      D.25433 = align.3 + -1;
      D.25434 = D.25433 & frame_size;
      D.25435 = align.3 - D.25434;
      align.3 = align;
      D.25433 = align.3 + -1;
      pad = D.25435 & D.25433;
      pad.5 = pad;
      frame_size = pad.5 + frame_size;
      D.25437 = (long unsigned int) k;
      D.25438 = D.25437 * 6;
      D.25439 = arg_info + D.25438;
      D.25440 = (unsigned char) pad;
      D.25439->pad = D.25440;
      D.25447 = frame_size;
      return D.25447;
    }
  finally
    {
      align = {CLOBBER};
    }
}


__attribute__((visibility ("hidden")))
mono_arch_cpu_init ()
{

}


__attribute__((visibility ("hidden")))
mono_arch_init ()
{
  int D.25450;
  long unsigned int D.25451;
  void * D.25452;
  int D.25453;
  long unsigned int D.25454;
  void * D.25455;
  void * bp_trigger_page.6;
  int D.25457;
  long unsigned int D.25458;
  guint8 * code;

  D.25450 = mono_pagesize ();
  D.25451 = (long unsigned int) D.25450;
  D.25452 = mono_valloc (0B, D.25451, 1);
  ss_trigger_page = D.25452;
  D.25453 = mono_pagesize ();
  D.25454 = (long unsigned int) D.25453;
  D.25455 = mono_valloc (0B, D.25454, 1);
  bp_trigger_page = D.25455;
  bp_trigger_page.6 = bp_trigger_page;
  D.25457 = mono_pagesize ();
  D.25458 = (long unsigned int) D.25457;
  mono_mprotect (bp_trigger_page.6, D.25458, 0);
  code = &breakpointCode;
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 3489660932;
  code = code + 4;
}


__attribute__((visibility ("hidden")))
mono_arch_cleanup ()
{

}


__attribute__((visibility ("hidden")))
mono_arch_cpu_optimizations (guint32 * exclude_mask)
{
  guint32 D.25459;
  guint32 opts;

  opts = 0;
  *exclude_mask = 128;
  D.25459 = opts;
  return D.25459;
}


__attribute__((visibility ("hidden")))
mono_arch_cpu_enumerate_simd_versions ()
{
  guint32 D.25461;

  D.25461 = 0;
  return D.25461;
}


__attribute__((visibility ("hidden")))
mono_arch_get_allocatable_int_vars (struct MonoCompile * cfg)
{
  struct MonoInst * * D.25463;
  long unsigned int D.25464;
  long unsigned int D.25465;
  struct MonoInst * * D.25466;
  struct MonoMethodVar * D.25467;
  long unsigned int D.25468;
  unsigned int D.25469;
  unsigned int D.25470;
  unsigned char D.25475;
  int D.25476;
  int D.25477;
  short unsigned int D.25479;
  short unsigned int D.25480;
  struct MonoType * D.25481;
  int D.25482;
  struct MonoMethodVar * D.25485;
  int D.25486;
  _Bool D.25487;
  long int D.25488;
  long int D.25489;
  unsigned int D.25492;
  unsigned int i.7;
  _Bool D.25494;
  long int D.25495;
  long int D.25496;
  unsigned int D.25499;
  struct GList * D.25500;
  struct GList * vars;
  int i;

  vars = 0B;
  i = 0;
  goto <D.24296>;
  <D.24295>:
  {
    struct MonoInst * ins;
    struct MonoMethodVar * vmv;

    D.25463 = cfg->varinfo;
    D.25464 = (long unsigned int) i;
    D.25465 = D.25464 * 8;
    D.25466 = D.25463 + D.25465;
    ins = *D.25466;
    D.25467 = cfg->vars;
    D.25464 = (long unsigned int) i;
    D.25468 = D.25464 * 80;
    vmv = D.25467 + D.25468;
    D.25469 = vmv->range.first_use.abs_pos;
    D.25470 = vmv->range.last_use.abs_pos;
    if (D.25469 >= D.25470) goto <D.25471>; else goto <D.25472>;
    <D.25471>:
    // predicted unlikely by continue predictor.
    goto <D.24294>;
    <D.25472>:
    D.25475 = ins->flags;
    D.25476 = (int) D.25475;
    D.25477 = D.25476 & 20;
    if (D.25477 != 0) goto <D.25473>; else goto <D.25478>;
    <D.25478>:
    D.25479 = ins->opcode;
    D.25480 = D.25479 + 65207;
    if (D.25480 > 1) goto <D.25473>; else goto <D.25474>;
    <D.25473>:
    // predicted unlikely by continue predictor.
    goto <D.24294>;
    <D.25474>:
    D.25481 = ins->data.op[1].vtype;
    D.25482 = mono_is_regsize_var (D.25481);
    if (D.25482 != 0) goto <D.25483>; else goto <D.25484>;
    <D.25483>:
    D.25467 = cfg->vars;
    D.25464 = (long unsigned int) i;
    D.25468 = D.25464 * 80;
    D.25485 = D.25467 + D.25468;
    D.25486 = D.25485->reg;
    D.25487 = D.25486 != -1;
    D.25488 = (long int) D.25487;
    D.25489 = __builtin_expect (D.25488, 0);
    if (D.25489 != 0) goto <D.25490>; else goto <D.25491>;
    <D.25490>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 1374, "MONO_VARINFO (cfg, i)->reg == -1");
    <D.25491>:
    D.25492 = vmv->idx;
    i.7 = (unsigned int) i;
    D.25494 = D.25492 != i.7;
    D.25495 = (long int) D.25494;
    D.25496 = __builtin_expect (D.25495, 0);
    if (D.25496 != 0) goto <D.25497>; else goto <D.25498>;
    <D.25497>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 1375, "i == vmv->idx");
    <D.25498>:
    vars = mono_varlist_insert_sorted (cfg, vars, vmv, 0);
    <D.25484>:
  }
  <D.24294>:
  i = i + 1;
  <D.24296>:
  D.25499 = cfg->num_varinfo;
  i.7 = (unsigned int) i;
  if (D.25499 > i.7) goto <D.24295>; else goto <D.24297>;
  <D.24297>:
  D.25500 = vars;
  return D.25500;
}


__attribute__((visibility ("hidden")))
mono_arch_get_global_int_regs (struct MonoCompile * cfg)
{
  unsigned int D.25504;
  unsigned int D.25505;
  long unsigned int D.25507;
  long unsigned int D.25508;
  unsigned int D.25509;
  unsigned int i.8;
  long unsigned int D.25513;
  void * D.25514;
  struct GList * D.25515;
  struct GList * regs;
  struct MonoMethodHeader * header;
  int i;
  int top;

  regs = 0B;
  top = 13;
  header = cfg->header;
  D.25504 = cfg->flags;
  D.25505 = D.25504 & 1;
  if (D.25505 != 0) goto <D.25502>; else goto <D.25506>;
  <D.25506>:
  D.25507 = BIT_FIELD_REF <*header, 64, 64>;
  D.25508 = D.25507 & 65534;
  if (D.25508 != 0) goto <D.25502>; else goto <D.25503>;
  <D.25502>:
  cfg->frame_reg = 11;
  <D.25503>:
  top = 12;
  i = 8;
  goto <D.24306>;
  <D.24305>:
  D.25509 = cfg->frame_reg;
  i.8 = (unsigned int) i;
  if (D.25509 != i.8) goto <D.25511>; else goto <D.25512>;
  <D.25511>:
  D.25513 = (long unsigned int) i;
  D.25514 = (void *) D.25513;
  regs = monoeg_g_list_prepend (regs, D.25514);
  <D.25512>:
  i = i + 1;
  <D.24306>:
  if (i < top) goto <D.24305>; else goto <D.24307>;
  <D.24307>:
  D.25515 = regs;
  return D.25515;
}


__attribute__((visibility ("hidden")))
mono_arch_flush_icache (guint8 * code, gint size)
{

}


__attribute__((visibility ("hidden")))
mono_arch_allocate_vars (struct MonoCompile * cfg)
{
  unsigned int D.25517;
  unsigned int D.25518;
  unsigned int D.25521;
  long unsigned int D.25523;
  long unsigned int D.25524;
  unsigned int frame_reg.9;
  long unsigned int D.25528;
  int D.25529;
  long unsigned int D.25530;
  long unsigned int D.25531;
  struct MonoMethod * D.25532;
  struct MonoMemPool * D.25533;
  unsigned int D.25534;
  struct MonoGenericSharingContext * D.25537;
  struct MonoType * D.25538;
  struct MonoType * D.25539;
  unsigned char D.25540;
  int D.25541;
  struct MonoInst * D.25542;
  unsigned int D.25543;
  unsigned int offset.10;
  unsigned int D.25550;
  int D.25551;
  long int D.25552;
  unsigned int D.25553;
  unsigned int D.25554;
  _Bool D.25555;
  long int D.25556;
  long int D.25557;
  struct MonoInst * D.25560;
  long unsigned int D.25561;
  long unsigned int D.25562;
  struct MonoInst * * D.25565;
  short unsigned int D.25566;
  short unsigned int D.25570;
  int D.25571;
  long unsigned int D.25572;
  int D.25575;
  int D.25576;
  long unsigned int D.25577;
  long unsigned int D.25578;
  struct MonoInst * * D.25579;
  <unnamed type> D.25582;
  long int D.25583;
  struct MonoInst * D.25584;
  int D.25585;
  int D.25586;
  const unsigned char * D.25587;
  int D.25588;
  int D.25589;
  long unsigned int D.25590;
  long unsigned int D.25591;
  unsigned int D.25592;
  int D.25593;
  int D.25594;
  long int D.25595;
  long int D.25596;
  struct MonoInst * D.25597;
  int D.25598;
  int D.25599;
  unsigned int D.25600;
  int iftmp.11;
  int D.25604;
  int D.25605;
  int D.25606;
  unsigned char D.25608;
  int iftmp.12;
  unsigned int D.25614;
  int D.25616;
  long int D.25617;
  int iftmp.13;
  int iftmp.14;
  long unsigned int D.25627;
  long unsigned int D.25628;
  int D.25632;
  int D.25633;
  long int D.25634;
  int D.25635;
  unsigned int D.25636;
  struct MonoInst * * D.25637;
  long unsigned int D.25638;
  long unsigned int D.25639;
  struct MonoInst * * D.25640;
  unsigned char D.25643;
  int D.25644;
  int D.25645;
  int D.25649;
  struct MonoType * D.25651;
  int D.25652;
  struct MonoClass * D.25654;
  int iftmp.15;
  int align.16;
  int D.25659;
  int D.25660;
  int D.25661;
  long int D.25665;
  unsigned int D.25666;
  unsigned int iVar.17;
  struct MonoTraceSpec * mono_jit_trace_calls.18;
  int D.25673;
  unsigned int D.25674;
  unsigned int D.25675;
  unsigned int D.25676;
  long unsigned int D.25677;
  unsigned int D.25680;
  int D.25681;
  int D.25682;
  long unsigned int D.25683;
  long unsigned int D.25684;
  struct MonoInst * * D.25685;
  int D.25688;
  long int D.25689;
  long int D.25690;
  struct MonoMethodSignature * sig;
  struct MonoMethodHeader * header;
  struct MonoInst * inst;
  struct CallInfo * cinfo;
  int iParm;
  int iVar;
  int offset;
  int align;
  int size;
  int curinst;
  int frame_reg;
  int sArg;
  int eArg;

  try
    {
      frame_reg = 15;
      header = cfg->header;
      D.25517 = cfg->flags;
      D.25518 = D.25517 | 64;
      cfg->flags = D.25518;
      D.25517 = cfg->flags;
      D.25521 = D.25517 & 1;
      if (D.25521 != 0) goto <D.25519>; else goto <D.25522>;
      <D.25522>:
      D.25523 = BIT_FIELD_REF <*header, 64, 64>;
      D.25524 = D.25523 & 65534;
      if (D.25524 != 0) goto <D.25519>; else goto <D.25520>;
      <D.25519>:
      frame_reg = 11;
      <D.25520>:
      frame_reg.9 = (unsigned int) frame_reg;
      cfg->frame_reg = frame_reg.9;
      cfg->arch.bkchain_reg = -1;
      if (frame_reg != 15) goto <D.25526>; else goto <D.25527>;
      <D.25526>:
      D.25528 = cfg->used_int_regs;
      D.25529 = 1 << frame_reg;
      D.25530 = (long unsigned int) D.25529;
      D.25531 = D.25528 | D.25530;
      cfg->used_int_regs = D.25531;
      <D.25527>:
      D.25532 = cfg->method;
      sig = mono_method_signature (D.25532);
      D.25533 = cfg->mempool;
      cinfo = get_call_info (cfg, D.25533, sig);
      D.25534 = cinfo->struct_ret;
      if (D.25534 == 0) goto <D.25535>; else goto <D.25536>;
      <D.25535>:
      D.25537 = cfg->generic_sharing_context;
      D.25538 = sig->ret;
      D.25539 = mini_type_get_underlying_type (D.25537, D.25538);
      D.25540 = D.25539->type;
      D.25541 = (int) D.25540;
      switch (D.25541) <default: <D.24450>, case 1: <D.24448>>
      <D.24448>:
      goto <D.24449>;
      <D.24450>:
      D.25542 = cfg->ret;
      D.25542->opcode = 366;
      D.25542 = cfg->ret;
      D.25542->dreg = 2;
      goto <D.24449>;
      <D.24449>:
      <D.25536>:
      D.25543 = cfg->param_area;
      if (D.25543 == 0) goto <D.25544>; else goto <D.25545>;
      <D.25544>:
      offset = 160;
      goto <D.25546>;
      <D.25545>:
      D.25543 = cfg->param_area;
      offset = (int) D.25543;
      <D.25546>:
      cfg->sig_cookie = 0;
      D.25534 = cinfo->struct_ret;
      if (D.25534 != 0) goto <D.25547>; else goto <D.25548>;
      <D.25547>:
      inst = cfg->vret_addr;
      offset.10 = (unsigned int) offset;
      D.25550 = offset.10 + 7;
      D.25551 = (int) D.25550;
      offset = D.25551 & -8;
      D.25552 = (long int) offset;
      inst->data.op[0].const_val = D.25552;
      inst->opcode = 367;
      inst->sreg1 = frame_reg;
      offset.10 = (unsigned int) offset;
      D.25553 = offset.10 + 8;
      offset = (int) D.25553;
      D.25554 = cfg->verbose_level;
      D.25555 = D.25554 > 1;
      D.25556 = (long int) D.25555;
      D.25557 = __builtin_expect (D.25556, 0);
      if (D.25557 != 0) goto <D.25558>; else goto <D.25559>;
      <D.25558>:
      printf ("vret_addr =");
      D.25560 = cfg->vret_addr;
      mono_print_ins (D.25560);
      <D.25559>:
      <D.25548>:
      D.25561 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25562 = D.25561 & 512;
      if (D.25562 != 0) goto <D.25563>; else goto <D.25564>;
      <D.25563>:
      D.25565 = cfg->args;
      inst = *D.25565;
      D.25566 = inst->opcode;
      if (D.25566 != 366) goto <D.25567>; else goto <D.25568>;
      <D.25567>:
      inst->opcode = 367;
      inst->sreg1 = frame_reg;
      offset.10 = (unsigned int) offset;
      D.25550 = offset.10 + 7;
      D.25551 = (int) D.25550;
      offset = D.25551 & -8;
      D.25552 = (long int) offset;
      inst->data.op[0].const_val = D.25552;
      offset.10 = (unsigned int) offset;
      D.25553 = offset.10 + 8;
      offset = (int) D.25553;
      <D.25568>:
      sArg = 1;
      curinst = sArg;
      goto <D.25569>;
      <D.25564>:
      sArg = 0;
      curinst = sArg;
      <D.25569>:
      D.25570 = sig->param_count;
      D.25571 = (int) D.25570;
      eArg = D.25571 + sArg;
      D.25561 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25572 = D.25561 & 64512;
      if (D.25572 == 5120) goto <D.25573>; else goto <D.25574>;
      <D.25573>:
      D.25575 = cfg->sig_cookie;
      D.25576 = D.25575 + 160;
      cfg->sig_cookie = D.25576;
      <D.25574>:
      iParm = sArg;
      goto <D.24459>;
      <D.24458>:
      D.25565 = cfg->args;
      D.25577 = (long unsigned int) curinst;
      D.25578 = D.25577 * 8;
      D.25579 = D.25565 + D.25578;
      inst = *D.25579;
      D.25566 = inst->opcode;
      if (D.25566 != 366) goto <D.25580>; else goto <D.25581>;
      <D.25580>:
      D.25582 = cinfo->args[iParm].regtype;
      switch (D.25582) <default: <D.24457>, case 4: <D.24456>, case 6: <D.24451>, case 7: <D.24454>>
      <D.24451>:
      {
        struct MonoInst * indir;

        size = 8;
        inst->opcode = 367;
        inst->sreg1 = frame_reg;
        offset.10 = (unsigned int) offset;
        D.25550 = offset.10 + 7;
        D.25551 = (int) D.25550;
        offset = D.25551 & -8;
        D.25552 = (long int) offset;
        inst->data.op[0].const_val = D.25552;
        D.25533 = cfg->mempool;
        indir = mono_mempool_alloc (D.25533, 80);
        indir->data.op[1].const_val = 0;
        D.25583 = indir->data.op[1].const_val;
        indir->data.op[0].const_val = D.25583;
        indir->prev = 0B;
        D.25584 = indir->prev;
        indir->next = D.25584;
        indir->opcode = 0;
        indir->flags = 0;
        indir->type = 0;
        indir->dreg = -1;
        indir->sreg3 = -1;
        D.25585 = indir->sreg3;
        indir->sreg2 = D.25585;
        D.25586 = indir->sreg2;
        indir->sreg1 = D.25586;
        D.25587 = cfg->ip;
        indir->cil_code = D.25587;
        *indir = *inst;
        inst->opcode = 368;
        inst->data.op[0].src = indir;
      }
      goto <D.24453>;
      <D.24454>:
      {
        struct MonoInst * indir;

        size = 8;
        cfg->arch.bkchain_reg = 12;
        D.25528 = cfg->used_int_regs;
        D.25588 = cfg->arch.bkchain_reg;
        D.25589 = 1 << D.25588;
        D.25590 = (long unsigned int) D.25589;
        D.25591 = D.25528 | D.25590;
        cfg->used_int_regs = D.25591;
        inst->opcode = 367;
        D.25592 = mono_alloc_preg (cfg);
        D.25593 = (int) D.25592;
        inst->dreg = D.25593;
        D.25588 = cfg->arch.bkchain_reg;
        inst->sreg1 = D.25588;
        D.25594 = cinfo->args[iParm].offset;
        D.25595 = (long int) D.25594;
        inst->data.op[0].const_val = D.25595;
        D.25533 = cfg->mempool;
        indir = mono_mempool_alloc (D.25533, 80);
        indir->data.op[1].const_val = 0;
        D.25596 = indir->data.op[1].const_val;
        indir->data.op[0].const_val = D.25596;
        indir->prev = 0B;
        D.25597 = indir->prev;
        indir->next = D.25597;
        indir->opcode = 0;
        indir->flags = 0;
        indir->type = 0;
        indir->dreg = -1;
        indir->sreg3 = -1;
        D.25598 = indir->sreg3;
        indir->sreg2 = D.25598;
        D.25599 = indir->sreg2;
        indir->sreg1 = D.25599;
        D.25587 = cfg->ip;
        indir->cil_code = D.25587;
        *indir = *inst;
        inst->opcode = 368;
        inst->data.op[0].src = indir;
        goto <D.24453>;
      }
      <D.24456>:
      D.25600 = cinfo->args[iParm].size;
      size = (int) D.25600;
      if (size > 0) goto <D.25602>; else goto <D.25603>;
      <D.25602>:
      D.25604 = size + -1;
      D.25605 = D.25604 + offset;
      D.25606 = -size;
      iftmp.11 = D.25605 & D.25606;
      goto <D.25607>;
      <D.25603>:
      iftmp.11 = offset;
      <D.25607>:
      offset = iftmp.11;
      inst->opcode = 367;
      inst->sreg1 = frame_reg;
      D.25552 = (long int) offset;
      inst->data.op[0].const_val = D.25552;
      goto <D.24453>;
      <D.24457>:
      D.25608 = cinfo->args[iParm].reg;
      if (D.25608 == 15) goto <D.25609>; else goto <D.25610>;
      <D.25609>:
      cfg->arch.bkchain_reg = 12;
      D.25528 = cfg->used_int_regs;
      D.25588 = cfg->arch.bkchain_reg;
      D.25589 = 1 << D.25588;
      D.25590 = (long unsigned int) D.25589;
      D.25591 = D.25528 | D.25590;
      cfg->used_int_regs = D.25591;
      inst->opcode = 367;
      D.25588 = cfg->arch.bkchain_reg;
      inst->sreg1 = D.25588;
      D.25600 = cinfo->args[iParm].size;
      if (D.25600 <= 7) goto <D.25612>; else goto <D.25613>;
      <D.25612>:
      D.25600 = cinfo->args[iParm].size;
      D.25614 = 8 - D.25600;
      iftmp.12 = (int) D.25614;
      goto <D.25615>;
      <D.25613>:
      iftmp.12 = 0;
      <D.25615>:
      size = iftmp.12;
      D.25594 = cinfo->args[iParm].offset;
      D.25616 = D.25594 + size;
      D.25617 = (long int) D.25616;
      inst->data.op[0].const_val = D.25617;
      size = 8;
      goto <D.25618>;
      <D.25610>:
      inst->opcode = 367;
      inst->sreg1 = frame_reg;
      D.25600 = cinfo->args[iParm].size;
      if (D.25600 <= 7) goto <D.25620>; else goto <D.25621>;
      <D.25620>:
      iftmp.13 = 4;
      goto <D.25622>;
      <D.25621>:
      iftmp.13 = 8;
      <D.25622>:
      size = iftmp.13;
      if (size > 0) goto <D.25624>; else goto <D.25625>;
      <D.25624>:
      D.25604 = size + -1;
      D.25605 = D.25604 + offset;
      D.25606 = -size;
      iftmp.14 = D.25605 & D.25606;
      goto <D.25626>;
      <D.25625>:
      iftmp.14 = offset;
      <D.25626>:
      offset = iftmp.14;
      D.25532 = cfg->method;
      D.25627 = BIT_FIELD_REF <*D.25532, 64, 256>;
      D.25628 = D.25627 & 4467570830351532032;
      if (D.25628 == 864691128455135232) goto <D.25629>; else goto <D.25630>;
      <D.25629>:
      D.25552 = (long int) offset;
      inst->data.op[0].const_val = D.25552;
      goto <D.25631>;
      <D.25630>:
      D.25632 = 8 - size;
      D.25633 = D.25632 + offset;
      D.25634 = (long int) D.25633;
      inst->data.op[0].const_val = D.25634;
      <D.25631>:
      <D.25618>:
      goto <D.24453>;
      <D.24453>:
      D.25635 = MAX_EXPR <size, 8>;
      offset = D.25635 + offset;
      <D.25581>:
      curinst = curinst + 1;
      iParm = iParm + 1;
      <D.24459>:
      if (iParm < eArg) goto <D.24458>; else goto <D.24460>;
      <D.24460>:
      cfg->locals_min_stack_offset = offset;
      D.25636 = cfg->locals_start;
      curinst = (int) D.25636;
      iVar = curinst;
      goto <D.24463>;
      <D.24462>:
      D.25637 = cfg->varinfo;
      D.25638 = (long unsigned int) iVar;
      D.25639 = D.25638 * 8;
      D.25640 = D.25637 + D.25639;
      inst = *D.25640;
      D.25643 = inst->flags;
      D.25644 = (int) D.25643;
      D.25645 = D.25644 & 2;
      if (D.25645 != 0) goto <D.25641>; else goto <D.25646>;
      <D.25646>:
      D.25566 = inst->opcode;
      if (D.25566 == 366) goto <D.25641>; else goto <D.25642>;
      <D.25641>:
      // predicted unlikely by continue predictor.
      goto <D.24461>;
      <D.25642>:
      D.25649 = inst->backend.is_pinvoke;
      if (D.25649 != 0) goto <D.25650>; else goto <D.25647>;
      <D.25650>:
      D.25651 = inst->data.op[1].vtype;
      D.25652 = mono_type_is_struct (D.25651);
      if (D.25652 != 0) goto <D.25653>; else goto <D.25647>;
      <D.25653>:
      D.25651 = inst->data.op[1].vtype;
      D.25654 = mono_class_from_mono_type (D.25651);
      size = mono_class_native_size (D.25654, &align);
      goto <D.25648>;
      <D.25647>:
      D.25651 = inst->data.op[1].vtype;
      size = mono_type_size (D.25651, &align);
      <D.25648>:
      align.16 = align;
      if (align.16 > 0) goto <D.25657>; else goto <D.25658>;
      <D.25657>:
      align.16 = align;
      D.25659 = align.16 + -1;
      D.25660 = D.25659 + offset;
      align.16 = align;
      D.25661 = -align.16;
      iftmp.15 = D.25660 & D.25661;
      goto <D.25662>;
      <D.25658>:
      iftmp.15 = offset;
      <D.25662>:
      offset = iftmp.15;
      D.25552 = (long int) offset;
      inst->data.op[0].const_val = D.25552;
      inst->opcode = 367;
      inst->sreg1 = frame_reg;
      offset = offset + size;
      D.25554 = cfg->verbose_level;
      if (D.25554 > 1) goto <D.25663>; else goto <D.25664>;
      <D.25663>:
      D.25665 = inst->data.op[0].const_val;
      monoeg_g_print ("allocating local %d to %ld, size: %d\n", iVar, D.25665, size);
      <D.25664>:
      <D.24461>:
      iVar = iVar + 1;
      <D.24463>:
      D.25666 = cfg->num_varinfo;
      iVar.17 = (unsigned int) iVar;
      if (D.25666 > iVar.17) goto <D.24462>; else goto <D.24464>;
      <D.24464>:
      cfg->locals_max_stack_offset = offset;
      mono_jit_trace_calls.18 = mono_jit_trace_calls;
      if (mono_jit_trace_calls.18 != 0B) goto <D.25672>; else goto <D.25668>;
      <D.25672>:
      D.25532 = cfg->method;
      D.25673 = mono_trace_eval (D.25532);
      if (D.25673 != 0) goto <D.25669>; else goto <D.25668>;
      <D.25668>:
      D.25674 = cfg->prof_options;
      D.25675 = D.25674 & 4096;
      if (D.25675 != 0) goto <D.25669>; else goto <D.25670>;
      <D.25669>:
      offset.10 = (unsigned int) offset;
      D.25676 = offset.10 + 72;
      offset = (int) D.25676;
      <D.25670>:
      D.25532 = cfg->method;
      D.25627 = BIT_FIELD_REF <*D.25532, 64, 256>;
      D.25677 = D.25627 & 36028797018963968;
      if (D.25677 != 0) goto <D.25678>; else goto <D.25679>;
      <D.25678>:
      offset.10 = (unsigned int) offset;
      D.25680 = offset.10 + 344;
      offset = (int) D.25680;
      <D.25679>:
      D.25681 = offset + 7;
      D.25682 = D.25681 & -8;
      cfg->stack_offset = D.25682;
      iParm = sArg;
      goto <D.24466>;
      <D.24465>:
      D.25565 = cfg->args;
      D.25683 = (long unsigned int) iParm;
      D.25684 = D.25683 * 8;
      D.25685 = D.25565 + D.25684;
      inst = *D.25685;
      D.25566 = inst->opcode;
      if (D.25566 == 845) goto <D.25686>; else goto <D.25687>;
      <D.25686>:
      inst->opcode = 367;
      D.25665 = inst->data.op[0].const_val;
      D.25688 = cfg->stack_offset;
      D.25689 = (long int) D.25688;
      D.25690 = D.25665 + D.25689;
      inst->data.op[0].const_val = D.25690;
      <D.25687>:
      iParm = iParm + 1;
      <D.24466>:
      if (iParm < eArg) goto <D.24465>; else goto <D.24467>;
      <D.24467>:
    }
  finally
    {
      align = {CLOBBER};
    }
}


get_call_info (struct MonoCompile * cfg, struct MonoMemPool * mp, struct MonoMethodSignature * sig)
{
  <unnamed-unsigned:1> D.25692;
  int D.25693;
  short unsigned int D.25694;
  int D.25695;
  <unnamed-unsigned:1> D.25696;
  struct MonoGenericSharingContext * iftmp.19;
  long unsigned int D.25703;
  unsigned int D.25704;
  unsigned int D.25705;
  unsigned int D.25706;
  long unsigned int D.25708;
  long unsigned int D.25709;
  struct MonoType * D.25710;
  unsigned char D.25711;
  unsigned int D.25712;
  unsigned int D.25713;
  int D.25714;
  long unsigned int D.25717;
  long unsigned int D.25718;
  struct MonoType * D.25721;
  unsigned char D.25722;
  struct MonoType * D.25723;
  int D.25724;
  int D.25725;
  short unsigned int D.25726;
  unsigned char D.25727;
  int D.25728;
  unsigned int D.25732;
  long unsigned int D.25735;
  long unsigned int D.25736;
  struct MonoType * D.25739;
  struct MonoType * D.25740;
  int D.25741;
  struct ArgInfo[1] * D.25744;
  struct ArgInfo * D.25745;
  int D.25747;
  struct ArgInfo * D.25748;
  unsigned int gr.20;
  unsigned char D.25750;
  unsigned int gr.21;
  long unsigned int D.25756;
  struct ArgInfo * D.25759;
  long unsigned int D.25760;
  short int D.25763;
  unsigned int D.25764;
  struct MonoType * D.25767;
  long unsigned int D.25768;
  long unsigned int D.25769;
  unsigned char D.25772;
  int simpleType.22;
  int D.25774;
  long unsigned int D.25777;
  int D.25780;
  int D.25782;
  unsigned int D.25785;
  unsigned int D.25788;
  struct MonoClassField * D.25791;
  struct MonoType * D.25792;
  unsigned char D.25793;
  unsigned int D.25802;
  unsigned int D.25803;
  int size.23;
  unsigned int size.24;
  unsigned int D.25806;
  int D.25813;
  unsigned int D.25818;
  int D.25819;
  unsigned int D.25820;
  guint iftmp.25;
  unsigned int D.25824;
  unsigned int D.25825;
  unsigned int D.25826;
  unsigned int D.25828;
  int gr.26;
  unsigned int D.25830;
  unsigned int D.25831;
  unsigned int D.25832;
  unsigned int D.25833;
  unsigned int D.25834;
  unsigned int D.25835;
  unsigned int D.25836;
  struct CallInfo * D.25837;
  guint i;
  guint fr;
  guint gr;
  guint size;
  guint pstart;
  int nParm;
  struct MonoType * ret_type;
  guint32 simpleType;
  guint32 align;
  gboolean is_pinvoke;
  struct CallInfo * cinfo;
  struct size_data * sz;
  struct MonoGenericSharingContext * gsctx;
  void enum_retvalue = <<< error >>>;

  try
    {
      D.25692 = sig->hasthis;
      D.25693 = (int) D.25692;
      D.25694 = sig->param_count;
      D.25695 = (int) D.25694;
      nParm = D.25693 + D.25695;
      D.25696 = sig->pinvoke;
      is_pinvoke = (gboolean) D.25696;
      if (cfg != 0B) goto <D.25698>; else goto <D.25699>;
      <D.25698>:
      iftmp.19 = cfg->generic_sharing_context;
      goto <D.25700>;
      <D.25699>:
      iftmp.19 = 0B;
      <D.25700>:
      gsctx = iftmp.19;
      if (mp != 0B) goto <D.25701>; else goto <D.25702>;
      <D.25701>:
      D.25703 = (long unsigned int) nParm;
      D.25704 = (unsigned int) D.25703;
      D.25705 = D.25704 * 24;
      D.25706 = D.25705 + 120;
      cinfo = mono_mempool_alloc0 (mp, D.25706);
      goto <D.25707>;
      <D.25702>:
      D.25703 = (long unsigned int) nParm;
      D.25708 = D.25703 * 24;
      D.25709 = D.25708 + 120;
      cinfo = monoeg_malloc0 (D.25709);
      <D.25707>:
      fr = 0;
      gr = 2;
      nParm = 0;
      cinfo->struct_ret = 0;
      sz = &cinfo->sz;
      sz->retStruct = 0;
      sz->offset = 0;
      sz->offStruct = 160;
      sz->stack_size = 160;
      sz->code_size = 0;
      sz->parm_size = 0;
      sz->local_size = 0;
      align = 0;
      size = 0;
      D.25710 = sig->ret;
      ret_type = mini_type_get_underlying_type (gsctx, D.25710);
      ret_type = mini_get_basic_type_from_generic (gsctx, ret_type);
      D.25711 = ret_type->type;
      simpleType = (guint32) D.25711;
      enum_retvalue:
      switch (simpleType) <default: <D.24374>, case 1: <D.24373>, case 2: <D.24347>, case 3: <D.24352>, case 4: <D.24348>, case 5: <D.24349>, case 6: <D.24350>, case 7: <D.24351>, case 8: <D.24353>, case 9: <D.24354>, case 10: <D.24367>, case 11: <D.24368>, case 12: <D.24365>, case 13: <D.24366>, case 14: <D.24363>, case 15: <D.24361>, case 17: <D.24370>, case 18: <D.24357>, case 20: <D.24360>, case 21: <D.24369>, case 22: <D.24372>, case 24: <D.24355>, case 25: <D.24356>, case 27: <D.24362>, case 28: <D.24358>, case 29: <D.24359>>
      <D.24347>:
      <D.24348>:
      <D.24349>:
      <D.24350>:
      <D.24351>:
      <D.24352>:
      <D.24353>:
      <D.24354>:
      <D.24355>:
      <D.24356>:
      <D.24357>:
      <D.24358>:
      <D.24359>:
      <D.24360>:
      <D.24361>:
      <D.24362>:
      <D.24363>:
      cinfo->ret.reg = 2;
      D.25712 = sz->code_size;
      D.25713 = D.25712 + 4;
      sz->code_size = D.25713;
      goto <D.24364>;
      <D.24365>:
      <D.24366>:
      cinfo->ret.reg = 0;
      D.25712 = sz->code_size;
      D.25713 = D.25712 + 4;
      sz->code_size = D.25713;
      goto <D.24364>;
      <D.24367>:
      <D.24368>:
      cinfo->ret.reg = 2;
      D.25712 = sz->code_size;
      D.25713 = D.25712 + 4;
      sz->code_size = D.25713;
      goto <D.24364>;
      <D.24369>:
      D.25710 = sig->ret;
      D.25714 = mono_type_generic_inst_is_valuetype (D.25710);
      if (D.25714 == 0) goto <D.25715>; else goto <D.25716>;
      <D.25715>:
      cinfo->ret.reg = 2;
      D.25712 = sz->code_size;
      D.25713 = D.25712 + 4;
      sz->code_size = D.25713;
      goto <D.24364>;
      <D.25716>:
      <D.24370>:
      {
        struct MonoClass * klass;

        D.25710 = sig->ret;
        klass = mono_class_from_mono_type (D.25710);
        D.25717 = BIT_FIELD_REF <*klass, 64, 256>;
        D.25718 = D.25717 & 576460752303423488;
        if (D.25718 != 0) goto <D.25719>; else goto <D.25720>;
        <D.25719>:
        D.25721 = mono_class_enum_basetype (klass);
        D.25722 = D.25721->type;
        simpleType = (guint32) D.25722;
        goto enum_retvalue;
        <D.25720>:
        D.25723 = &klass->byval_arg;
        D.25696 = sig->pinvoke;
        D.25724 = (int) D.25696;
        D.25725 = mini_type_stack_size_full (gsctx, D.25723, 0B, D.25724);
        size = (guint) D.25725;
        cinfo->struct_ret = 1;
        cinfo->ret.size = size;
        D.25726 = (short unsigned int) size;
        cinfo->ret.vtsize = D.25726;
        goto <D.24364>;
      }
      <D.24372>:
      size = 24;
      cinfo->struct_ret = 1;
      cinfo->ret.size = size;
      D.25726 = (short unsigned int) size;
      cinfo->ret.vtsize = D.25726;
      goto <D.24364>;
      <D.24373>:
      goto <D.24364>;
      <D.24374>:
      D.25710 = sig->ret;
      D.25727 = D.25710->type;
      D.25728 = (int) D.25727;
      monoeg_g_log (0B, 4, "Can\'t handle as return value 0x%x", D.25728);
      <D.24375>:
      goto <D.24375>;
      <D.24364>:
      pstart = 0;
      D.25732 = cinfo->struct_ret;
      if (D.25732 != 0) goto <D.25733>; else goto <D.25729>;
      <D.25733>:
      if (is_pinvoke == 0) goto <D.25734>; else goto <D.25729>;
      <D.25734>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25736 = D.25735 & 512;
      if (D.25736 != 0) goto <D.25730>; else goto <D.25737>;
      <D.25737>:
      D.25694 = sig->param_count;
      if (D.25694 != 0) goto <D.25738>; else goto <D.25729>;
      <D.25738>:
      D.25739 = sig->params[0];
      D.25740 = mini_type_get_underlying_type (gsctx, D.25739);
      D.25741 = mono_type_is_reference (D.25740);
      if (D.25741 != 0) goto <D.25730>; else goto <D.25729>;
      <D.25730>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25736 = D.25735 & 512;
      if (D.25736 != 0) goto <D.25742>; else goto <D.25743>;
      <D.25742>:
      cinfo->args[nParm].size = 8;
      D.25744 = &cinfo->args;
      D.25703 = (long unsigned int) nParm;
      D.25708 = D.25703 * 24;
      D.25745 = D.25744 + D.25708;
      add_general (&gr, sz, D.25745);
      goto <D.25746>;
      <D.25743>:
      cinfo->args[nParm].size = 8;
      D.25692 = sig->hasthis;
      D.25693 = (int) D.25692;
      D.25747 = D.25693 + nParm;
      D.25748 = &cinfo->args[D.25747];
      add_general (&gr, sz, D.25748);
      pstart = 1;
      <D.25746>:
      nParm = nParm + 1;
      cinfo->vret_arg_index = 1;
      gr.20 = gr;
      D.25750 = (unsigned char) gr.20;
      cinfo->ret.reg = D.25750;
      gr.20 = gr;
      gr.21 = gr.20 + 1;
      gr = gr.21;
      goto <D.25731>;
      <D.25729>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25736 = D.25735 & 512;
      if (D.25736 != 0) goto <D.25752>; else goto <D.25753>;
      <D.25752>:
      cinfo->args[nParm].size = 8;
      D.25744 = &cinfo->args;
      D.25703 = (long unsigned int) nParm;
      D.25708 = D.25703 * 24;
      D.25745 = D.25744 + D.25708;
      add_general (&gr, sz, D.25745);
      nParm = nParm + 1;
      <D.25753>:
      D.25732 = cinfo->struct_ret;
      if (D.25732 != 0) goto <D.25754>; else goto <D.25755>;
      <D.25754>:
      gr.20 = gr;
      D.25750 = (unsigned char) gr.20;
      cinfo->ret.reg = D.25750;
      gr.20 = gr;
      gr.21 = gr.20 + 1;
      gr = gr.21;
      <D.25755>:
      <D.25731>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25756 = D.25735 & 18446462598732905472;
      if (D.25756 == 5120) goto <D.25757>; else goto <D.25758>;
      <D.25757>:
      gr = 7;
      fr = 7;
      D.25759 = &cinfo->sigCookie;
      add_general (&gr, sz, D.25759);
      <D.25758>:
      i = pstart;
      goto <D.24423>;
      <D.24422>:
      {
        struct MonoType * ptype;

        D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
        D.25760 = D.25735 & 64512;
        if (D.25760 == 5120) goto <D.25761>; else goto <D.25762>;
        <D.25761>:
        D.25763 = sig->sentinelpos;
        D.25764 = (unsigned int) D.25763;
        if (D.25764 == i) goto <D.25765>; else goto <D.25766>;
        <D.25765>:
        gr = 7;
        fr = 7;
        D.25759 = &cinfo->sigCookie;
        add_general (&gr, sz, D.25759);
        <D.25766>:
        <D.25762>:
        D.25767 = sig->params[i];
        D.25768 = BIT_FIELD_REF <*D.25767, 64, 64>;
        D.25769 = D.25768 & 8589934592;
        if (D.25769 != 0) goto <D.25770>; else goto <D.25771>;
        <D.25770>:
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        cinfo->args[nParm].size = 8;
        nParm = nParm + 1;
        // predicted unlikely by continue predictor.
        goto <D.24377>;
        <D.25771>:
        D.25767 = sig->params[i];
        ptype = mini_type_get_underlying_type (gsctx, D.25767);
        D.25772 = ptype->type;
        simpleType = (guint32) D.25772;
        simpleType.22 = (int) simpleType;
        cinfo->args[nParm].type = simpleType.22;
        switch (simpleType) <default: <D.24420>, case 2: <D.24378>, case 3: <D.24384>, case 4: <D.24379>, case 5: <D.24380>, case 6: <D.24382>, case 7: <D.24383>, case 8: <D.24385>, case 9: <D.24386>, case 10: <D.24396>, case 11: <D.24397>, case 12: <D.24398>, case 13: <D.24399>, case 14: <D.24393>, case 15: <D.24389>, case 17: <D.24401>, case 18: <D.24391>, case 20: <D.24395>, case 21: <D.24400>, case 22: <D.24411>, case 24: <D.24387>, case 25: <D.24388>, case 27: <D.24390>, case 28: <D.24392>, case 29: <D.24394>>
        <D.24378>:
        <D.24379>:
        <D.24380>:
        cinfo->args[nParm].size = 1;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24382>:
        <D.24383>:
        <D.24384>:
        cinfo->args[nParm].size = 2;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24385>:
        <D.24386>:
        cinfo->args[nParm].size = 4;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24387>:
        <D.24388>:
        <D.24389>:
        <D.24390>:
        <D.24391>:
        <D.24392>:
        <D.24393>:
        <D.24394>:
        <D.24395>:
        cinfo->args[nParm].size = 8;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24396>:
        <D.24397>:
        cinfo->args[nParm].size = 8;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24398>:
        cinfo->args[nParm].size = 4;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_float (&fr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24399>:
        cinfo->args[nParm].size = 8;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_float (&fr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.24400>:
        D.25774 = mono_type_generic_inst_is_valuetype (ptype);
        if (D.25774 == 0) goto <D.25775>; else goto <D.25776>;
        <D.25775>:
        cinfo->args[nParm].size = 8;
        D.25744 = &cinfo->args;
        D.25703 = (long unsigned int) nParm;
        D.25708 = D.25703 * 24;
        D.25745 = D.25744 + D.25708;
        add_general (&gr, sz, D.25745);
        nParm = nParm + 1;
        goto <D.24381>;
        <D.25776>:
        <D.24401>:
        {
          struct MonoMarshalType * info;
          struct MonoClass * klass;

          klass = mono_class_from_mono_type (ptype);
          D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
          D.25777 = D.25735 & 128;
          if (D.25777 != 0) goto <D.25778>; else goto <D.25779>;
          <D.25778>:
          D.25780 = mono_class_native_size (klass, 0B);
          size = (guint) D.25780;
          goto <D.25781>;
          <D.25779>:
          D.25782 = mono_class_value_size (klass, 0B);
          size = (guint) D.25782;
          <D.25781>:
          if (simpleType != 21) goto <D.25783>; else goto <D.25784>;
          <D.25783>:
          info = mono_marshal_load_type_info (klass);
          D.25785 = info->native_size;
          if (D.25785 == 4) goto <D.25786>; else goto <D.25787>;
          <D.25786>:
          D.25788 = info->num_fields;
          if (D.25788 == 1) goto <D.25789>; else goto <D.25790>;
          <D.25789>:
          D.25791 = info->fields[0].field;
          D.25792 = D.25791->type;
          D.25793 = D.25792->type;
          if (D.25793 == 12) goto <D.25794>; else goto <D.25795>;
          <D.25794>:
          cinfo->args[nParm].size = 4;
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          add_float (&fr, sz, D.25745);
          nParm = nParm + 1;
          goto <D.24381>;
          <D.25795>:
          <D.25790>:
          <D.25787>:
          D.25785 = info->native_size;
          if (D.25785 == 8) goto <D.25796>; else goto <D.25797>;
          <D.25796>:
          D.25788 = info->num_fields;
          if (D.25788 == 1) goto <D.25798>; else goto <D.25799>;
          <D.25798>:
          D.25791 = info->fields[0].field;
          D.25792 = D.25791->type;
          D.25793 = D.25792->type;
          if (D.25793 == 13) goto <D.25800>; else goto <D.25801>;
          <D.25800>:
          cinfo->args[nParm].size = 8;
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          add_float (&fr, sz, D.25745);
          nParm = nParm + 1;
          goto <D.24381>;
          <D.25801>:
          <D.25799>:
          <D.25797>:
          <D.25784>:
          cinfo->args[nParm].vtsize = 0;
          cinfo->args[nParm].size = 0;
          switch (size) <default: <D.24410>, case 0: <D.24404>, case 1: <D.24405>, case 2: <D.24406>, case 4: <D.24407>, case 8: <D.24408>>
          <D.24404>:
          <D.24405>:
          <D.24406>:
          <D.24407>:
          <D.24408>:
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          add_general (&gr, sz, D.25745);
          cinfo->args[nParm].size = size;
          cinfo->args[nParm].regtype = 4;
          nParm = nParm + 1;
          D.25802 = sz->local_size;
          D.25803 = D.25802 + 8;
          sz->local_size = D.25803;
          goto <D.24409>;
          <D.24410>:
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          size.23 = (int) size;
          add_stackParm (&gr, sz, D.25745, size.23);
          nParm = nParm + 1;
          <D.24409>:
        }
        goto <D.24381>;
        <D.24411>:
        {
          int size;

          size = 24;
          cinfo->args[nParm].vtsize = 0;
          cinfo->args[nParm].size = 0;
          switch (size) <default: <D.24419>, case 0: <D.24413>, case 1: <D.24414>, case 2: <D.24415>, case 4: <D.24416>, case 8: <D.24417>>
          <D.24413>:
          <D.24414>:
          <D.24415>:
          <D.24416>:
          <D.24417>:
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          add_general (&gr, sz, D.25745);
          size.24 = (unsigned int) size;
          cinfo->args[nParm].size = size.24;
          cinfo->args[nParm].regtype = 4;
          nParm = nParm + 1;
          D.25802 = sz->local_size;
          D.25803 = D.25802 + 8;
          sz->local_size = D.25803;
          goto <D.24418>;
          <D.24419>:
          D.25744 = &cinfo->args;
          D.25703 = (long unsigned int) nParm;
          D.25708 = D.25703 * 24;
          D.25745 = D.25744 + D.25708;
          add_stackParm (&gr, sz, D.25745, size);
          nParm = nParm + 1;
          <D.24418>:
        }
        goto <D.24381>;
        <D.24420>:
        monoeg_g_log (0B, 4, "Can\'t trampoline 0x%x", ptype);
        <D.24421>:
        goto <D.24421>;
        <D.24381>:
      }
      <D.24377>:
      i = i + 1;
      <D.24423>:
      D.25694 = sig->param_count;
      D.25806 = (unsigned int) D.25694;
      if (D.25806 > i) goto <D.24422>; else goto <D.24424>;
      <D.24424>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25760 = D.25735 & 64512;
      if (D.25760 == 5120) goto <D.25807>; else goto <D.25808>;
      <D.25807>:
      if (nParm > 0) goto <D.25809>; else goto <D.25810>;
      <D.25809>:
      D.25735 = BIT_FIELD_REF <*sig, 64, 64>;
      D.25777 = D.25735 & 128;
      if (D.25777 == 0) goto <D.25811>; else goto <D.25812>;
      <D.25811>:
      D.25694 = sig->param_count;
      D.25695 = (int) D.25694;
      D.25763 = sig->sentinelpos;
      D.25813 = (int) D.25763;
      if (D.25695 == D.25813) goto <D.25814>; else goto <D.25815>;
      <D.25814>:
      gr = 7;
      fr = 7;
      D.25759 = &cinfo->sigCookie;
      add_general (&gr, sz, D.25759);
      <D.25815>:
      <D.25812>:
      <D.25810>:
      <D.25808>:
      D.25732 = cinfo->struct_ret;
      if (D.25732 != 0) goto <D.25816>; else goto <D.25817>;
      <D.25816>:
      D.25818 = sz->stack_size;
      D.25819 = (int) D.25818;
      cinfo->ret.offset = D.25819;
      D.25820 = cinfo->ret.size;
      switch (D.25820) <default: <D.24431>, case 0: <D.24425>, case 1: <D.24426>, case 2: <D.24427>, case 4: <D.24428>, case 8: <D.24429>>
      <D.24425>:
      <D.24426>:
      <D.24427>:
      <D.24428>:
      <D.24429>:
      goto <D.24430>;
      <D.24431>:
      D.25818 = sz->stack_size;
      if (align != 0) goto <D.25822>; else goto <D.25823>;
      <D.25822>:
      D.25820 = cinfo->ret.size;
      D.25824 = D.25820 + align;
      D.25825 = D.25824 + 4294967295;
      D.25826 = -align;
      iftmp.25 = D.25825 & D.25826;
      goto <D.25827>;
      <D.25823>:
      iftmp.25 = cinfo->ret.size;
      <D.25827>:
      D.25828 = D.25818 + iftmp.25;
      sz->stack_size = D.25828;
      <D.24430>:
      <D.25817>:
      gr.20 = gr;
      gr.26 = (int) gr.20;
      cinfo->lastgr = gr.26;
      D.25818 = sz->stack_size;
      D.25802 = sz->local_size;
      D.25830 = D.25818 + D.25802;
      D.25831 = sz->parm_size;
      D.25832 = D.25830 + D.25831;
      D.25833 = sz->offset;
      D.25834 = D.25832 + D.25833;
      sz->stack_size = D.25834;
      D.25818 = sz->stack_size;
      D.25835 = D.25818 + 7;
      D.25836 = D.25835 & 4294967288;
      sz->stack_size = D.25836;
      D.25837 = cinfo;
      return D.25837;
    }
  finally
    {
      fr = {CLOBBER};
      gr = {CLOBBER};
    }
}


add_float (guint * fr, struct size_data * sz, struct ArgInfo * ainfo)
{
  unsigned int D.25842;
  unsigned char D.25845;
  unsigned int D.25846;
  unsigned int D.25847;
  unsigned int D.25848;
  unsigned int D.25850;
  int D.25851;
  unsigned int D.25852;
  unsigned int D.25853;
  unsigned int D.25854;
  unsigned int D.25855;
  unsigned int D.25856;

  D.25842 = *fr;
  if (D.25842 <= 6) goto <D.25843>; else goto <D.25844>;
  <D.25843>:
  ainfo->regtype = 2;
  D.25842 = *fr;
  D.25845 = (unsigned char) D.25842;
  ainfo->reg = D.25845;
  D.25846 = sz->code_size;
  D.25847 = D.25846 + 4;
  sz->code_size = D.25847;
  D.25842 = *fr;
  D.25848 = D.25842 + 2;
  *fr = D.25848;
  goto <D.25849>;
  <D.25844>:
  D.25850 = sz->stack_size;
  D.25851 = (int) D.25850;
  ainfo->offset = D.25851;
  ainfo->reg = 15;
  ainfo->regtype = 1;
  D.25846 = sz->code_size;
  D.25847 = D.25846 + 4;
  sz->code_size = D.25847;
  D.25850 = sz->stack_size;
  D.25852 = D.25850 + 8;
  sz->stack_size = D.25852;
  D.25853 = sz->local_size;
  D.25854 = D.25853 + 8;
  sz->local_size = D.25854;
  D.25855 = sz->offStruct;
  D.25856 = D.25855 + 8;
  sz->offStruct = D.25856;
  <D.25849>:
}


add_stackParm (guint * gr, struct size_data * sz, struct ArgInfo * ainfo, gint size)
{
  unsigned int D.25857;
  unsigned int D.25860;
  unsigned int D.25861;
  unsigned int D.25862;
  int D.25863;
  unsigned int D.25864;
  unsigned int D.25865;
  unsigned int D.25866;
  unsigned int D.25867;
  unsigned int D.25868;
  unsigned char D.25870;
  unsigned int D.25871;
  unsigned int D.25872;
  int D.25873;
  unsigned int size.27;
  unsigned int D.25875;
  unsigned int D.25876;
  unsigned int D.25877;
  unsigned int size.28;
  short unsigned int D.25879;
  unsigned int D.25880;

  D.25857 = *gr;
  if (D.25857 > 6) goto <D.25858>; else goto <D.25859>;
  <D.25858>:
  D.25860 = sz->stack_size;
  D.25861 = D.25860 + 7;
  D.25862 = D.25861 & 4294967288;
  sz->stack_size = D.25862;
  ainfo->reg = 15;
  D.25860 = sz->stack_size;
  D.25863 = (int) D.25860;
  ainfo->offset = D.25863;
  ainfo->regtype = 7;
  D.25860 = sz->stack_size;
  D.25864 = D.25860 + 8;
  sz->stack_size = D.25864;
  D.25865 = sz->parm_size;
  D.25866 = D.25865 + 8;
  sz->parm_size = D.25866;
  D.25867 = sz->offStruct;
  D.25868 = D.25867 + 8;
  sz->offStruct = D.25868;
  goto <D.25869>;
  <D.25859>:
  D.25857 = *gr;
  D.25870 = (unsigned char) D.25857;
  ainfo->reg = D.25870;
  D.25860 = sz->stack_size;
  D.25863 = (int) D.25860;
  ainfo->offset = D.25863;
  ainfo->regtype = 6;
  <D.25869>:
  D.25857 = *gr;
  D.25871 = D.25857 + 1;
  *gr = D.25871;
  D.25872 = sz->offset;
  D.25873 = (int) D.25872;
  ainfo->offparm = D.25873;
  D.25872 = sz->offset;
  size.27 = (unsigned int) size;
  D.25875 = D.25872 + size.27;
  D.25876 = D.25875 + 7;
  D.25877 = D.25876 & 4294967288;
  sz->offset = D.25877;
  size.28 = (unsigned int) size;
  ainfo->size = size.28;
  D.25879 = (short unsigned int) size;
  ainfo->vtsize = D.25879;
  D.25865 = sz->parm_size;
  size.27 = (unsigned int) size;
  D.25880 = D.25865 + size.27;
  sz->parm_size = D.25880;
}


add_general (guint * gr, struct size_data * sz, struct ArgInfo * ainfo)
{
  unsigned int D.25881;
  unsigned int D.25884;
  unsigned int D.25885;
  unsigned int D.25886;
  int D.25887;
  unsigned int D.25888;
  unsigned int D.25889;
  unsigned int D.25890;
  unsigned int D.25891;
  unsigned int D.25892;
  unsigned int D.25893;
  unsigned int D.25894;
  unsigned char D.25896;
  unsigned int D.25897;
  unsigned int D.25898;

  D.25881 = *gr;
  if (D.25881 > 6) goto <D.25882>; else goto <D.25883>;
  <D.25882>:
  D.25884 = sz->stack_size;
  D.25885 = D.25884 + 7;
  D.25886 = D.25885 & 4294967288;
  sz->stack_size = D.25886;
  D.25884 = sz->stack_size;
  D.25887 = (int) D.25884;
  ainfo->offset = D.25887;
  ainfo->reg = 15;
  ainfo->regtype = 1;
  D.25884 = sz->stack_size;
  D.25888 = D.25884 + 8;
  sz->stack_size = D.25888;
  D.25889 = sz->local_size;
  D.25890 = D.25889 + 8;
  sz->local_size = D.25890;
  D.25891 = sz->offStruct;
  D.25892 = D.25891 + 8;
  sz->offStruct = D.25892;
  D.25893 = sz->code_size;
  D.25894 = D.25893 + 12;
  sz->code_size = D.25894;
  goto <D.25895>;
  <D.25883>:
  D.25881 = *gr;
  D.25896 = (unsigned char) D.25881;
  ainfo->reg = D.25896;
  D.25893 = sz->code_size;
  D.25897 = D.25893 + 8;
  sz->code_size = D.25897;
  <D.25895>:
  D.25881 = *gr;
  D.25898 = D.25881 + 1;
  *gr = D.25898;
}


__attribute__((__artificial__, __gnu_inline__, __always_inline__))
printf (const char * restrict __fmt)
{
  int D.25899;

  D.25899 = __printf_chk (1, __fmt, __builtin_va_arg_pack ());
  return D.25899;
}


__attribute__((visibility ("hidden")))
mono_arch_create_vars (struct MonoCompile * cfg)
{
  struct MonoMethod * D.25901;
  struct MonoMemPool * D.25902;
  unsigned int D.25903;
  struct MonoClass * D.25906;
  struct MonoType * D.25907;
  struct MonoInst * D.25908;
  unsigned int D.25909;
  _Bool D.25910;
  long int D.25911;
  long int D.25912;
  struct MonoInst * D.25915;
  struct MonoMethodSignature * sig;
  struct CallInfo * cinfo;

  D.25901 = cfg->method;
  sig = mono_method_signature (D.25901);
  D.25902 = cfg->mempool;
  cinfo = get_call_info (cfg, D.25902, sig);
  D.25903 = cinfo->struct_ret;
  if (D.25903 != 0) goto <D.25904>; else goto <D.25905>;
  <D.25904>:
  D.25906 = mono_defaults.int_class;
  D.25907 = &D.25906->byval_arg;
  D.25908 = mono_compile_create_var (cfg, D.25907, 330);
  cfg->vret_addr = D.25908;
  D.25909 = cfg->verbose_level;
  D.25910 = D.25909 > 1;
  D.25911 = (long int) D.25910;
  D.25912 = __builtin_expect (D.25911, 0);
  if (D.25912 != 0) goto <D.25913>; else goto <D.25914>;
  <D.25913>:
  printf ("vret_addr = ");
  D.25915 = cfg->vret_addr;
  mono_print_ins (D.25915);
  <D.25914>:
  <D.25905>:
}


__attribute__((visibility ("hidden")))
mono_arch_emit_call (struct MonoCompile * cfg, struct MonoCallInst * call)
{
  short unsigned int D.25916;
  int D.25917;
  <unnamed-unsigned:1> D.25918;
  int D.25919;
  unsigned int D.25920;
  struct MonoMemPool * D.25923;
  unsigned int D.25924;
  unsigned int D.25925;
  unsigned int D.25926;
  unsigned int D.25927;
  unsigned int D.25928;
  unsigned int D.25929;
  unsigned int D.25930;
  unsigned int D.25931;
  unsigned int stackSize.29;
  unsigned int D.25933;
  int iftmp.30;
  unsigned int D.25935;
  unsigned int D.25938;
  unsigned int D.25940;
  int D.25941;
  int D.25942;
  unsigned int D.25943;
  unsigned int D.25944;
  unsigned int D.25945;
  unsigned int D.25946;
  long int D.25949;
  struct MonoInst * D.25950;
  int D.25951;
  int D.25952;
  const unsigned char * D.25953;
  struct MonoInst * D.25954;
  int D.25955;
  unsigned int D.25956;
  int D.25957;
  struct MonoBasicBlock * D.25958;
  struct MonoInst * D.25959;
  int D.25963;
  unsigned char D.25964;
  int D.25965;
  unsigned int D.25969;
  long unsigned int D.25971;
  long unsigned int D.25972;
  struct ArgInfo[1] * D.25973;
  long unsigned int D.25974;
  long unsigned int D.25975;
  int D.25978;
  struct MonoClass * D.25980;
  struct MonoGenericSharingContext * D.25981;
  struct MonoInst * * D.25982;
  long unsigned int D.25983;
  struct MonoInst * * D.25984;
  long unsigned int D.25985;
  long unsigned int D.25986;
  short int D.25989;
  int D.25990;
  <unnamed type> D.25993;
  unsigned char D.25994;
  int D.25995;
  int D.25996;
  unsigned int D.26000;
  struct MonoType * D.26003;
  unsigned char D.26004;
  long unsigned int D.26008;
  struct MonoClass * D.26011;
  struct MonoType * D.26012;
  int D.26013;
  int D.26015;
  _Bool D.26016;
  long int D.26017;
  long int D.26018;
  int D.26021;
  unsigned int D.26022;
  unsigned int D.26023;
  unsigned int D.26024;
  int D.26025;
  int D.26026;
  int D.26027;
  void * D.26028;
  void * D.26029;
  unsigned int D.26035;
  long int D.26036;
  struct MonoInst * D.26037;
  int D.26038;
  int D.26039;
  long int D.26040;
  unsigned int D.26047;
  long int D.26048;
  struct MonoInst * D.26049;
  int D.26050;
  int D.26051;
  long int D.26055;
  struct MonoInst * D.26056;
  int D.26057;
  int D.26058;
  int D.26059;
  int D.26060;
  long int D.26061;
  long unsigned int D.26065;
  long unsigned int D.26066;
  long int D.26069;
  struct MonoInst * D.26070;
  int D.26071;
  int D.26072;
  long unsigned int D.26076;
  long unsigned int D.26077;
  long int D.26080;
  struct MonoInst * D.26081;
  int D.26082;
  int D.26083;
  int D.26084;
  long int D.26085;
  long int D.26092;
  struct MonoInst * D.26093;
  int D.26094;
  int D.26095;
  struct MonoInst * in;
  struct MonoMethodSignature * sig;
  struct MonoInst * ins;
  int i;
  int n;
  int lParamArea;
  struct CallInfo * cinfo;
  struct ArgInfo * ainfo;
  int stackSize;
  struct MonoMethodHeader * header;
  int frmReg;

  ainfo = 0B;
  sig = call->signature;
  D.25916 = sig->param_count;
  D.25917 = (int) D.25916;
  D.25918 = sig->hasthis;
  D.25919 = (int) D.25918;
  n = D.25917 + D.25919;
  D.25920 = cfg->verbose_level;
  if (D.25920 > 1) goto <D.25921>; else goto <D.25922>;
  <D.25921>:
  monoeg_g_print ("Call requires: %d parameters\n", n);
  <D.25922>:
  D.25923 = cfg->mempool;
  cinfo = get_call_info (cfg, D.25923, sig);
  D.25924 = cinfo->sz.stack_size;
  D.25925 = cinfo->sz.local_size;
  D.25926 = D.25924 + D.25925;
  D.25927 = cinfo->sz.parm_size;
  D.25928 = D.25926 + D.25927;
  D.25929 = cinfo->sz.offset;
  D.25930 = D.25928 + D.25929;
  stackSize = (int) D.25930;
  D.25931 = call->stack_usage;
  stackSize.29 = (unsigned int) stackSize;
  D.25933 = MAX_EXPR <D.25931, stackSize.29>;
  call->stack_usage = D.25933;
  D.25931 = call->stack_usage;
  D.25927 = cinfo->sz.parm_size;
  D.25935 = D.25931 - D.25927;
  if (D.25935 != 160) goto <D.25936>; else goto <D.25937>;
  <D.25936>:
  D.25931 = call->stack_usage;
  D.25927 = cinfo->sz.parm_size;
  D.25935 = D.25931 - D.25927;
  D.25938 = D.25935 + 4294967136;
  iftmp.30 = (int) D.25938;
  goto <D.25939>;
  <D.25937>:
  iftmp.30 = 0;
  <D.25939>:
  lParamArea = iftmp.30;
  D.25940 = cfg->param_area;
  D.25941 = (int) D.25940;
  D.25942 = MAX_EXPR <D.25941, lParamArea>;
  D.25943 = (unsigned int) D.25942;
  cfg->param_area = D.25943;
  D.25944 = cfg->flags;
  D.25945 = D.25944 | 2;
  cfg->flags = D.25945;
  D.25946 = cinfo->struct_ret;
  if (D.25946 != 0) goto <D.25947>; else goto <D.25948>;
  <D.25947>:
  D.25923 = cfg->mempool;
  ins = mono_mempool_alloc (D.25923, 80);
  ins->data.op[1].const_val = 0;
  D.25949 = ins->data.op[1].const_val;
  ins->data.op[0].const_val = D.25949;
  ins->prev = 0B;
  D.25950 = ins->prev;
  ins->next = D.25950;
  ins->opcode = 424;
  ins->flags = 0;
  ins->type = 0;
  ins->dreg = -1;
  ins->sreg3 = -1;
  D.25951 = ins->sreg3;
  ins->sreg2 = D.25951;
  D.25952 = ins->sreg2;
  ins->sreg1 = D.25952;
  D.25953 = cfg->ip;
  ins->cil_code = D.25953;
  D.25954 = call->vret_var;
  D.25955 = D.25954->dreg;
  ins->sreg1 = D.25955;
  D.25956 = mono_alloc_preg (cfg);
  D.25957 = (int) D.25956;
  ins->dreg = D.25957;
  D.25958 = cfg->cbb;
  D.25959 = D.25958->last_ins;
  if (D.25959 != 0B) goto <D.25960>; else goto <D.25961>;
  <D.25960>:
  D.25958 = cfg->cbb;
  D.25959 = D.25958->last_ins;
  D.25959->next = ins;
  D.25958 = cfg->cbb;
  D.25959 = D.25958->last_ins;
  ins->prev = D.25959;
  D.25958 = cfg->cbb;
  D.25958->last_ins = ins;
  goto <D.25962>;
  <D.25961>:
  D.25958 = cfg->cbb;
  D.25958 = cfg->cbb;
  D.25958->last_ins = ins;
  D.25959 = D.25958->last_ins;
  D.25958->code = D.25959;
  <D.25962>:
  D.25963 = ins->dreg;
  D.25964 = cinfo->ret.reg;
  D.25965 = (int) D.25964;
  mono_call_inst_add_outarg_reg (cfg, call, D.25963, D.25965, 0);
  <D.25948>:
  header = cfg->header;
  D.25944 = cfg->flags;
  D.25969 = D.25944 & 1;
  if (D.25969 != 0) goto <D.25966>; else goto <D.25970>;
  <D.25970>:
  D.25971 = BIT_FIELD_REF <*header, 64, 64>;
  D.25972 = D.25971 & 65534;
  if (D.25972 != 0) goto <D.25966>; else goto <D.25967>;
  <D.25966>:
  frmReg = 11;
  goto <D.25968>;
  <D.25967>:
  frmReg = 15;
  <D.25968>:
  i = 0;
  goto <D.24529>;
  <D.24528>:
  {
    struct MonoType * t;

    D.25973 = &cinfo->args;
    D.25974 = (long unsigned int) i;
    D.25975 = D.25974 * 24;
    ainfo = D.25973 + D.25975;
    D.25918 = sig->hasthis;
    D.25919 = (int) D.25918;
    if (D.25919 <= i) goto <D.25976>; else goto <D.25977>;
    <D.25976>:
    D.25918 = sig->hasthis;
    D.25919 = (int) D.25918;
    D.25978 = i - D.25919;
    t = sig->params[D.25978];
    goto <D.25979>;
    <D.25977>:
    D.25980 = mono_defaults.int_class;
    t = &D.25980->byval_arg;
    <D.25979>:
    D.25981 = cfg->generic_sharing_context;
    t = mini_type_get_underlying_type (D.25981, t);
    D.25982 = call->args;
    D.25974 = (long unsigned int) i;
    D.25983 = D.25974 * 8;
    D.25984 = D.25982 + D.25983;
    in = *D.25984;
    D.25985 = BIT_FIELD_REF <*sig, 64, 64>;
    D.25986 = D.25985 & 64640;
    if (D.25986 == 5120) goto <D.25987>; else goto <D.25988>;
    <D.25987>:
    D.25989 = sig->sentinelpos;
    D.25990 = (int) D.25989;
    if (D.25990 == i) goto <D.25991>; else goto <D.25992>;
    <D.25991>:
    emit_sig_cookie (cfg, call, cinfo);
    <D.25992>:
    <D.25988>:
    D.25993 = ainfo->regtype;
    switch (D.25993) <default: <D.24527>, case 0: <D.24510>, case 1: <D.24524>, case 2: <D.24512>, case 4: <D.24513>, case 6: <D.24514>, case 7: <D.24515>>
    <D.24510>:
    D.25993 = ainfo->regtype;
    D.25994 = ainfo->reg;
    D.25995 = (int) D.25994;
    add_outarg_reg2 (cfg, call, D.25993, D.25995, in);
    goto <D.24511>;
    <D.24512>:
    D.25996 = mono_type_is_struct (t);
    if (D.25996 != 0) goto <D.25997>; else goto <D.25998>;
    <D.25997>:
    ainfo->regtype = 5;
    goto <D.25999>;
    <D.25998>:
    D.26000 = ainfo->size;
    if (D.26000 == 4) goto <D.26001>; else goto <D.26002>;
    <D.26001>:
    ainfo->regtype = 3;
    <D.26002>:
    D.25993 = ainfo->regtype;
    D.25994 = ainfo->reg;
    D.25995 = (int) D.25994;
    add_outarg_reg2 (cfg, call, D.25993, D.25995, in);
    goto <D.24511>;
    <D.25999>:
    <D.24513>:
    <D.24514>:
    <D.24515>:
    {
      guint32 align;
      guint32 size;

      try
        {
          D.25918 = sig->hasthis;
          D.25919 = (int) D.25918;
          D.25978 = i - D.25919;
          D.26003 = sig->params[D.25978];
          D.26004 = D.26003->type;
          if (D.26004 == 22) goto <D.26005>; else goto <D.26006>;
          <D.26005>:
          size = 24;
          align = 8;
          goto <D.26007>;
          <D.26006>:
          D.25985 = BIT_FIELD_REF <*sig, 64, 64>;
          D.26008 = D.25985 & 128;
          if (D.26008 != 0) goto <D.26009>; else goto <D.26010>;
          <D.26009>:
          D.26011 = in->klass;
          D.26012 = &D.26011->byval_arg;
          D.26013 = mono_type_native_stack_size (D.26012, &align);
          size = (guint32) D.26013;
          goto <D.26014>;
          <D.26010>:
          D.26011 = in->klass;
          D.26015 = mono_class_value_size (D.26011, &align);
          size = (guint32) D.26015;
          <D.26014>:
          <D.26007>:
          D.26011 = in->klass;
          D.26016 = D.26011 == 0B;
          D.26017 = (long int) D.26016;
          D.26018 = __builtin_expect (D.26017, 0);
          if (D.26018 != 0) goto <D.26019>; else goto <D.26020>;
          <D.26019>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 2384, "in->klass");
          <D.26020>:
          D.26021 = ainfo->offparm;
          D.26022 = (unsigned int) D.26021;
          D.26023 = cinfo->sz.offStruct;
          D.26024 = D.26022 + D.26023;
          D.26025 = (int) D.26024;
          ainfo->offparm = D.26025;
          D.25923 = cfg->mempool;
          ins = mono_mempool_alloc (D.25923, 80);
          ins->data.op[1].const_val = 0;
          D.25949 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25949;
          ins->prev = 0B;
          D.25950 = ins->prev;
          ins->next = D.25950;
          ins->opcode = 333;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25951 = ins->sreg3;
          ins->sreg2 = D.25951;
          D.25952 = ins->sreg2;
          ins->sreg1 = D.25952;
          D.25953 = cfg->ip;
          ins->cil_code = D.25953;
          D.26026 = in->dreg;
          ins->sreg1 = D.26026;
          D.26011 = in->klass;
          ins->klass = D.26011;
          D.26000 = ainfo->size;
          D.26027 = (int) D.26000;
          ins->backend.size = D.26027;
          ins->data.op[0].p = call;
          D.25923 = cfg->mempool;
          D.26028 = mono_mempool_alloc (D.25923, 24);
          ins->data.op[1].p = D.26028;
          D.26029 = ins->data.op[1].p;
          memcpy (D.26029, ainfo, 24);
          D.25958 = cfg->cbb;
          D.25959 = D.25958->last_ins;
          if (D.25959 != 0B) goto <D.26030>; else goto <D.26031>;
          <D.26030>:
          D.25958 = cfg->cbb;
          D.25959 = D.25958->last_ins;
          D.25959->next = ins;
          D.25958 = cfg->cbb;
          D.25959 = D.25958->last_ins;
          ins->prev = D.25959;
          D.25958 = cfg->cbb;
          D.25958->last_ins = ins;
          goto <D.26032>;
          <D.26031>:
          D.25958 = cfg->cbb;
          D.25958 = cfg->cbb;
          D.25958->last_ins = ins;
          D.25959 = D.25958->last_ins;
          D.25958->code = D.25959;
          <D.26032>:
          D.25993 = ainfo->regtype;
          if (D.25993 == 6) goto <D.26033>; else goto <D.26034>;
          <D.26033>:
          {
            int treg;

            D.26035 = mono_alloc_preg (cfg);
            treg = (int) D.26035;
            {
              struct MonoInst * inst;

              D.25923 = cfg->mempool;
              inst = mono_mempool_alloc (D.25923, 80);
              inst->data.op[1].const_val = 0;
              D.26036 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.26036;
              inst->prev = 0B;
              D.26037 = inst->prev;
              inst->next = D.26037;
              inst->opcode = 429;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.26038 = inst->sreg3;
              inst->sreg2 = D.26038;
              D.26039 = inst->sreg2;
              inst->sreg1 = D.26039;
              D.25953 = cfg->ip;
              inst->cil_code = D.25953;
              inst->dreg = treg;
              inst->sreg1 = frmReg;
              D.26021 = ainfo->offparm;
              D.26040 = (long int) D.26021;
              inst->data.op[1].const_val = D.26040;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              if (D.25959 != 0B) goto <D.26041>; else goto <D.26042>;
              <D.26041>:
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              D.25959->next = inst;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              inst->prev = D.25959;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              goto <D.26043>;
              <D.26042>:
              D.25958 = cfg->cbb;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              D.25959 = D.25958->last_ins;
              D.25958->code = D.25959;
              <D.26043>:
            }
            D.25994 = ainfo->reg;
            D.25995 = (int) D.25994;
            mono_call_inst_add_outarg_reg (cfg, call, treg, D.25995, 0);
          }
          goto <D.26044>;
          <D.26034>:
          D.25993 = ainfo->regtype;
          if (D.25993 == 7) goto <D.26045>; else goto <D.26046>;
          <D.26045>:
          {
            int treg;

            D.26047 = mono_alloc_preg (cfg);
            treg = (int) D.26047;
            {
              struct MonoInst * inst;

              D.25923 = cfg->mempool;
              inst = mono_mempool_alloc (D.25923, 80);
              inst->data.op[1].const_val = 0;
              D.26048 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.26048;
              inst->prev = 0B;
              D.26049 = inst->prev;
              inst->next = D.26049;
              inst->opcode = 429;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.26050 = inst->sreg3;
              inst->sreg2 = D.26050;
              D.26051 = inst->sreg2;
              inst->sreg1 = D.26051;
              D.25953 = cfg->ip;
              inst->cil_code = D.25953;
              inst->dreg = treg;
              inst->sreg1 = frmReg;
              D.26021 = ainfo->offparm;
              D.26040 = (long int) D.26021;
              inst->data.op[1].const_val = D.26040;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              if (D.25959 != 0B) goto <D.26052>; else goto <D.26053>;
              <D.26052>:
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              D.25959->next = inst;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              inst->prev = D.25959;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              goto <D.26054>;
              <D.26053>:
              D.25958 = cfg->cbb;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              D.25959 = D.25958->last_ins;
              D.25958->code = D.25959;
              <D.26054>:
            }
            {
              struct MonoInst * inst;

              D.25923 = cfg->mempool;
              inst = mono_mempool_alloc (D.25923, 80);
              inst->data.op[1].const_val = 0;
              D.26055 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.26055;
              inst->prev = 0B;
              D.26056 = inst->prev;
              inst->next = D.26056;
              inst->opcode = 374;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.26057 = inst->sreg3;
              inst->sreg2 = D.26057;
              D.26058 = inst->sreg2;
              inst->sreg1 = D.26058;
              D.25953 = cfg->ip;
              inst->cil_code = D.25953;
              inst->sreg1 = treg;
              D.25994 = ainfo->reg;
              D.26059 = (int) D.25994;
              inst->dreg = D.26059;
              D.26060 = ainfo->offset;
              D.26061 = (long int) D.26060;
              inst->data.op[0].const_val = D.26061;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              if (D.25959 != 0B) goto <D.26062>; else goto <D.26063>;
              <D.26062>:
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              D.25959->next = inst;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              inst->prev = D.25959;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              goto <D.26064>;
              <D.26063>:
              D.25958 = cfg->cbb;
              D.25958 = cfg->cbb;
              D.25958->last_ins = inst;
              D.25959 = D.25958->last_ins;
              D.25958->code = D.25959;
              <D.26064>:
            }
            D.26065 = BIT_FIELD_REF <*cfg, 64, 5632>;
            D.26066 = D.26065 & 72057594037927936;
            if (D.26066 != 0) goto <D.26067>; else goto <D.26068>;
            <D.26067>:
            {
              struct MonoInst * def;

              D.25923 = cfg->mempool;
              def = mono_mempool_alloc (D.25923, 80);
              def->data.op[1].const_val = 0;
              D.26069 = def->data.op[1].const_val;
              def->data.op[0].const_val = D.26069;
              def->prev = 0B;
              D.26070 = def->prev;
              def->next = D.26070;
              def->opcode = 841;
              def->flags = 0;
              def->type = 0;
              def->dreg = -1;
              def->sreg3 = -1;
              D.26071 = def->sreg3;
              def->sreg2 = D.26071;
              D.26072 = def->sreg2;
              def->sreg1 = D.26072;
              D.25953 = cfg->ip;
              def->cil_code = D.25953;
              D.26060 = ainfo->offset;
              D.26061 = (long int) D.26060;
              def->data.op[0].const_val = D.26061;
              def->data.op[1].vtype = t;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              if (D.25959 != 0B) goto <D.26073>; else goto <D.26074>;
              <D.26073>:
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              D.25959->next = def;
              D.25958 = cfg->cbb;
              D.25959 = D.25958->last_ins;
              def->prev = D.25959;
              D.25958 = cfg->cbb;
              D.25958->last_ins = def;
              goto <D.26075>;
              <D.26074>:
              D.25958 = cfg->cbb;
              D.25958 = cfg->cbb;
              D.25958->last_ins = def;
              D.25959 = D.25958->last_ins;
              D.25958->code = D.25959;
              <D.26075>:
            }
            <D.26068>:
          }
          <D.26046>:
          <D.26044>:
          goto <D.24511>;
        }
      finally
        {
          align = {CLOBBER};
        }
    }
    <D.24524>:
    D.26076 = BIT_FIELD_REF <*t, 64, 64>;
    D.26077 = D.26076 & 280384055017472;
    if (D.26077 == 13194139533312) goto <D.26078>; else goto <D.26079>;
    <D.26078>:
    {
      struct MonoInst * inst;

      D.25923 = cfg->mempool;
      inst = mono_mempool_alloc (D.25923, 80);
      inst->data.op[1].const_val = 0;
      D.26080 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26080;
      inst->prev = 0B;
      D.26081 = inst->prev;
      inst->next = D.26081;
      inst->opcode = 379;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26082 = inst->sreg3;
      inst->sreg2 = D.26082;
      D.26083 = inst->sreg2;
      inst->sreg1 = D.26083;
      D.25953 = cfg->ip;
      inst->cil_code = D.25953;
      D.26026 = in->dreg;
      inst->sreg1 = D.26026;
      inst->dreg = 15;
      D.26060 = ainfo->offset;
      D.26084 = D.26060 + 4;
      D.26085 = (long int) D.26084;
      inst->data.op[0].const_val = D.26085;
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      if (D.25959 != 0B) goto <D.26086>; else goto <D.26087>;
      <D.26086>:
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      D.25959->next = inst;
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      inst->prev = D.25959;
      D.25958 = cfg->cbb;
      D.25958->last_ins = inst;
      goto <D.26088>;
      <D.26087>:
      D.25958 = cfg->cbb;
      D.25958 = cfg->cbb;
      D.25958->last_ins = inst;
      D.25959 = D.25958->last_ins;
      D.25958->code = D.25959;
      <D.26088>:
    }
    goto <D.26089>;
    <D.26079>:
    D.26076 = BIT_FIELD_REF <*t, 64, 64>;
    D.26077 = D.26076 & 280384055017472;
    if (D.26077 == 14293651161088) goto <D.26090>; else goto <D.26091>;
    <D.26090>:
    {
      struct MonoInst * inst;

      D.25923 = cfg->mempool;
      inst = mono_mempool_alloc (D.25923, 80);
      inst->data.op[1].const_val = 0;
      D.26092 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26092;
      inst->prev = 0B;
      D.26093 = inst->prev;
      inst->next = D.26093;
      inst->opcode = 380;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26094 = inst->sreg3;
      inst->sreg2 = D.26094;
      D.26095 = inst->sreg2;
      inst->sreg1 = D.26095;
      D.25953 = cfg->ip;
      inst->cil_code = D.25953;
      D.26026 = in->dreg;
      inst->sreg1 = D.26026;
      inst->dreg = 15;
      D.26060 = ainfo->offset;
      D.26061 = (long int) D.26060;
      inst->data.op[0].const_val = D.26061;
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      if (D.25959 != 0B) goto <D.26096>; else goto <D.26097>;
      <D.26096>:
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      D.25959->next = inst;
      D.25958 = cfg->cbb;
      D.25959 = D.25958->last_ins;
      inst->prev = D.25959;
      D.25958 = cfg->cbb;
      D.25958->last_ins = inst;
      goto <D.26098>;
      <D.26097>:
      D.25958 = cfg->cbb;
      D.25958 = cfg->cbb;
      D.25958->last_ins = inst;
      D.25959 = D.25958->last_ins;
      D.25958->code = D.25959;
      <D.26098>:
    }
    goto <D.26099>;
    <D.26091>:
    D.25923 = cfg->mempool;
    ins = mono_mempool_alloc (D.25923, 80);
    ins->data.op[1].const_val = 0;
    D.25949 = ins->data.op[1].const_val;
    ins->data.op[0].const_val = D.25949;
    ins->prev = 0B;
    D.25950 = ins->prev;
    ins->next = D.25950;
    ins->opcode = 374;
    ins->flags = 0;
    ins->type = 0;
    ins->dreg = -1;
    ins->sreg3 = -1;
    D.25951 = ins->sreg3;
    ins->sreg2 = D.25951;
    D.25952 = ins->sreg2;
    ins->sreg1 = D.25952;
    D.25953 = cfg->ip;
    ins->cil_code = D.25953;
    ins->dreg = 15;
    D.26060 = ainfo->offset;
    D.26061 = (long int) D.26060;
    ins->data.op[0].const_val = D.26061;
    D.26026 = in->dreg;
    ins->sreg1 = D.26026;
    D.25958 = cfg->cbb;
    D.25959 = D.25958->last_ins;
    if (D.25959 != 0B) goto <D.26100>; else goto <D.26101>;
    <D.26100>:
    D.25958 = cfg->cbb;
    D.25959 = D.25958->last_ins;
    D.25959->next = ins;
    D.25958 = cfg->cbb;
    D.25959 = D.25958->last_ins;
    ins->prev = D.25959;
    D.25958 = cfg->cbb;
    D.25958->last_ins = ins;
    goto <D.26102>;
    <D.26101>:
    D.25958 = cfg->cbb;
    D.25958 = cfg->cbb;
    D.25958->last_ins = ins;
    D.25959 = D.25958->last_ins;
    D.25958->code = D.25959;
    <D.26102>:
    <D.26099>:
    <D.26089>:
    goto <D.24511>;
    <D.24527>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 2463);
    <D.24511>:
  }
  i = i + 1;
  <D.24529>:
  if (i < n) goto <D.24528>; else goto <D.24530>;
  <D.24530>:
  D.25985 = BIT_FIELD_REF <*sig, 64, 64>;
  D.25986 = D.25985 & 64640;
  if (D.25986 == 5120) goto <D.26103>; else goto <D.26104>;
  <D.26103>:
  D.25989 = sig->sentinelpos;
  D.25990 = (int) D.25989;
  if (D.25990 == i) goto <D.26105>; else goto <D.26106>;
  <D.26105>:
  emit_sig_cookie (cfg, call, cinfo);
  <D.26106>:
  <D.26104>:
}


add_outarg_reg2 (struct MonoCompile * cfg, struct MonoCallInst * call, ArgStorage storage, int reg, struct MonoInst * tree)
{
  struct MonoMemPool * D.26108;
  long int D.26109;
  struct MonoInst * D.26110;
  int D.26111;
  int D.26112;
  const unsigned char * D.26113;
  unsigned int D.26114;
  int D.26115;
  int D.26116;
  struct MonoBasicBlock * D.26117;
  struct MonoInst * D.26118;
  int D.26122;
  unsigned int D.26123;
  int D.26124;
  unsigned int D.26128;
  int D.26129;
  struct MonoInst * ins;

  switch (storage) <default: <D.24485>, case 0: <D.24481>, case 2: <D.24483>, case 3: <D.24484>>
  <D.24481>:
  D.26108 = cfg->mempool;
  ins = mono_mempool_alloc (D.26108, 80);
  ins->data.op[1].const_val = 0;
  D.26109 = ins->data.op[1].const_val;
  ins->data.op[0].const_val = D.26109;
  ins->prev = 0B;
  D.26110 = ins->prev;
  ins->next = D.26110;
  ins->opcode = 424;
  ins->flags = 0;
  ins->type = 0;
  ins->dreg = -1;
  ins->sreg3 = -1;
  D.26111 = ins->sreg3;
  ins->sreg2 = D.26111;
  D.26112 = ins->sreg2;
  ins->sreg1 = D.26112;
  D.26113 = cfg->ip;
  ins->cil_code = D.26113;
  D.26114 = mono_alloc_ireg (cfg);
  D.26115 = (int) D.26114;
  ins->dreg = D.26115;
  D.26116 = tree->dreg;
  ins->sreg1 = D.26116;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  if (D.26118 != 0B) goto <D.26119>; else goto <D.26120>;
  <D.26119>:
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  D.26118->next = ins;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  ins->prev = D.26118;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  goto <D.26121>;
  <D.26120>:
  D.26117 = cfg->cbb;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  D.26118 = D.26117->last_ins;
  D.26117->code = D.26118;
  <D.26121>:
  D.26122 = ins->dreg;
  mono_call_inst_add_outarg_reg (cfg, call, D.26122, reg, 0);
  goto <D.24482>;
  <D.24483>:
  D.26108 = cfg->mempool;
  ins = mono_mempool_alloc (D.26108, 80);
  ins->data.op[1].const_val = 0;
  D.26109 = ins->data.op[1].const_val;
  ins->data.op[0].const_val = D.26109;
  ins->prev = 0B;
  D.26110 = ins->prev;
  ins->next = D.26110;
  ins->opcode = 426;
  ins->flags = 0;
  ins->type = 0;
  ins->dreg = -1;
  ins->sreg3 = -1;
  D.26111 = ins->sreg3;
  ins->sreg2 = D.26111;
  D.26112 = ins->sreg2;
  ins->sreg1 = D.26112;
  D.26113 = cfg->ip;
  ins->cil_code = D.26113;
  D.26123 = mono_alloc_freg (cfg);
  D.26124 = (int) D.26123;
  ins->dreg = D.26124;
  D.26116 = tree->dreg;
  ins->sreg1 = D.26116;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  if (D.26118 != 0B) goto <D.26125>; else goto <D.26126>;
  <D.26125>:
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  D.26118->next = ins;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  ins->prev = D.26118;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  goto <D.26127>;
  <D.26126>:
  D.26117 = cfg->cbb;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  D.26118 = D.26117->last_ins;
  D.26117->code = D.26118;
  <D.26127>:
  D.26122 = ins->dreg;
  mono_call_inst_add_outarg_reg (cfg, call, D.26122, reg, 1);
  goto <D.24482>;
  <D.24484>:
  D.26108 = cfg->mempool;
  ins = mono_mempool_alloc (D.26108, 80);
  ins->data.op[1].const_val = 0;
  D.26109 = ins->data.op[1].const_val;
  ins->data.op[0].const_val = D.26109;
  ins->prev = 0B;
  D.26110 = ins->prev;
  ins->next = D.26110;
  ins->opcode = 847;
  ins->flags = 0;
  ins->type = 0;
  ins->dreg = -1;
  ins->sreg3 = -1;
  D.26111 = ins->sreg3;
  ins->sreg2 = D.26111;
  D.26112 = ins->sreg2;
  ins->sreg1 = D.26112;
  D.26113 = cfg->ip;
  ins->cil_code = D.26113;
  D.26128 = mono_alloc_freg (cfg);
  D.26129 = (int) D.26128;
  ins->dreg = D.26129;
  D.26116 = tree->dreg;
  ins->sreg1 = D.26116;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  if (D.26118 != 0B) goto <D.26130>; else goto <D.26131>;
  <D.26130>:
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  D.26118->next = ins;
  D.26117 = cfg->cbb;
  D.26118 = D.26117->last_ins;
  ins->prev = D.26118;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  goto <D.26132>;
  <D.26131>:
  D.26117 = cfg->cbb;
  D.26117 = cfg->cbb;
  D.26117->last_ins = ins;
  D.26118 = D.26117->last_ins;
  D.26117->code = D.26118;
  <D.26132>:
  D.26122 = ins->dreg;
  mono_call_inst_add_outarg_reg (cfg, call, D.26122, reg, 1);
  goto <D.24482>;
  <D.24485>:
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 2237);
  <D.24482>:
}


__attribute__((__artificial__, __gnu_inline__, __always_inline__, __nothrow__, __leaf__))
memcpy (void * restrict __dest, const void * restrict __src, size_t __len)
{
  void * D.26133;
  long unsigned int D.26134;

  D.26134 = __builtin_object_size (__dest, 0);
  D.26133 = __builtin___memcpy_chk (__dest, __src, __len, D.26134);
  return D.26133;
}


emit_sig_cookie (struct MonoCompile * cfg, struct MonoCallInst * call, struct CallInfo * cinfo)
{
  struct MonoMethodSignature * D.26136;
  short unsigned int D.26137;
  short int D.26138;
  short unsigned int D.26139;
  short unsigned int D.26140;
  struct MonoType *[0:] * D.26143;
  struct MonoType *[0:] * D.26144;
  long unsigned int D.26145;
  long unsigned int D.26146;
  const void * D.26147;
  long unsigned int D.26148;
  long unsigned int D.26149;
  struct MonoMemPool * D.26150;
  long int D.26151;
  struct MonoInst * D.26152;
  int D.26153;
  int D.26154;
  const unsigned char * D.26155;
  unsigned int D.26156;
  int D.26157;
  struct MonoBasicBlock * D.26158;
  struct MonoInst * D.26159;
  long int D.26163;
  struct MonoInst * D.26164;
  int D.26165;
  int D.26166;
  int D.26167;
  int D.26168;
  long int D.26169;
  struct MonoMethodSignature * tmpSig;
  struct MonoInst * sig_arg;

  cfg->disable_aot = 1;
  D.26136 = call->signature;
  tmpSig = mono_metadata_signature_dup (D.26136);
  D.26137 = tmpSig->param_count;
  D.26136 = call->signature;
  D.26138 = D.26136->sentinelpos;
  D.26139 = (short unsigned int) D.26138;
  D.26140 = D.26137 - D.26139;
  tmpSig->param_count = D.26140;
  tmpSig->sentinelpos = 0;
  D.26137 = tmpSig->param_count;
  if (D.26137 != 0) goto <D.26141>; else goto <D.26142>;
  <D.26141>:
  D.26143 = &tmpSig->params;
  D.26136 = call->signature;
  D.26144 = &D.26136->params;
  D.26136 = call->signature;
  D.26138 = D.26136->sentinelpos;
  D.26145 = (long unsigned int) D.26138;
  D.26146 = D.26145 * 8;
  D.26147 = D.26144 + D.26146;
  D.26137 = tmpSig->param_count;
  D.26148 = (long unsigned int) D.26137;
  D.26149 = D.26148 * 8;
  memcpy (D.26143, D.26147, D.26149);
  <D.26142>:
  D.26150 = cfg->mempool;
  sig_arg = mono_mempool_alloc (D.26150, 80);
  sig_arg->data.op[1].const_val = 0;
  D.26151 = sig_arg->data.op[1].const_val;
  sig_arg->data.op[0].const_val = D.26151;
  sig_arg->prev = 0B;
  D.26152 = sig_arg->prev;
  sig_arg->next = D.26152;
  sig_arg->opcode = 362;
  sig_arg->flags = 0;
  sig_arg->type = 0;
  sig_arg->dreg = -1;
  sig_arg->sreg3 = -1;
  D.26153 = sig_arg->sreg3;
  sig_arg->sreg2 = D.26153;
  D.26154 = sig_arg->sreg2;
  sig_arg->sreg1 = D.26154;
  D.26155 = cfg->ip;
  sig_arg->cil_code = D.26155;
  D.26156 = mono_alloc_ireg (cfg);
  D.26157 = (int) D.26156;
  sig_arg->dreg = D.26157;
  sig_arg->data.op[0].p = tmpSig;
  D.26158 = cfg->cbb;
  D.26159 = D.26158->last_ins;
  if (D.26159 != 0B) goto <D.26160>; else goto <D.26161>;
  <D.26160>:
  D.26158 = cfg->cbb;
  D.26159 = D.26158->last_ins;
  D.26159->next = sig_arg;
  D.26158 = cfg->cbb;
  D.26159 = D.26158->last_ins;
  sig_arg->prev = D.26159;
  D.26158 = cfg->cbb;
  D.26158->last_ins = sig_arg;
  goto <D.26162>;
  <D.26161>:
  D.26158 = cfg->cbb;
  D.26158 = cfg->cbb;
  D.26158->last_ins = sig_arg;
  D.26159 = D.26158->last_ins;
  D.26158->code = D.26159;
  <D.26162>:
  {
    struct MonoInst * inst;

    D.26150 = cfg->mempool;
    inst = mono_mempool_alloc (D.26150, 80);
    inst->data.op[1].const_val = 0;
    D.26163 = inst->data.op[1].const_val;
    inst->data.op[0].const_val = D.26163;
    inst->prev = 0B;
    D.26164 = inst->prev;
    inst->next = D.26164;
    inst->opcode = 374;
    inst->flags = 0;
    inst->type = 0;
    inst->dreg = -1;
    inst->sreg3 = -1;
    D.26165 = inst->sreg3;
    inst->sreg2 = D.26165;
    D.26166 = inst->sreg2;
    inst->sreg1 = D.26166;
    D.26155 = cfg->ip;
    inst->cil_code = D.26155;
    D.26167 = sig_arg->dreg;
    inst->sreg1 = D.26167;
    inst->dreg = 15;
    D.26168 = cinfo->sigCookie.offset;
    D.26169 = (long int) D.26168;
    inst->data.op[0].const_val = D.26169;
    D.26158 = cfg->cbb;
    D.26159 = D.26158->last_ins;
    if (D.26159 != 0B) goto <D.26170>; else goto <D.26171>;
    <D.26170>:
    D.26158 = cfg->cbb;
    D.26159 = D.26158->last_ins;
    D.26159->next = inst;
    D.26158 = cfg->cbb;
    D.26159 = D.26158->last_ins;
    inst->prev = D.26159;
    D.26158 = cfg->cbb;
    D.26158->last_ins = inst;
    goto <D.26172>;
    <D.26171>:
    D.26158 = cfg->cbb;
    D.26158 = cfg->cbb;
    D.26158->last_ins = inst;
    D.26159 = D.26158->last_ins;
    D.26158->code = D.26159;
    <D.26172>:
  }
}


__attribute__((visibility ("hidden")))
mono_arch_emit_outarg_vt (struct MonoCompile * cfg, struct MonoInst * ins, struct MonoInst * src)
{
  <unnamed type> D.26173;
  unsigned char D.26176;
  unsigned int D.26179;
  struct MonoMemPool * D.26180;
  long int D.26181;
  struct MonoInst * D.26182;
  int D.26183;
  int D.26184;
  const unsigned char * D.26185;
  struct MonoBasicBlock * D.26186;
  struct MonoInst * D.26187;
  long int D.26191;
  struct MonoInst * D.26192;
  int D.26193;
  int D.26194;
  int D.26195;
  long int D.26199;
  struct MonoInst * D.26200;
  int D.26201;
  int D.26202;
  long int D.26206;
  struct MonoInst * D.26207;
  int D.26208;
  int D.26209;
  long int D.26213;
  struct MonoInst * D.26214;
  int D.26215;
  int D.26216;
  int D.26221;
  unsigned int D.26223;
  long int D.26224;
  struct MonoInst * D.26225;
  int D.26226;
  int D.26227;
  long int D.26231;
  struct MonoInst * D.26232;
  int D.26233;
  int D.26234;
  int D.26235;
  int D.26236;
  long int D.26237;
  unsigned int D.26241;
  long int D.26242;
  struct MonoInst * D.26243;
  int D.26244;
  int D.26245;
  long int D.26249;
  struct MonoInst * D.26250;
  int D.26251;
  int D.26252;
  unsigned int D.26256;
  long int D.26257;
  struct MonoInst * D.26258;
  int D.26259;
  int D.26260;
  long int D.26264;
  struct MonoInst * D.26265;
  int D.26266;
  int D.26267;
  unsigned int D.26271;
  long int D.26272;
  struct MonoInst * D.26273;
  int D.26274;
  int D.26275;
  long int D.26279;
  struct MonoInst * D.26280;
  int D.26281;
  int D.26282;
  long int D.26286;
  struct MonoInst * D.26287;
  int D.26288;
  int D.26289;
  unsigned int D.26293;
  unsigned int D.26297;
  long int D.26298;
  struct MonoInst * D.26299;
  int D.26300;
  int D.26301;
  long int D.26302;
  unsigned int D.26309;
  long int D.26310;
  struct MonoInst * D.26311;
  int D.26312;
  int D.26313;
  unsigned int D.26324;
  unsigned int D.26325;
  long int D.26328;
  struct MonoInst * D.26329;
  int D.26330;
  int D.26331;
  long int D.26335;
  struct MonoInst * D.26336;
  int D.26337;
  int D.26338;
  _Bool D.26343;
  long int D.26344;
  long int D.26345;
  long int D.26348;
  struct MonoInst * D.26349;
  int D.26350;
  int D.26351;
  struct MonoMethod * D.26356;
  unsigned int D.26360;
  unsigned int D.26361;
  long unsigned int D.26363;
  long unsigned int D.26364;
  long int D.26365;
  struct MonoInst * D.26366;
  int D.26367;
  int D.26368;
  int D.26371;
  long int D.26372;
  unsigned int D.26374;
  unsigned int D.26378;
  long int D.26379;
  struct MonoInst * D.26380;
  int D.26381;
  int D.26382;
  long int D.26383;
  unsigned int D.26390;
  long int D.26391;
  struct MonoInst * D.26392;
  int D.26393;
  int D.26394;
  long unsigned int D.26401;
  long unsigned int D.26402;
  long int D.26405;
  struct MonoInst * D.26406;
  int D.26407;
  int D.26408;
  struct MonoClass * D.26409;
  struct MonoType * D.26410;
  struct MonoCallInst * call;
  struct ArgInfo * ainfo;
  int size;

  call = ins->data.op[0].p;
  ainfo = ins->data.op[1].p;
  size = ins->backend.size;
  D.26173 = ainfo->regtype;
  if (D.26173 == 4) goto <D.26174>; else goto <D.26175>;
  <D.26174>:
  D.26176 = ainfo->reg;
  if (D.26176 != 15) goto <D.26177>; else goto <D.26178>;
  <D.26177>:
  {
    int reg;

    D.26179 = mono_alloc_preg (cfg);
    reg = (int) D.26179;
    switch (size) <default: <D.26220>, case 0: <D.24540>, case 1: <D.24543>, case 2: <D.24545>, case 4: <D.24547>, case 8: <D.24549>>
    <D.24540>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26181 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26181;
      inst->prev = 0B;
      D.26182 = inst->prev;
      inst->next = D.26182;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26183 = inst->sreg3;
      inst->sreg2 = D.26183;
      D.26184 = inst->sreg2;
      inst->sreg1 = D.26184;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = reg;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26188>; else goto <D.26189>;
      <D.26188>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26190>;
      <D.26189>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26190>:
    }
    goto <D.24542>;
    <D.24543>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26191 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26191;
      inst->prev = 0B;
      D.26192 = inst->prev;
      inst->next = D.26192;
      inst->opcode = 390;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26193 = inst->sreg3;
      inst->sreg2 = D.26193;
      D.26194 = inst->sreg2;
      inst->sreg1 = D.26194;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = reg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26196>; else goto <D.26197>;
      <D.26196>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26198>;
      <D.26197>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26198>:
    }
    goto <D.24542>;
    <D.24545>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26199 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26199;
      inst->prev = 0B;
      D.26200 = inst->prev;
      inst->next = D.26200;
      inst->opcode = 392;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26201 = inst->sreg3;
      inst->sreg2 = D.26201;
      D.26202 = inst->sreg2;
      inst->sreg1 = D.26202;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = reg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26203>; else goto <D.26204>;
      <D.26203>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26205>;
      <D.26204>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26205>:
    }
    goto <D.24542>;
    <D.24547>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26206 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26206;
      inst->prev = 0B;
      D.26207 = inst->prev;
      inst->next = D.26207;
      inst->opcode = 393;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26208 = inst->sreg3;
      inst->sreg2 = D.26208;
      D.26209 = inst->sreg2;
      inst->sreg1 = D.26209;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = reg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26210>; else goto <D.26211>;
      <D.26210>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26212>;
      <D.26211>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26212>:
    }
    goto <D.24542>;
    <D.24549>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26213 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26213;
      inst->prev = 0B;
      D.26214 = inst->prev;
      inst->next = D.26214;
      inst->opcode = 395;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26215 = inst->sreg3;
      inst->sreg2 = D.26215;
      D.26216 = inst->sreg2;
      inst->sreg1 = D.26216;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = reg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26217>; else goto <D.26218>;
      <D.26217>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26219>;
      <D.26218>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26219>:
    }
    goto <D.24542>;
    <D.26220>:
    <D.24542>:
    D.26176 = ainfo->reg;
    D.26221 = (int) D.26176;
    mono_call_inst_add_outarg_reg (cfg, call, reg, D.26221, 0);
  }
  goto <D.26222>;
  <D.26178>:
  {
    int tmpr;

    switch (size) <default: <D.26320>, case 0: <D.24552>, case 1: <D.24556>, case 2: <D.24559>, case 4: <D.24562>, case 8: <D.24565>>
    <D.24552>:
    D.26223 = mono_alloc_preg (cfg);
    tmpr = (int) D.26223;
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26224 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26224;
      inst->prev = 0B;
      D.26225 = inst->prev;
      inst->next = D.26225;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26226 = inst->sreg3;
      inst->sreg2 = D.26226;
      D.26227 = inst->sreg2;
      inst->sreg1 = D.26227;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = tmpr;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26228>; else goto <D.26229>;
      <D.26228>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26230>;
      <D.26229>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26230>:
    }
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26231 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26231;
      inst->prev = 0B;
      D.26232 = inst->prev;
      inst->next = D.26232;
      inst->opcode = 374;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26233 = inst->sreg3;
      inst->sreg2 = D.26233;
      D.26234 = inst->sreg2;
      inst->sreg1 = D.26234;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->sreg1 = tmpr;
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26238>; else goto <D.26239>;
      <D.26238>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26240>;
      <D.26239>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26240>:
    }
    goto <D.24555>;
    <D.24556>:
    D.26241 = mono_alloc_preg (cfg);
    tmpr = (int) D.26241;
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26242 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26242;
      inst->prev = 0B;
      D.26243 = inst->prev;
      inst->next = D.26243;
      inst->opcode = 390;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26244 = inst->sreg3;
      inst->sreg2 = D.26244;
      D.26245 = inst->sreg2;
      inst->sreg1 = D.26245;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = tmpr;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26246>; else goto <D.26247>;
      <D.26246>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26248>;
      <D.26247>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26248>:
    }
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26249 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26249;
      inst->prev = 0B;
      D.26250 = inst->prev;
      inst->next = D.26250;
      inst->opcode = 374;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26251 = inst->sreg3;
      inst->sreg2 = D.26251;
      D.26252 = inst->sreg2;
      inst->sreg1 = D.26252;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->sreg1 = tmpr;
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26253>; else goto <D.26254>;
      <D.26253>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26255>;
      <D.26254>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26255>:
    }
    goto <D.24555>;
    <D.24559>:
    D.26256 = mono_alloc_preg (cfg);
    tmpr = (int) D.26256;
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26257 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26257;
      inst->prev = 0B;
      D.26258 = inst->prev;
      inst->next = D.26258;
      inst->opcode = 392;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26259 = inst->sreg3;
      inst->sreg2 = D.26259;
      D.26260 = inst->sreg2;
      inst->sreg1 = D.26260;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = tmpr;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26261>; else goto <D.26262>;
      <D.26261>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26263>;
      <D.26262>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26263>:
    }
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26264 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26264;
      inst->prev = 0B;
      D.26265 = inst->prev;
      inst->next = D.26265;
      inst->opcode = 374;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26266 = inst->sreg3;
      inst->sreg2 = D.26266;
      D.26267 = inst->sreg2;
      inst->sreg1 = D.26267;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->sreg1 = tmpr;
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26268>; else goto <D.26269>;
      <D.26268>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26270>;
      <D.26269>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26270>:
    }
    goto <D.24555>;
    <D.24562>:
    D.26271 = mono_alloc_preg (cfg);
    tmpr = (int) D.26271;
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26272 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26272;
      inst->prev = 0B;
      D.26273 = inst->prev;
      inst->next = D.26273;
      inst->opcode = 393;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26274 = inst->sreg3;
      inst->sreg2 = D.26274;
      D.26275 = inst->sreg2;
      inst->sreg1 = D.26275;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = tmpr;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26276>; else goto <D.26277>;
      <D.26276>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26278>;
      <D.26277>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26278>:
    }
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26279 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26279;
      inst->prev = 0B;
      D.26280 = inst->prev;
      inst->next = D.26280;
      inst->opcode = 374;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26281 = inst->sreg3;
      inst->sreg2 = D.26281;
      D.26282 = inst->sreg2;
      inst->sreg1 = D.26282;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->sreg1 = tmpr;
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26283>; else goto <D.26284>;
      <D.26283>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26285>;
      <D.26284>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26285>:
    }
    goto <D.24555>;
    <D.24565>:
    {
      struct MonoInst * inst;
      int sReg;
      int dReg;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26286 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26286;
      inst->prev = 0B;
      D.26287 = inst->prev;
      inst->next = D.26287;
      inst->opcode = 316;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26288 = inst->sreg3;
      inst->sreg2 = D.26288;
      D.26289 = inst->sreg2;
      inst->sreg1 = D.26289;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      if (size > 256) goto <D.26290>; else goto <D.26291>;
      <D.26290>:
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[1].const_val = 0;
      goto <D.26292>;
      <D.26291>:
      D.26236 = ainfo->offset;
      D.26293 = (unsigned int) D.26236;
      if (D.26293 <= 4095) goto <D.26294>; else goto <D.26295>;
      <D.26294>:
      D.26176 = ainfo->reg;
      D.26235 = (int) D.26176;
      inst->dreg = D.26235;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      inst->data.op[0].const_val = D.26237;
      goto <D.26296>;
      <D.26295>:
      D.26297 = mono_alloc_preg (cfg);
      dReg = (int) D.26297;
      {
        struct MonoInst * inst;

        D.26180 = cfg->mempool;
        inst = mono_mempool_alloc (D.26180, 80);
        inst->data.op[1].const_val = 0;
        D.26298 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26298;
        inst->prev = 0B;
        D.26299 = inst->prev;
        inst->next = D.26299;
        inst->opcode = 429;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26300 = inst->sreg3;
        inst->sreg2 = D.26300;
        D.26301 = inst->sreg2;
        inst->sreg1 = D.26301;
        D.26185 = cfg->ip;
        inst->cil_code = D.26185;
        inst->dreg = dReg;
        D.26176 = ainfo->reg;
        D.26235 = (int) D.26176;
        inst->sreg1 = D.26235;
        D.26236 = ainfo->offset;
        D.26302 = (long int) D.26236;
        inst->data.op[1].const_val = D.26302;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        if (D.26187 != 0B) goto <D.26303>; else goto <D.26304>;
        <D.26303>:
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        D.26187->next = inst;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        inst->prev = D.26187;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        goto <D.26305>;
        <D.26304>:
        D.26186 = cfg->cbb;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        D.26187 = D.26186->last_ins;
        D.26186->code = D.26187;
        <D.26305>:
      }
      inst->dreg = dReg;
      inst->data.op[0].const_val = 0;
      <D.26296>:
      if (1 != 0) goto <D.26306>; else goto <D.26307>;
      <D.26306>:
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[1].const_val = 0;
      goto <D.26308>;
      <D.26307>:
      D.26309 = mono_alloc_preg (cfg);
      sReg = (int) D.26309;
      {
        struct MonoInst * inst;

        D.26180 = cfg->mempool;
        inst = mono_mempool_alloc (D.26180, 80);
        inst->data.op[1].const_val = 0;
        D.26310 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26310;
        inst->prev = 0B;
        D.26311 = inst->prev;
        inst->next = D.26311;
        inst->opcode = 429;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26312 = inst->sreg3;
        inst->sreg2 = D.26312;
        D.26313 = inst->sreg2;
        inst->sreg1 = D.26313;
        D.26185 = cfg->ip;
        inst->cil_code = D.26185;
        inst->dreg = sReg;
        D.26195 = src->dreg;
        inst->sreg1 = D.26195;
        inst->data.op[1].const_val = 0;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        if (D.26187 != 0B) goto <D.26314>; else goto <D.26315>;
        <D.26314>:
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        D.26187->next = inst;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        inst->prev = D.26187;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        goto <D.26316>;
        <D.26315>:
        D.26186 = cfg->cbb;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        D.26187 = D.26186->last_ins;
        D.26186->code = D.26187;
        <D.26316>:
      }
      inst->sreg1 = sReg;
      inst->data.op[1].const_val = 0;
      <D.26308>:
      <D.26292>:
      inst->opcode = 846;
      inst->backend.size = size;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26317>; else goto <D.26318>;
      <D.26317>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26319>;
      <D.26318>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26319>:
    }
    goto <D.24555>;
    <D.26320>:
    <D.24555>:
  }
  <D.26222>:
  goto <D.26321>;
  <D.26175>:
  D.26173 = ainfo->regtype;
  if (D.26173 == 5) goto <D.26322>; else goto <D.26323>;
  <D.26322>:
  {
    int dreg;

    D.26324 = mono_alloc_freg (cfg);
    dreg = (int) D.26324;
    D.26325 = ainfo->size;
    if (D.26325 == 4) goto <D.26326>; else goto <D.26327>;
    <D.26326>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26328 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26328;
      inst->prev = 0B;
      D.26329 = inst->prev;
      inst->next = D.26329;
      inst->opcode = 396;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26330 = inst->sreg3;
      inst->sreg2 = D.26330;
      D.26331 = inst->sreg2;
      inst->sreg1 = D.26331;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = dreg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26332>; else goto <D.26333>;
      <D.26332>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26334>;
      <D.26333>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26334>:
    }
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26335 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26335;
      inst->prev = 0B;
      D.26336 = inst->prev;
      inst->next = D.26336;
      inst->opcode = 847;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26337 = inst->sreg3;
      inst->sreg2 = D.26337;
      D.26338 = inst->sreg2;
      inst->sreg1 = D.26338;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = dreg;
      inst->sreg1 = dreg;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26339>; else goto <D.26340>;
      <D.26339>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26341>;
      <D.26340>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26341>:
    }
    goto <D.26342>;
    <D.26327>:
    D.26325 = ainfo->size;
    D.26343 = D.26325 != 8;
    D.26344 = (long int) D.26343;
    D.26345 = __builtin_expect (D.26344, 0);
    if (D.26345 != 0) goto <D.26346>; else goto <D.26347>;
    <D.26346>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 2514, "ainfo->size == 8");
    <D.26347>:
    {
      struct MonoInst * inst;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26348 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26348;
      inst->prev = 0B;
      D.26349 = inst->prev;
      inst->next = D.26349;
      inst->opcode = 397;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26350 = inst->sreg3;
      inst->sreg2 = D.26350;
      D.26351 = inst->sreg2;
      inst->sreg1 = D.26351;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      inst->dreg = dreg;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[0].const_val = 0;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26352>; else goto <D.26353>;
      <D.26352>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26354>;
      <D.26353>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26354>:
    }
    <D.26342>:
    D.26176 = ainfo->reg;
    D.26221 = (int) D.26176;
    mono_call_inst_add_outarg_reg (cfg, call, dreg, D.26221, 1);
  }
  goto <D.26355>;
  <D.26323>:
  {
    struct MonoMethodHeader * header;
    int srcReg;

    D.26356 = cfg->method;
    header = mono_method_get_header (D.26356);
    D.26360 = cfg->flags;
    D.26361 = D.26360 & 1;
    if (D.26361 != 0) goto <D.26357>; else goto <D.26362>;
    <D.26362>:
    D.26363 = BIT_FIELD_REF <*header, 64, 64>;
    D.26364 = D.26363 & 65534;
    if (D.26364 != 0) goto <D.26357>; else goto <D.26358>;
    <D.26357>:
    srcReg = 11;
    goto <D.26359>;
    <D.26358>:
    srcReg = 15;
    <D.26359>:
    {
      struct MonoInst * inst;
      int sReg;
      int dReg;

      D.26180 = cfg->mempool;
      inst = mono_mempool_alloc (D.26180, 80);
      inst->data.op[1].const_val = 0;
      D.26365 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26365;
      inst->prev = 0B;
      D.26366 = inst->prev;
      inst->next = D.26366;
      inst->opcode = 316;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26367 = inst->sreg3;
      inst->sreg2 = D.26367;
      D.26368 = inst->sreg2;
      inst->sreg1 = D.26368;
      D.26185 = cfg->ip;
      inst->cil_code = D.26185;
      if (size > 256) goto <D.26369>; else goto <D.26370>;
      <D.26369>:
      inst->dreg = srcReg;
      D.26371 = ainfo->offparm;
      D.26372 = (long int) D.26371;
      inst->data.op[0].const_val = D.26372;
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[1].const_val = 0;
      goto <D.26373>;
      <D.26370>:
      D.26371 = ainfo->offparm;
      D.26374 = (unsigned int) D.26371;
      if (D.26374 <= 4095) goto <D.26375>; else goto <D.26376>;
      <D.26375>:
      inst->dreg = srcReg;
      D.26371 = ainfo->offparm;
      D.26372 = (long int) D.26371;
      inst->data.op[0].const_val = D.26372;
      goto <D.26377>;
      <D.26376>:
      D.26378 = mono_alloc_preg (cfg);
      dReg = (int) D.26378;
      {
        struct MonoInst * inst;

        D.26180 = cfg->mempool;
        inst = mono_mempool_alloc (D.26180, 80);
        inst->data.op[1].const_val = 0;
        D.26379 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26379;
        inst->prev = 0B;
        D.26380 = inst->prev;
        inst->next = D.26380;
        inst->opcode = 429;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26381 = inst->sreg3;
        inst->sreg2 = D.26381;
        D.26382 = inst->sreg2;
        inst->sreg1 = D.26382;
        D.26185 = cfg->ip;
        inst->cil_code = D.26185;
        inst->dreg = dReg;
        inst->sreg1 = srcReg;
        D.26371 = ainfo->offparm;
        D.26383 = (long int) D.26371;
        inst->data.op[1].const_val = D.26383;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        if (D.26187 != 0B) goto <D.26384>; else goto <D.26385>;
        <D.26384>:
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        D.26187->next = inst;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        inst->prev = D.26187;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        goto <D.26386>;
        <D.26385>:
        D.26186 = cfg->cbb;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        D.26187 = D.26186->last_ins;
        D.26186->code = D.26187;
        <D.26386>:
      }
      inst->dreg = dReg;
      inst->data.op[0].const_val = 0;
      <D.26377>:
      if (1 != 0) goto <D.26387>; else goto <D.26388>;
      <D.26387>:
      D.26195 = src->dreg;
      inst->sreg1 = D.26195;
      inst->data.op[1].const_val = 0;
      goto <D.26389>;
      <D.26388>:
      D.26390 = mono_alloc_preg (cfg);
      sReg = (int) D.26390;
      {
        struct MonoInst * inst;

        D.26180 = cfg->mempool;
        inst = mono_mempool_alloc (D.26180, 80);
        inst->data.op[1].const_val = 0;
        D.26391 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26391;
        inst->prev = 0B;
        D.26392 = inst->prev;
        inst->next = D.26392;
        inst->opcode = 429;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26393 = inst->sreg3;
        inst->sreg2 = D.26393;
        D.26394 = inst->sreg2;
        inst->sreg1 = D.26394;
        D.26185 = cfg->ip;
        inst->cil_code = D.26185;
        inst->dreg = sReg;
        D.26195 = src->dreg;
        inst->sreg1 = D.26195;
        inst->data.op[1].const_val = 0;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        if (D.26187 != 0B) goto <D.26395>; else goto <D.26396>;
        <D.26395>:
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        D.26187->next = inst;
        D.26186 = cfg->cbb;
        D.26187 = D.26186->last_ins;
        inst->prev = D.26187;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        goto <D.26397>;
        <D.26396>:
        D.26186 = cfg->cbb;
        D.26186 = cfg->cbb;
        D.26186->last_ins = inst;
        D.26187 = D.26186->last_ins;
        D.26186->code = D.26187;
        <D.26397>:
      }
      inst->sreg1 = sReg;
      inst->data.op[1].const_val = 0;
      <D.26389>:
      <D.26373>:
      inst->opcode = 846;
      inst->backend.size = size;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26398>; else goto <D.26399>;
      <D.26398>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = inst;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      inst->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      goto <D.26400>;
      <D.26399>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = inst;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26400>:
    }
    D.26401 = BIT_FIELD_REF <*cfg, 64, 5632>;
    D.26402 = D.26401 & 72057594037927936;
    if (D.26402 != 0) goto <D.26403>; else goto <D.26404>;
    <D.26403>:
    {
      struct MonoInst * def;

      D.26180 = cfg->mempool;
      def = mono_mempool_alloc (D.26180, 80);
      def->data.op[1].const_val = 0;
      D.26405 = def->data.op[1].const_val;
      def->data.op[0].const_val = D.26405;
      def->prev = 0B;
      D.26406 = def->prev;
      def->next = D.26406;
      def->opcode = 841;
      def->flags = 0;
      def->type = 0;
      def->dreg = -1;
      def->sreg3 = -1;
      D.26407 = def->sreg3;
      def->sreg2 = D.26407;
      D.26408 = def->sreg2;
      def->sreg1 = D.26408;
      D.26185 = cfg->ip;
      def->cil_code = D.26185;
      D.26236 = ainfo->offset;
      D.26237 = (long int) D.26236;
      def->data.op[0].const_val = D.26237;
      D.26409 = ins->klass;
      D.26410 = &D.26409->byval_arg;
      def->data.op[1].vtype = D.26410;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      if (D.26187 != 0B) goto <D.26411>; else goto <D.26412>;
      <D.26411>:
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      D.26187->next = def;
      D.26186 = cfg->cbb;
      D.26187 = D.26186->last_ins;
      def->prev = D.26187;
      D.26186 = cfg->cbb;
      D.26186->last_ins = def;
      goto <D.26413>;
      <D.26412>:
      D.26186 = cfg->cbb;
      D.26186 = cfg->cbb;
      D.26186->last_ins = def;
      D.26187 = D.26186->last_ins;
      D.26186->code = D.26187;
      <D.26413>:
    }
    <D.26404>:
  }
  <D.26355>:
  <D.26321>:
}


__attribute__((visibility ("hidden")))
mono_arch_emit_setret (struct MonoCompile * cfg, struct MonoMethod * method, struct MonoInst * val)
{
  struct MonoGenericSharingContext * D.26415;
  struct MonoMethodSignature * D.26416;
  struct MonoType * D.26417;
  long unsigned int D.26418;
  long unsigned int D.26419;
  unsigned char D.26422;
  struct MonoMemPool * D.26425;
  long int D.26426;
  struct MonoInst * D.26427;
  int D.26428;
  int D.26429;
  const unsigned char * D.26430;
  int D.26431;
  struct MonoBasicBlock * D.26432;
  struct MonoInst * D.26433;
  long int D.26439;
  struct MonoInst * D.26440;
  int D.26441;
  int D.26442;
  long int D.26446;
  struct MonoInst * D.26447;
  int D.26448;
  int D.26449;
  struct MonoInst * D.26450;
  int D.26451;
  struct MonoType * ret;

  D.26415 = cfg->generic_sharing_context;
  D.26416 = mono_method_signature (method);
  D.26417 = D.26416->ret;
  ret = mini_type_get_underlying_type (D.26415, D.26417);
  D.26418 = BIT_FIELD_REF <*ret, 64, 64>;
  D.26419 = D.26418 & 8589934592;
  if (D.26419 == 0) goto <D.26420>; else goto <D.26421>;
  <D.26420>:
  D.26422 = ret->type;
  if (D.26422 == 12) goto <D.26423>; else goto <D.26424>;
  <D.26423>:
  {
    struct MonoInst * inst;

    D.26425 = cfg->mempool;
    inst = mono_mempool_alloc (D.26425, 80);
    inst->data.op[1].const_val = 0;
    D.26426 = inst->data.op[1].const_val;
    inst->data.op[0].const_val = D.26426;
    inst->prev = 0B;
    D.26427 = inst->prev;
    inst->next = D.26427;
    inst->opcode = 847;
    inst->flags = 0;
    inst->type = 0;
    inst->dreg = -1;
    inst->sreg3 = -1;
    D.26428 = inst->sreg3;
    inst->sreg2 = D.26428;
    D.26429 = inst->sreg2;
    inst->sreg1 = D.26429;
    D.26430 = cfg->ip;
    inst->cil_code = D.26430;
    inst->dreg = 0;
    D.26431 = val->dreg;
    inst->sreg1 = D.26431;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    if (D.26433 != 0B) goto <D.26434>; else goto <D.26435>;
    <D.26434>:
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    D.26433->next = inst;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    inst->prev = D.26433;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    goto <D.26436>;
    <D.26435>:
    D.26432 = cfg->cbb;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    D.26433 = D.26432->last_ins;
    D.26432->code = D.26433;
    <D.26436>:
  }
  return;
  <D.26424>:
  D.26422 = ret->type;
  if (D.26422 == 13) goto <D.26437>; else goto <D.26438>;
  <D.26437>:
  {
    struct MonoInst * inst;

    D.26425 = cfg->mempool;
    inst = mono_mempool_alloc (D.26425, 80);
    inst->data.op[1].const_val = 0;
    D.26439 = inst->data.op[1].const_val;
    inst->data.op[0].const_val = D.26439;
    inst->prev = 0B;
    D.26440 = inst->prev;
    inst->next = D.26440;
    inst->opcode = 426;
    inst->flags = 0;
    inst->type = 0;
    inst->dreg = -1;
    inst->sreg3 = -1;
    D.26441 = inst->sreg3;
    inst->sreg2 = D.26441;
    D.26442 = inst->sreg2;
    inst->sreg1 = D.26442;
    D.26430 = cfg->ip;
    inst->cil_code = D.26430;
    inst->dreg = 0;
    D.26431 = val->dreg;
    inst->sreg1 = D.26431;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    if (D.26433 != 0B) goto <D.26443>; else goto <D.26444>;
    <D.26443>:
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    D.26433->next = inst;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    inst->prev = D.26433;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    goto <D.26445>;
    <D.26444>:
    D.26432 = cfg->cbb;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    D.26433 = D.26432->last_ins;
    D.26432->code = D.26433;
    <D.26445>:
  }
  return;
  <D.26438>:
  <D.26421>:
  {
    struct MonoInst * inst;

    D.26425 = cfg->mempool;
    inst = mono_mempool_alloc (D.26425, 80);
    inst->data.op[1].const_val = 0;
    D.26446 = inst->data.op[1].const_val;
    inst->data.op[0].const_val = D.26446;
    inst->prev = 0B;
    D.26447 = inst->prev;
    inst->next = D.26447;
    inst->opcode = 424;
    inst->flags = 0;
    inst->type = 0;
    inst->dreg = -1;
    inst->sreg3 = -1;
    D.26448 = inst->sreg3;
    inst->sreg2 = D.26448;
    D.26449 = inst->sreg2;
    inst->sreg1 = D.26449;
    D.26430 = cfg->ip;
    inst->cil_code = D.26430;
    D.26450 = cfg->ret;
    D.26451 = D.26450->dreg;
    inst->dreg = D.26451;
    D.26431 = val->dreg;
    inst->sreg1 = D.26431;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    if (D.26433 != 0B) goto <D.26452>; else goto <D.26453>;
    <D.26452>:
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    D.26433->next = inst;
    D.26432 = cfg->cbb;
    D.26433 = D.26432->last_ins;
    inst->prev = D.26433;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    goto <D.26454>;
    <D.26453>:
    D.26432 = cfg->cbb;
    D.26432 = cfg->cbb;
    D.26432->last_ins = inst;
    D.26433 = D.26432->last_ins;
    D.26432->code = D.26433;
    <D.26454>:
  }
}


__attribute__((visibility ("hidden")))
mono_arch_instrument_mem_needs (struct MonoMethod * method, int * stack, int * code)
{
  *stack = 0;
  *code = 50;
}


__attribute__((visibility ("hidden")))
mono_arch_instrument_prolog (struct MonoCompile * cfg, void * func, void * p, gboolean enable_arguments)
{
  unsigned int D.26456;
  unsigned int D.26457;
  struct MonoMethod * D.26458;
  long unsigned int D.26459;
  long unsigned int D.26460;
  unsigned int parmOffset.31;
  unsigned int D.26464;
  unsigned int D.26465;
  int mono_hwcap_s390x_has_ld.32;
  int D.26471;
  int D.26472;
  unsigned int D.26473;
  int D.26474;
  int D.26475;
  int D.26476;
  int D.26477;
  int D.26478;
  int D.26479;
  int D.26480;
  int D.26481;
  unsigned int D.26482;
  int D.26485;
  int D.26486;
  int D.26487;
  int D.26488;
  int D.26489;
  int D.26490;
  int D.26491;
  int D.26492;
  unsigned int D.26493;
  unsigned int fpOffset.33;
  unsigned int D.26495;
  unsigned int D.26496;
  unsigned int D.26497;
  long unsigned int D.26498;
  long unsigned int D.26499;
  long unsigned int D.26500;
  unsigned int D.26501;
  unsigned int D.26502;
  unsigned int D.26503;
  unsigned int D.26504;
  unsigned int D.26505;
  unsigned int D.26506;
  unsigned int D.26507;
  unsigned int D.26508;
  long unsigned int D.26509;
  long unsigned int D.26510;
  unsigned int D.26511;
  unsigned int D.26512;
  unsigned int D.26513;
  unsigned int D.26514;
  unsigned int D.26515;
  unsigned int D.26516;
  unsigned int D.26517;
  unsigned int D.26518;
  long unsigned int D.26519;
  long unsigned int D.26520;
  unsigned int D.26521;
  unsigned int D.26522;
  unsigned int D.26523;
  unsigned int D.26524;
  unsigned int D.26525;
  int D.26527;
  int D.26528;
  int D.26529;
  int D.26530;
  unsigned int D.26531;
  unsigned int D.26532;
  unsigned int D.26533;
  unsigned int D.26534;
  unsigned int D.26535;
  unsigned int D.26536;
  unsigned int D.26537;
  unsigned int D.26538;
  unsigned int D.26539;
  unsigned int D.26540;
  unsigned int D.26541;
  long unsigned int D.26542;
  long unsigned int func.34;
  int D.26546;
  unsigned int D.26547;
  int D.26549;
  int D.26550;
  int D.26551;
  unsigned int D.26552;
  unsigned int D.26553;
  unsigned int D.26554;
  unsigned int D.26557;
  unsigned int D.26558;
  unsigned int D.26559;
  int D.26560;
  unsigned int D.26561;
  unsigned int D.26563;
  unsigned int D.26564;
  unsigned int D.26565;
  int D.26566;
  int D.26567;
  unsigned int D.26568;
  int D.26569;
  unsigned int D.26570;
  void * D.26571;
  guchar * code;
  int parmOffset;
  int fpOffset;
  int baseReg;

  code = p;
  D.26456 = cfg->stack_usage;
  D.26457 = D.26456 + 4294967224;
  parmOffset = (int) D.26457;
  D.26458 = cfg->method;
  D.26459 = BIT_FIELD_REF <*D.26458, 64, 256>;
  D.26460 = D.26459 & 36028797018963968;
  if (D.26460 != 0) goto <D.26461>; else goto <D.26462>;
  <D.26461>:
  parmOffset.31 = (unsigned int) parmOffset;
  D.26464 = parmOffset.31 + 4294966952;
  parmOffset = (int) D.26464;
  <D.26462>:
  parmOffset.31 = (unsigned int) parmOffset;
  D.26465 = parmOffset.31 + 40;
  fpOffset = (int) D.26465;
  mono_hwcap_s390x_has_ld.32 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.32 == 0) goto <D.26469>; else goto <D.26466>;
  <D.26469>:
  if (fpOffset > 4096) goto <D.26470>; else goto <D.26466>;
  <D.26470>:
  MEM[(guint32 *)code] = 3104047311;
  code = code + 4;
  baseReg = 12;
  goto <D.24608>;
  <D.24607>:
  D.26471 = baseReg << 20;
  D.26472 = D.26471 | -1492447232;
  D.26473 = (unsigned int) D.26472;
  MEM[(guint32 *)code] = D.26473;
  code = code + 4;
  fpOffset = fpOffset + -4096;
  parmOffset = parmOffset + -4096;
  <D.24608>:
  if (fpOffset > 4096) goto <D.24607>; else goto <D.24609>;
  <D.24609>:
  goto <D.26467>;
  <D.26466>:
  baseReg = 15;
  <D.26467>:
  MEM[(guint16 *)code] = 60198;
  code = code + 2;
  D.26474 = parmOffset << 16;
  D.26475 = D.26474 & 268369920;
  D.26476 = D.26475 | -268435456;
  D.26477 = parmOffset >> 12;
  D.26478 = D.26477 << 8;
  D.26479 = D.26478 & 65535;
  D.26480 = D.26476 | D.26479;
  D.26481 = D.26480 | 36;
  D.26482 = (unsigned int) D.26481;
  MEM[(guint32 *)code] = D.26482;
  code = code + 4;
  mono_hwcap_s390x_has_ld.32 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.32 != 0) goto <D.26483>; else goto <D.26484>;
  <D.26483>:
  MEM[(guint16 *)code] = 60672;
  code = code + 2;
  D.26485 = fpOffset << 16;
  D.26486 = D.26485 & 268369920;
  D.26487 = D.26486 | -268435456;
  D.26488 = fpOffset >> 12;
  D.26489 = D.26488 << 8;
  D.26490 = D.26489 & 65535;
  D.26491 = D.26487 | D.26490;
  D.26492 = D.26491 | 103;
  D.26493 = (unsigned int) D.26492;
  MEM[(guint32 *)code] = D.26493;
  code = code + 4;
  MEM[(guint16 *)code] = 60704;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26495 = fpOffset.33 + 8;
  D.26496 = D.26495 << 16;
  D.26497 = D.26496 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26499 = D.26498 + 8;
  D.26500 = D.26499 >> 12;
  D.26501 = (unsigned int) D.26500;
  D.26502 = D.26501 << 8;
  D.26503 = D.26502 & 65535;
  D.26504 = D.26497 | D.26503;
  D.26505 = D.26504 | 4026531943;
  MEM[(guint32 *)code] = D.26505;
  code = code + 4;
  MEM[(guint16 *)code] = 60736;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26506 = fpOffset.33 + 16;
  D.26507 = D.26506 << 16;
  D.26508 = D.26507 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26509 = D.26498 + 16;
  D.26510 = D.26509 >> 12;
  D.26511 = (unsigned int) D.26510;
  D.26512 = D.26511 << 8;
  D.26513 = D.26512 & 65535;
  D.26514 = D.26508 | D.26513;
  D.26515 = D.26514 | 4026531943;
  MEM[(guint32 *)code] = D.26515;
  code = code + 4;
  MEM[(guint16 *)code] = 60768;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26516 = fpOffset.33 + 24;
  D.26517 = D.26516 << 16;
  D.26518 = D.26517 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26519 = D.26498 + 24;
  D.26520 = D.26519 >> 12;
  D.26521 = (unsigned int) D.26520;
  D.26522 = D.26521 << 8;
  D.26523 = D.26522 & 65535;
  D.26524 = D.26518 | D.26523;
  D.26525 = D.26524 | 4026531943;
  MEM[(guint32 *)code] = D.26525;
  code = code + 4;
  goto <D.26526>;
  <D.26484>:
  D.26527 = baseReg << 12;
  D.26528 = D.26527 | 1610612736;
  D.26529 = fpOffset & 4095;
  D.26530 = D.26528 | D.26529;
  D.26531 = (unsigned int) D.26530;
  MEM[(guint32 *)code] = D.26531;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26495 = fpOffset.33 + 8;
  D.26533 = D.26495 & 4095;
  D.26534 = D.26532 | D.26533;
  D.26535 = D.26534 | 1612709888;
  MEM[(guint32 *)code] = D.26535;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26506 = fpOffset.33 + 16;
  D.26536 = D.26506 & 4095;
  D.26537 = D.26532 | D.26536;
  D.26538 = D.26537 | 1614807040;
  MEM[(guint32 *)code] = D.26538;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26516 = fpOffset.33 + 24;
  D.26539 = D.26516 & 4095;
  D.26540 = D.26532 | D.26539;
  D.26541 = D.26540 | 1616904192;
  MEM[(guint32 *)code] = D.26541;
  code = code + 4;
  <D.26526>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785866;
  code = code + 4;
  D.26458 = cfg->method;
  D.26542 = (long unsigned int) D.26458;
  MEM[(guint64 *)code] = D.26542;
  code = code + 8;
  func.34 = (long unsigned int) func;
  MEM[(guint64 *)code] = func.34;
  code = code + 8;
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  mono_hwcap_s390x_has_ld.32 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.32 != 0) goto <D.26544>; else goto <D.26545>;
  <D.26544>:
  MEM[(guint16 *)code] = 58160;
  code = code + 2;
  D.26474 = parmOffset << 16;
  D.26475 = D.26474 & 268369920;
  D.26476 = D.26475 | -268435456;
  D.26477 = parmOffset >> 12;
  D.26478 = D.26477 << 8;
  D.26479 = D.26478 & 65535;
  D.26480 = D.26476 | D.26479;
  D.26546 = D.26480 | 113;
  D.26547 = (unsigned int) D.26546;
  MEM[(guint32 *)code] = D.26547;
  code = code + 4;
  goto <D.26548>;
  <D.26545>:
  D.26527 = baseReg << 12;
  D.26549 = D.26527 | 1093664768;
  D.26550 = parmOffset & 4095;
  D.26551 = D.26549 | D.26550;
  D.26552 = (unsigned int) D.26551;
  MEM[(guint32 *)code] = D.26552;
  code = code + 4;
  <D.26548>:
  MEM[(guint32 *)code] = 3104047183;
  code = code + 4;
  D.26456 = cfg->stack_usage;
  D.26553 = D.26456 & 65535;
  D.26554 = D.26553 | 2806710272;
  MEM[(guint32 *)code] = D.26554;
  code = code + 4;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3490447364;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  mono_hwcap_s390x_has_ld.32 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.32 != 0) goto <D.26555>; else goto <D.26556>;
  <D.26555>:
  MEM[(guint16 *)code] = 60768;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26516 = fpOffset.33 + 24;
  D.26517 = D.26516 << 16;
  D.26518 = D.26517 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26519 = D.26498 + 24;
  D.26520 = D.26519 >> 12;
  D.26521 = (unsigned int) D.26520;
  D.26522 = D.26521 << 8;
  D.26523 = D.26522 & 65535;
  D.26524 = D.26518 | D.26523;
  D.26557 = D.26524 | 4026531941;
  MEM[(guint32 *)code] = D.26557;
  code = code + 4;
  MEM[(guint16 *)code] = 60736;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26506 = fpOffset.33 + 16;
  D.26507 = D.26506 << 16;
  D.26508 = D.26507 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26509 = D.26498 + 16;
  D.26510 = D.26509 >> 12;
  D.26511 = (unsigned int) D.26510;
  D.26512 = D.26511 << 8;
  D.26513 = D.26512 & 65535;
  D.26514 = D.26508 | D.26513;
  D.26558 = D.26514 | 4026531941;
  MEM[(guint32 *)code] = D.26558;
  code = code + 4;
  MEM[(guint16 *)code] = 60704;
  code = code + 2;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26495 = fpOffset.33 + 8;
  D.26496 = D.26495 << 16;
  D.26497 = D.26496 & 268369920;
  D.26498 = (long unsigned int) fpOffset;
  D.26499 = D.26498 + 8;
  D.26500 = D.26499 >> 12;
  D.26501 = (unsigned int) D.26500;
  D.26502 = D.26501 << 8;
  D.26503 = D.26502 & 65535;
  D.26504 = D.26497 | D.26503;
  D.26559 = D.26504 | 4026531941;
  MEM[(guint32 *)code] = D.26559;
  code = code + 4;
  MEM[(guint16 *)code] = 60672;
  code = code + 2;
  D.26485 = fpOffset << 16;
  D.26486 = D.26485 & 268369920;
  D.26487 = D.26486 | -268435456;
  D.26488 = fpOffset >> 12;
  D.26489 = D.26488 << 8;
  D.26490 = D.26489 & 65535;
  D.26491 = D.26487 | D.26490;
  D.26560 = D.26491 | 101;
  D.26561 = (unsigned int) D.26560;
  MEM[(guint32 *)code] = D.26561;
  code = code + 4;
  goto <D.26562>;
  <D.26556>:
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26516 = fpOffset.33 + 24;
  D.26539 = D.26516 & 4095;
  D.26540 = D.26532 | D.26539;
  D.26563 = D.26540 | 1751121920;
  MEM[(guint32 *)code] = D.26563;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26506 = fpOffset.33 + 16;
  D.26536 = D.26506 & 4095;
  D.26537 = D.26532 | D.26536;
  D.26564 = D.26537 | 1749024768;
  MEM[(guint32 *)code] = D.26564;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26532 = (unsigned int) D.26527;
  fpOffset.33 = (unsigned int) fpOffset;
  D.26495 = fpOffset.33 + 8;
  D.26533 = D.26495 & 4095;
  D.26534 = D.26532 | D.26533;
  D.26565 = D.26534 | 1746927616;
  MEM[(guint32 *)code] = D.26565;
  code = code + 4;
  D.26527 = baseReg << 12;
  D.26566 = D.26527 | 1744830464;
  D.26529 = fpOffset & 4095;
  D.26567 = D.26566 | D.26529;
  D.26568 = (unsigned int) D.26567;
  MEM[(guint32 *)code] = D.26568;
  code = code + 4;
  <D.26562>:
  MEM[(guint16 *)code] = 60198;
  code = code + 2;
  D.26474 = parmOffset << 16;
  D.26475 = D.26474 & 268369920;
  D.26476 = D.26475 | -268435456;
  D.26477 = parmOffset >> 12;
  D.26478 = D.26477 << 8;
  D.26479 = D.26478 & 65535;
  D.26480 = D.26476 | D.26479;
  D.26569 = D.26480 | 4;
  D.26570 = (unsigned int) D.26569;
  MEM[(guint32 *)code] = D.26570;
  code = code + 4;
  D.26571 = code;
  return D.26571;
}


__attribute__((visibility ("hidden")))
mono_arch_instrument_epilog_full (struct MonoCompile * cfg, void * func, void * p, gboolean enable_arguments, gboolean preserve_argument_registers)
{
  struct MonoGenericSharingContext * D.26573;
  struct MonoMethodSignature * D.26574;
  struct MonoType * D.26575;
  struct MonoType * D.26576;
  unsigned char D.26577;
  long int code.35;
  unsigned char * D.26579;
  long int D.26580;
  long int D.26581;
  unsigned int D.26582;
  unsigned int D.26583;
  unsigned int offset.36;
  unsigned int D.26587;
  long unsigned int D.26588;
  void * D.26589;
  sizetype D.26590;
  unsigned int D.26591;
  unsigned int D.26592;
  long unsigned int D.26593;
  long unsigned int D.26594;
  unsigned int saveOffset.37;
  unsigned int D.26598;
  const char * D.26601;
  int D.26602;
  struct MonoClass * D.26604;
  struct MonoClass * D.26605;
  struct MonoMethodSignature * D.26607;
  struct MonoType * D.26608;
  struct MonoClass * D.26609;
  long unsigned int D.26610;
  long unsigned int D.26611;
  struct MonoMethodSignature * D.26614;
  struct MonoType * D.26615;
  struct MonoClass * D.26616;
  struct MonoType * D.26617;
  unsigned char D.26618;
  unsigned int D.26619;
  unsigned int D.26620;
  int D.26621;
  unsigned int D.26622;
  unsigned int D.26623;
  unsigned int D.26624;
  int D.26625;
  int D.26626;
  unsigned int D.26627;
  unsigned int D.26628;
  unsigned int D.26629;
  unsigned int D.26630;
  unsigned int D.26633;
  unsigned int saveOffset.38;
  unsigned int D.26635;
  unsigned int D.26636;
  unsigned int D.26637;
  unsigned int D.26642;
  unsigned int D.26643;
  unsigned int D.26644;
  unsigned int D.26645;
  unsigned int D.26646;
  unsigned int D.26647;
  unsigned int D.26648;
  unsigned int D.26649;
  unsigned int D.26650;
  unsigned int D.26651;
  struct MonoMethod * D.26652;
  long unsigned int D.26653;
  long unsigned int func.39;
  unsigned int D.26655;
  unsigned int D.26656;
  void * D.26657;
  guchar * code;
  int save_mode;
  int saveOffset;
  int offset;
  struct MonoMethod * method;
  int rtype;
  void handle_enum = <<< error >>>;

  code = p;
  save_mode = 0;
  method = cfg->method;
  D.26573 = cfg->generic_sharing_context;
  D.26574 = mono_method_signature (method);
  D.26575 = D.26574->ret;
  D.26576 = mini_type_get_underlying_type (D.26573, D.26575);
  D.26577 = D.26576->type;
  rtype = (int) D.26577;
  code.35 = (long int) code;
  D.26579 = cfg->native_code;
  D.26580 = (long int) D.26579;
  D.26581 = code.35 - D.26580;
  offset = (int) D.26581;
  D.26582 = cfg->code_size;
  D.26583 = D.26582 + 4294967168;
  offset.36 = (unsigned int) offset;
  if (D.26583 < offset.36) goto <D.26585>; else goto <D.26586>;
  <D.26585>:
  D.26582 = cfg->code_size;
  D.26587 = D.26582 * 2;
  cfg->code_size = D.26587;
  D.26579 = cfg->native_code;
  D.26582 = cfg->code_size;
  D.26588 = (long unsigned int) D.26582;
  D.26589 = monoeg_realloc (D.26579, D.26588);
  cfg->native_code = D.26589;
  D.26579 = cfg->native_code;
  D.26590 = (sizetype) offset;
  code = D.26579 + D.26590;
  <D.26586>:
  D.26591 = cfg->stack_usage;
  D.26592 = D.26591 + 4294967224;
  saveOffset = (int) D.26592;
  D.26593 = BIT_FIELD_REF <*method, 64, 256>;
  D.26594 = D.26593 & 36028797018963968;
  if (D.26594 != 0) goto <D.26595>; else goto <D.26596>;
  <D.26595>:
  saveOffset.37 = (unsigned int) saveOffset;
  D.26598 = saveOffset.37 + 4294966952;
  saveOffset = (int) D.26598;
  <D.26596>:
  handle_enum:
  switch (rtype) <default: <D.24631>, case 1: <D.24624>, case 10: <D.24626>, case 11: <D.24627>, case 12: <D.24628>, case 13: <D.24629>, case 17: <D.24630>>
  <D.24624>:
  D.26601 = method->name;
  D.26602 = strcmp (".ctor", D.26601);
  if (D.26602 != 0) goto <D.26603>; else goto <D.26599>;
  <D.26603>:
  D.26604 = method->klass;
  D.26605 = mono_defaults.string_class;
  if (D.26604 == D.26605) goto <D.26606>; else goto <D.26599>;
  <D.26606>:
  save_mode = 2;
  goto <D.26600>;
  <D.26599>:
  save_mode = 0;
  <D.26600>:
  goto <D.24625>;
  <D.24626>:
  <D.24627>:
  save_mode = 2;
  goto <D.24625>;
  <D.24628>:
  save_mode = 4;
  goto <D.24625>;
  <D.24629>:
  save_mode = 5;
  goto <D.24625>;
  <D.24630>:
  D.26607 = mono_method_signature (method);
  D.26608 = D.26607->ret;
  D.26609 = D.26608->data.klass;
  D.26610 = BIT_FIELD_REF <*D.26609, 64, 256>;
  D.26611 = D.26610 & 576460752303423488;
  if (D.26611 != 0) goto <D.26612>; else goto <D.26613>;
  <D.26612>:
  D.26614 = mono_method_signature (method);
  D.26615 = D.26614->ret;
  D.26616 = D.26615->data.klass;
  D.26617 = mono_class_enum_basetype (D.26616);
  D.26618 = D.26617->type;
  rtype = (int) D.26618;
  goto handle_enum;
  <D.26613>:
  save_mode = 1;
  goto <D.24625>;
  <D.24631>:
  save_mode = 2;
  goto <D.24625>;
  <D.24625>:
  switch (save_mode) <default: <D.24638>, case 0: <D.24637>, case 1: <D.24636>, case 2: <D.24632>, case 4: <D.24634>, case 5: <D.24635>>
  <D.24632>:
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  D.26619 = cfg->frame_reg;
  D.26620 = D.26619 << 28;
  D.26621 = saveOffset << 16;
  D.26622 = (unsigned int) D.26621;
  D.26623 = D.26622 & 268369920;
  D.26624 = D.26620 | D.26623;
  D.26625 = saveOffset >> 12;
  D.26626 = D.26625 << 8;
  D.26627 = (unsigned int) D.26626;
  D.26628 = D.26627 & 65535;
  D.26629 = D.26624 | D.26628;
  D.26630 = D.26629 | 36;
  MEM[(guint32 *)code] = D.26630;
  code = code + 4;
  if (enable_arguments != 0) goto <D.26631>; else goto <D.26632>;
  <D.26631>:
  MEM[(guint32 *)code] = 3104047154;
  code = code + 4;
  <D.26632>:
  goto <D.24633>;
  <D.24634>:
  D.26619 = cfg->frame_reg;
  D.26633 = D.26619 << 12;
  saveOffset.38 = (unsigned int) saveOffset;
  D.26635 = saveOffset.38 & 4095;
  D.26636 = D.26633 | D.26635;
  D.26637 = D.26636 | 1610612736;
  MEM[(guint32 *)code] = D.26637;
  code = code + 4;
  if (enable_arguments != 0) goto <D.26638>; else goto <D.26639>;
  <D.26638>:
  MEM[(guint32 *)code] = 3003383808;
  code = code + 4;
  <D.26639>:
  goto <D.24633>;
  <D.24635>:
  D.26619 = cfg->frame_reg;
  D.26633 = D.26619 << 12;
  saveOffset.38 = (unsigned int) saveOffset;
  D.26635 = saveOffset.38 & 4095;
  D.26636 = D.26633 | D.26635;
  D.26637 = D.26636 | 1610612736;
  MEM[(guint32 *)code] = D.26637;
  code = code + 4;
  goto <D.24633>;
  <D.24636>:
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  D.26619 = cfg->frame_reg;
  D.26620 = D.26619 << 28;
  D.26621 = saveOffset << 16;
  D.26622 = (unsigned int) D.26621;
  D.26623 = D.26622 & 268369920;
  D.26624 = D.26620 | D.26623;
  D.26625 = saveOffset >> 12;
  D.26626 = D.26625 << 8;
  D.26627 = (unsigned int) D.26626;
  D.26628 = D.26627 & 65535;
  D.26629 = D.26624 | D.26628;
  D.26630 = D.26629 | 36;
  MEM[(guint32 *)code] = D.26630;
  code = code + 4;
  if (enable_arguments != 0) goto <D.26640>; else goto <D.26641>;
  <D.26640>:
  MEM[(guint16 *)code] = 58160;
  code = code + 2;
  D.26619 = cfg->frame_reg;
  D.26620 = D.26619 << 28;
  D.26642 = cfg->param_area;
  D.26643 = D.26642 + 160;
  D.26644 = D.26643 << 16;
  D.26645 = D.26644 & 268369920;
  D.26646 = D.26620 | D.26645;
  D.26642 = cfg->param_area;
  D.26643 = D.26642 + 160;
  D.26647 = D.26643 >> 12;
  D.26648 = D.26647 << 8;
  D.26649 = D.26648 & 65535;
  D.26650 = D.26646 | D.26649;
  D.26651 = D.26650 | 4;
  MEM[(guint32 *)code] = D.26651;
  code = code + 4;
  <D.26641>:
  goto <D.24633>;
  <D.24637>:
  <D.24638>:
  goto <D.24633>;
  <D.24633>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785866;
  code = code + 4;
  D.26652 = cfg->method;
  D.26653 = (long unsigned int) D.26652;
  MEM[(guint64 *)code] = D.26653;
  code = code + 8;
  func.39 = (long unsigned int) func;
  MEM[(guint64 *)code] = func.39;
  code = code + 8;
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3490447364;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  switch (save_mode) <default: <D.24645>, case 0: <D.24644>, case 1: <D.24643>, case 2: <D.24639>, case 4: <D.24641>, case 5: <D.24642>>
  <D.24639>:
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  D.26619 = cfg->frame_reg;
  D.26620 = D.26619 << 28;
  D.26621 = saveOffset << 16;
  D.26622 = (unsigned int) D.26621;
  D.26623 = D.26622 & 268369920;
  D.26624 = D.26620 | D.26623;
  D.26625 = saveOffset >> 12;
  D.26626 = D.26625 << 8;
  D.26627 = (unsigned int) D.26626;
  D.26628 = D.26627 & 65535;
  D.26629 = D.26624 | D.26628;
  D.26655 = D.26629 | 4;
  MEM[(guint32 *)code] = D.26655;
  code = code + 4;
  goto <D.24640>;
  <D.24641>:
  <D.24642>:
  D.26619 = cfg->frame_reg;
  D.26633 = D.26619 << 12;
  saveOffset.38 = (unsigned int) saveOffset;
  D.26635 = saveOffset.38 & 4095;
  D.26636 = D.26633 | D.26635;
  D.26656 = D.26636 | 1744830464;
  MEM[(guint32 *)code] = D.26656;
  code = code + 4;
  goto <D.24640>;
  <D.24643>:
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  D.26619 = cfg->frame_reg;
  D.26620 = D.26619 << 28;
  D.26621 = saveOffset << 16;
  D.26622 = (unsigned int) D.26621;
  D.26623 = D.26622 & 268369920;
  D.26624 = D.26620 | D.26623;
  D.26625 = saveOffset >> 12;
  D.26626 = D.26625 << 8;
  D.26627 = (unsigned int) D.26626;
  D.26628 = D.26627 & 65535;
  D.26629 = D.26624 | D.26628;
  D.26655 = D.26629 | 4;
  MEM[(guint32 *)code] = D.26655;
  code = code + 4;
  goto <D.24640>;
  <D.24644>:
  <D.24645>:
  goto <D.24640>;
  <D.24640>:
  D.26657 = code;
  return D.26657;
}


__attribute__((__gnu_inline__, nothrow, leaf, pure))
strcmp (const char * __s1, const char * __s2)
{
  int iftmp.40;
  int iftmp.41;
  int D.26669;
  char * __p1;
  char * __p2;
  int __ret;

  __p1 = __s1;
  __p2 = __s2;
  __asm__ __volatile__("   slr   0,0
0: clst  %1,%2
   jo    0b
   ipm   %0
   srl   %0,28" : "=d" __ret, "=&a" __p1, "=&a" __p2 : "1" __p1, "2" __p2 : "0", "memory", "cc");
  if (__ret != 0) goto <D.26662>; else goto <D.26663>;
  <D.26662>:
  if (__ret == 1) goto <D.26665>; else goto <D.26666>;
  <D.26665>:
  iftmp.41 = -1;
  goto <D.26667>;
  <D.26666>:
  iftmp.41 = 1;
  <D.26667>:
  iftmp.40 = iftmp.41;
  goto <D.26668>;
  <D.26663>:
  iftmp.40 = 0;
  <D.26668>:
  __ret = iftmp.40;
  D.26669 = __ret;
  return D.26669;
}


__attribute__((visibility ("hidden")))
mono_arch_peephole_pass_1 (struct MonoCompile * cfg, struct MonoBasicBlock * bb)
{

}


__attribute__((visibility ("hidden")))
mono_arch_peephole_pass_2 (struct MonoCompile * cfg, struct MonoBasicBlock * bb)
{
  struct MonoInst * iftmp.42;
  struct MonoInst * iftmp.43;
  struct MonoInst * ins;
  struct MonoInst * n;

  ins = bb->code;
  if (ins != 0B) goto <D.26672>; else goto <D.26673>;
  <D.26672>:
  iftmp.42 = ins->next;
  goto <D.26674>;
  <D.26673>:
  iftmp.42 = 0B;
  <D.26674>:
  n = iftmp.42;
  goto <D.24657>;
  <D.24656>:
  mono_peephole_ins (bb, ins);
  ins = n;
  if (ins != 0B) goto <D.26676>; else goto <D.26677>;
  <D.26676>:
  iftmp.43 = ins->next;
  goto <D.26678>;
  <D.26677>:
  iftmp.43 = 0B;
  <D.26678>:
  n = iftmp.43;
  <D.24657>:
  if (ins != 0B) goto <D.24656>; else goto <D.24658>;
  <D.24658>:
}


__attribute__((visibility ("hidden")))
mono_arch_lowering_pass (struct MonoCompile * cfg, struct MonoBasicBlock * bb)
{
  struct MonoInst * iftmp.44;
  short unsigned int D.26683;
  int D.26684;
  long int D.26685;
  unsigned long D.26686;
  unsigned long D.26687;
  struct MonoInst * iftmp.45;
  unsigned int D.26694;
  struct MonoInst * ins;
  struct MonoInst * next;

  ins = bb->code;
  if (ins != 0B) goto <D.26680>; else goto <D.26681>;
  <D.26680>:
  iftmp.44 = ins->next;
  goto <D.26682>;
  <D.26681>:
  iftmp.44 = 0B;
  <D.26682>:
  next = iftmp.44;
  goto <D.24679>;
  <D.24678>:
  D.26683 = ins->opcode;
  D.26684 = (int) D.26683;
  switch (D.26684) <default: <D.24677>, case 339: <D.24674>, case 432: <D.24665>, case 434: <D.24666>, case 538: <D.24676>, case 541: <D.24671>, case 542: <D.24672>, case 543: <D.24673>, case 628: <D.24667>, case 629: <D.24669>, case 630: <D.24668>, case 631: <D.24670>>
  <D.24665>:
  <D.24666>:
  <D.24667>:
  <D.24668>:
  <D.24669>:
  <D.24670>:
  <D.24671>:
  <D.24672>:
  <D.24673>:
  <D.24674>:
  mono_decompose_op_imm (cfg, bb, ins);
  goto <D.24675>;
  <D.24676>:
  D.26685 = ins->data.op[1].const_val;
  D.26686 = (unsigned long) D.26685;
  D.26687 = D.26686 + 32768;
  if (D.26687 > 65535) goto <D.26688>; else goto <D.26689>;
  <D.26688>:
  mono_decompose_op_imm (cfg, bb, ins);
  <D.26689>:
  goto <D.24675>;
  <D.24677>:
  goto <D.24675>;
  <D.24675>:
  ins = next;
  if (ins != 0B) goto <D.26691>; else goto <D.26692>;
  <D.26691>:
  iftmp.45 = ins->next;
  goto <D.26693>;
  <D.26692>:
  iftmp.45 = 0B;
  <D.26693>:
  next = iftmp.45;
  <D.24679>:
  if (ins != 0B) goto <D.24678>; else goto <D.24680>;
  <D.24680>:
  D.26694 = cfg->next_vreg;
  bb->max_vreg = D.26694;
}


__attribute__((visibility ("hidden")))
mono_arch_output_basic_block (struct MonoCompile * cfg, struct MonoBasicBlock * bb)
{
  unsigned char * D.26696;
  unsigned int D.26697;
  sizetype D.26698;
  unsigned int D.26699;
  int D.26702;
  int D.26703;
  unsigned int D.26704;
  unsigned int D.26705;
  long int code.46;
  long int D.26709;
  long int D.26710;
  short unsigned int D.26711;
  int D.26712;
  int D.26713;
  short unsigned int D.26714;
  sizetype D.26715;
  sizetype D.26716;
  guint8 * D.26717;
  unsigned char D.26718;
  unsigned int D.26719;
  unsigned int max_len.47;
  unsigned int D.26721;
  unsigned int D.26722;
  unsigned int D.26725;
  long unsigned int D.26726;
  void * D.26727;
  sizetype D.26728;
  long int D.26729;
  signed int D.26730;
  signed int D.26731;
  signed int D.26732;
  unsigned int D.26733;
  int mono_hwcap_s390x_has_ld.48;
  long int D.26737;
  unsigned long D.26738;
  unsigned long D.26739;
  int D.26742;
  int D.26743;
  long int D.26744;
  signed int D.26745;
  signed int D.26746;
  signed int D.26747;
  long int D.26748;
  long int D.26749;
  signed int D.26750;
  signed int D.26751;
  signed int D.26752;
  signed int D.26753;
  unsigned int D.26754;
  long unsigned int D.26756;
  int D.26757;
  int D.26758;
  unsigned int D.26759;
  int D.26763;
  signed int D.26764;
  signed int D.26765;
  signed int D.26766;
  unsigned int D.26767;
  signed int D.26773;
  unsigned int D.26774;
  int D.26776;
  unsigned int D.26777;
  int D.26781;
  signed int D.26782;
  unsigned int D.26783;
  unsigned long D.26785;
  unsigned long D.26786;
  long unsigned int D.26790;
  signed int D.26795;
  unsigned int D.26796;
  int D.26798;
  unsigned int D.26799;
  int D.26803;
  signed int D.26804;
  unsigned int D.26805;
  signed int D.26814;
  unsigned int D.26815;
  int D.26817;
  unsigned int D.26818;
  int D.26827;
  int D.26828;
  signed short D.26829;
  signed short D.26830;
  short unsigned int D.26831;
  int D.26833;
  int D.26834;
  int D.26835;
  unsigned int D.26836;
  int D.26840;
  int D.26841;
  signed int D.26842;
  unsigned int D.26843;
  int D.26850;
  int D.26851;
  unsigned int D.26852;
  int D.26856;
  int D.26857;
  signed int D.26858;
  unsigned int D.26859;
  int D.26866;
  int D.26867;
  unsigned int D.26868;
  int D.26872;
  int D.26873;
  signed int D.26874;
  unsigned int D.26875;
  signed short D.26882;
  short unsigned int D.26883;
  int D.26892;
  signed short D.26893;
  signed short D.26894;
  short unsigned int D.26895;
  int D.26896;
  signed int D.26897;
  signed int D.26898;
  signed int D.26899;
  unsigned int D.26900;
  signed short D.26902;
  short unsigned int D.26903;
  int D.26904;
  unsigned int D.26905;
  signed int D.26914;
  unsigned int D.26915;
  int D.26917;
  unsigned int D.26918;
  signed int D.26927;
  unsigned int D.26928;
  int D.26930;
  unsigned int D.26931;
  signed int D.26940;
  unsigned int D.26941;
  int D.26943;
  unsigned int D.26944;
  signed int D.26953;
  unsigned int D.26954;
  int D.26956;
  unsigned int D.26957;
  signed int D.26966;
  unsigned int D.26967;
  int D.26969;
  unsigned int D.26970;
  signed int D.26979;
  unsigned int D.26980;
  int D.26982;
  unsigned int D.26983;
  signed short D.26988;
  signed short D.26989;
  signed short D.26990;
  short unsigned int D.26991;
  signed short D.26992;
  signed short D.26993;
  short unsigned int D.26994;
  int D.26997;
  int D.26998;
  unsigned int D.26999;
  int D.27000;
  unsigned int D.27001;
  signed short D.27006;
  signed short D.27007;
  short unsigned int D.27008;
  int D.27009;
  int D.27010;
  unsigned int D.27011;
  int D.27012;
  unsigned int D.27013;
  int D.27016;
  unsigned int D.27017;
  int D.27018;
  unsigned int D.27019;
  signed short D.27022;
  short unsigned int D.27023;
  struct MonoInst * D.27026;
  int D.27027;
  int D.27030;
  int D.27031;
  int D.27032;
  unsigned int D.27033;
  int D.27035;
  int D.27036;
  unsigned int D.27037;
  int D.27038;
  signed short D.27041;
  signed short D.27042;
  signed short D.27043;
  short unsigned int D.27044;
  signed short D.27046;
  signed short D.27047;
  short unsigned int D.27048;
  int D.27051;
  unsigned int D.27054;
  unsigned int D.27056;
  int D.27058;
  int D.27064;
  short unsigned int D.27067;
  short unsigned int D.27069;
  unsigned int D.27071;
  int D.27072;
  int D.27075;
  unsigned int D.27076;
  int D.27078;
  unsigned int D.27079;
  int D.27080;
  long unsigned int mono_break.49;
  int D.27087;
  int D.27088;
  unsigned int D.27089;
  int D.27100;
  int D.27101;
  unsigned int D.27102;
  int D.27107;
  signed int D.27108;
  unsigned int D.27109;
  _Bool D.27113;
  long int D.27114;
  long int D.27115;
  unsigned int D.27122;
  int D.27124;
  unsigned int D.27125;
  signed short D.27131;
  signed short D.27132;
  signed short D.27133;
  short unsigned int D.27134;
  int D.27135;
  int D.27136;
  unsigned int D.27137;
  int D.27143;
  int D.27144;
  unsigned int D.27145;
  int D.27146;
  int D.27147;
  unsigned int D.27148;
  unsigned int D.27154;
  int D.27162;
  unsigned int D.27163;
  int D.27167;
  int D.27168;
  unsigned int D.27169;
  int D.27180;
  int D.27181;
  unsigned int D.27182;
  unsigned long D.27185;
  int D.27188;
  unsigned int D.27189;
  unsigned int D.27200;
  int D.27214;
  unsigned int D.27215;
  int D.27219;
  unsigned int D.27220;
  int D.27227;
  unsigned int D.27228;
  int D.27229;
  unsigned int D.27230;
  int D.27231;
  unsigned int D.27232;
  int D.27233;
  unsigned int D.27234;
  unsigned int D.27235;
  int D.27238;
  int D.27239;
  unsigned int D.27240;
  int D.27244;
  unsigned int D.27245;
  unsigned int D.27251;
  int D.27255;
  int D.27256;
  unsigned int D.27257;
  int D.27261;
  unsigned int D.27262;
  unsigned int D.27268;
  int D.27275;
  int D.27276;
  unsigned int D.27277;
  long int D.27280;
  signed int D.27281;
  signed int D.27282;
  signed int D.27283;
  unsigned int D.27284;
  int D.27290;
  unsigned int D.27291;
  signed int D.27294;
  unsigned int D.27295;
  signed int D.27298;
  unsigned int D.27299;
  int D.27305;
  unsigned int D.27306;
  int D.27309;
  int D.27310;
  unsigned int D.27311;
  int D.27317;
  int D.27318;
  unsigned int D.27319;
  signed int D.27324;
  unsigned int D.27325;
  int D.27327;
  unsigned int D.27328;
  int D.27329;
  unsigned int D.27330;
  long unsigned int code.50;
  long unsigned int D.27332;
  short int * D.27333;
  int D.27334;
  unsigned int D.27335;
  int D.27336;
  unsigned int D.27337;
  short int * D.27338;
  long unsigned int D.27339;
  long unsigned int D.27340;
  unsigned short D.27341;
  unsigned short D.27342;
  short int D.27343;
  short int D.27344;
  short int * D.27345;
  long unsigned int D.27346;
  long unsigned int D.27347;
  unsigned short D.27348;
  unsigned short D.27349;
  short int D.27350;
  short int D.27351;
  int D.27352;
  unsigned int D.27353;
  int D.27359;
  unsigned int D.27360;
  int D.27393;
  unsigned int D.27394;
  int D.27398;
  unsigned int D.27399;
  unsigned int D.27414;
  unsigned int D.27415;
  signed int D.27416;
  signed int D.27417;
  signed int D.27418;
  unsigned int D.27419;
  signed short D.27426;
  signed short D.27427;
  short unsigned int D.27428;
  signed short D.27434;
  signed short D.27435;
  short unsigned int D.27436;
  int D.27452;
  unsigned int D.27453;
  int D.27459;
  unsigned int D.27460;
  signed short D.27461;
  short unsigned int D.27462;
  int D.27463;
  unsigned int D.27464;
  int D.27465;
  unsigned int D.27466;
  unsigned int D.27470;
  int D.27479;
  unsigned int D.27480;
  int D.27491;
  unsigned int D.27492;
  int D.27503;
  int D.27504;
  int D.27505;
  unsigned int D.27506;
  signed int D.27509;
  signed int D.27510;
  unsigned int D.27511;
  int D.27517;
  int D.27518;
  unsigned int D.27519;
  signed int D.27522;
  unsigned int D.27523;
  int D.27526;
  signed int D.27527;
  unsigned int D.27528;
  int D.27534;
  unsigned int D.27535;
  int D.27543;
  int D.27544;
  unsigned int D.27545;
  int D.27551;
  unsigned int D.27552;
  signed short D.27553;
  short unsigned int D.27554;
  signed short D.27555;
  short unsigned int D.27556;
  int D.27557;
  unsigned int D.27558;
  short int * D.27559;
  long unsigned int D.27560;
  long unsigned int D.27561;
  unsigned short D.27562;
  unsigned short D.27563;
  short int D.27564;
  short int D.27565;
  short int * D.27566;
  long unsigned int D.27567;
  long unsigned int D.27568;
  unsigned short D.27569;
  unsigned short D.27570;
  short int D.27571;
  short int D.27572;
  signed short D.27573;
  short unsigned int D.27574;
  int D.27575;
  unsigned int D.27576;
  unsigned long D.27577;
  int D.27580;
  signed int D.27581;
  signed int D.27582;
  unsigned int D.27583;
  struct MonoInst * D.27585;
  long int D.27586;
  <unnamed type> D.27587;
  void * D.27588;
  int D.27591;
  unsigned int D.27592;
  int D.27593;
  int D.27594;
  unsigned int D.27595;
  signed short D.27598;
  signed short D.27599;
  short unsigned int D.27600;
  int D.27601;
  int D.27602;
  unsigned int D.27603;
  signed int D.27606;
  unsigned int D.27607;
  struct MonoMethod * D.27609;
  long unsigned int D.27610;
  long unsigned int D.27611;
  unsigned int D.27614;
  unsigned int D.27615;
  unsigned int D.27616;
  unsigned int D.27617;
  int D.27618;
  int D.27619;
  unsigned int D.27620;
  unsigned int D.27621;
  unsigned int D.27622;
  unsigned int D.27625;
  unsigned int D.27626;
  int D.27627;
  unsigned int D.27628;
  unsigned int D.27629;
  unsigned int offset.51;
  unsigned int D.27631;
  int D.27634;
  int D.27635;
  unsigned int D.27636;
  long unsigned int D.27638;
  unsigned int D.27639;
  int D.27640;
  unsigned int D.27641;
  unsigned char D.27642;
  int D.27643;
  int D.27644;
  struct MonoMethod * D.27647;
  const void * D.27649;
  struct MonoMethodSignature * D.27650;
  struct MonoType * D.27651;
  unsigned char D.27652;
  unsigned int D.27662;
  int D.27666;
  int D.27669;
  unsigned int D.27670;
  unsigned int lmfOffset.52;
  unsigned int D.27674;
  int D.27677;
  int D.27678;
  unsigned int D.27679;
  unsigned int lmfOffset.53;
  int D.27682;
  int D.27683;
  int D.27684;
  unsigned int D.27685;
  int D.27688;
  unsigned int D.27689;
  int D.27690;
  unsigned int D.27691;
  unsigned int D.27692;
  int D.27693;
  long int D.27696;
  unsigned long D.27697;
  unsigned long D.27698;
  int D.27701;
  int D.27702;
  long int D.27703;
  signed int D.27704;
  signed int D.27705;
  signed int D.27706;
  long int D.27707;
  long int D.27708;
  signed int D.27709;
  signed int D.27710;
  signed int D.27711;
  signed int D.27712;
  unsigned int D.27713;
  long unsigned int D.27715;
  int D.27716;
  unsigned int D.27717;
  long int D.27726;
  unsigned long D.27727;
  unsigned long D.27728;
  int D.27731;
  int D.27732;
  long int D.27733;
  signed int D.27734;
  signed int D.27735;
  signed int D.27736;
  long int D.27737;
  long int D.27738;
  signed int D.27739;
  signed int D.27740;
  signed int D.27741;
  signed int D.27742;
  unsigned int D.27743;
  long unsigned int D.27745;
  int D.27746;
  unsigned int D.27747;
  long int D.27754;
  unsigned long D.27755;
  unsigned long D.27756;
  int D.27759;
  int D.27760;
  long int D.27761;
  signed int D.27762;
  signed int D.27763;
  signed int D.27764;
  long int D.27765;
  long int D.27766;
  signed int D.27767;
  signed int D.27768;
  signed int D.27769;
  signed int D.27770;
  unsigned int D.27771;
  long unsigned int D.27773;
  int D.27774;
  unsigned int D.27775;
  struct MonoBasicBlock * D.27780;
  struct MonoExceptionClause * D.27781;
  long unsigned int D.27782;
  long unsigned int D.27783;
  void * ss_trigger_page.54;
  unsigned int i.55;
  int D.27790;
  sizetype D.27793;
  unsigned char * D.27794;
  long int D.27795;
  long int D.27796;
  long int D.27797;
  unsigned int displace.56;
  unsigned int D.27799;
  int D.27802;
  int D.27803;
  unsigned int D.27804;
  unsigned int displace.57;
  signed short D.27808;
  short unsigned int D.27809;
  int D.27810;
  unsigned int D.27811;
  unsigned int D.27812;
  void * D.27813;
  struct MonoBasicBlock * * D.27814;
  struct MonoBasicBlock * D.27815;
  int D.27816;
  sizetype D.27819;
  unsigned char * D.27820;
  long int D.27821;
  long int D.27822;
  long int D.27823;
  unsigned int displace.58;
  unsigned int D.27825;
  int D.27828;
  int D.27829;
  unsigned int D.27830;
  unsigned int displace.59;
  unsigned int displace.60;
  unsigned int D.27837;
  int D.27840;
  int D.27841;
  unsigned int D.27842;
  unsigned int displace.61;
  unsigned int displace.62;
  unsigned int D.27849;
  int D.27852;
  int D.27853;
  unsigned int D.27854;
  unsigned int displace.63;
  unsigned int displace.64;
  unsigned int D.27861;
  int D.27864;
  int D.27865;
  unsigned int D.27866;
  unsigned int displace.65;
  unsigned int displace.66;
  unsigned int D.27873;
  int D.27876;
  int D.27877;
  unsigned int D.27878;
  unsigned int displace.67;
  unsigned int displace.68;
  unsigned int D.27885;
  int D.27888;
  int D.27889;
  unsigned int D.27890;
  unsigned int displace.69;
  double D.27894;
  int D.27897;
  unsigned int D.27898;
  long unsigned int D.27900;
  int D.27901;
  unsigned int D.27902;
  float D.27903;
  signed short D.27907;
  short unsigned int D.27908;
  signed short D.27913;
  short unsigned int D.27914;
  signed int D.27915;
  unsigned int D.27916;
  int D.27918;
  int D.27919;
  unsigned int D.27920;
  int D.27924;
  int D.27925;
  signed int D.27926;
  unsigned int D.27927;
  signed int D.27933;
  unsigned int D.27934;
  int D.27936;
  int D.27937;
  int D.27938;
  unsigned int D.27939;
  int D.27943;
  int D.27944;
  signed int D.27945;
  unsigned int D.27946;
  int D.27948;
  unsigned int D.27949;
  signed int D.27954;
  unsigned int D.27955;
  int D.27957;
  unsigned int D.27958;
  int D.27962;
  signed int D.27963;
  unsigned int D.27964;
  int D.27971;
  unsigned int D.27972;
  int D.27976;
  signed int D.27977;
  unsigned int D.27978;
  int D.27980;
  unsigned int D.27981;
  int D.27982;
  int D.27983;
  unsigned int D.27984;
  signed short D.27985;
  signed short D.27986;
  short unsigned int D.27987;
  int D.27988;
  int D.27989;
  unsigned int D.27990;
  int D.27991;
  int D.27992;
  unsigned int D.27993;
  int D.27994;
  int D.27995;
  int D.27996;
  unsigned int D.27997;
  int D.27998;
  unsigned int D.27999;
  int D.28002;
  unsigned int D.28003;
  short int * D.28004;
  long unsigned int D.28005;
  long unsigned int D.28006;
  unsigned short D.28007;
  unsigned short D.28008;
  short int D.28009;
  short int D.28010;
  short int * D.28011;
  long unsigned int D.28012;
  long unsigned int D.28013;
  unsigned short D.28014;
  unsigned short D.28015;
  short int D.28016;
  short int D.28017;
  short int * D.28018;
  long unsigned int D.28019;
  long unsigned int D.28020;
  unsigned short D.28021;
  unsigned short D.28022;
  short int D.28023;
  short int D.28024;
  short int * D.28025;
  long unsigned int D.28026;
  long unsigned int D.28027;
  unsigned short D.28028;
  unsigned short D.28029;
  short int D.28030;
  short int D.28031;
  short int * D.28032;
  long unsigned int D.28033;
  long unsigned int D.28034;
  unsigned short D.28035;
  unsigned short D.28036;
  short int D.28037;
  short int D.28038;
  int D.28039;
  int D.28040;
  unsigned int D.28041;
  int D.28042;
  int D.28043;
  unsigned int D.28044;
  int D.28050;
  int D.28051;
  unsigned int D.28052;
  signed short D.28055;
  short unsigned int D.28056;
  int D.28060;
  int D.28061;
  unsigned int D.28062;
  int D.28068;
  int D.28069;
  unsigned int D.28070;
  int D.28076;
  int D.28077;
  unsigned int D.28078;
  int D.28079;
  int D.28080;
  unsigned int D.28081;
  int D.28087;
  int D.28088;
  unsigned int D.28089;
  int D.28090;
  int D.28091;
  unsigned int D.28092;
  unsigned int displace.70;
  unsigned int D.28096;
  int D.28099;
  int D.28100;
  unsigned int D.28101;
  unsigned int displace.71;
  long unsigned int o.72;
  long unsigned int D.28106;
  unsigned short D.28107;
  unsigned short D.28108;
  short int D.28109;
  short int D.28110;
  unsigned int displace.73;
  unsigned int D.28114;
  int D.28117;
  int D.28118;
  unsigned int D.28119;
  unsigned int displace.74;
  unsigned int displace.75;
  unsigned int D.28126;
  int D.28129;
  int D.28130;
  unsigned int D.28131;
  unsigned int displace.76;
  long unsigned int o.77;
  long unsigned int D.28136;
  unsigned short D.28137;
  unsigned short D.28138;
  short int D.28139;
  short int D.28140;
  unsigned int displace.78;
  unsigned int D.28144;
  int D.28147;
  int D.28148;
  unsigned int D.28149;
  unsigned int displace.79;
  unsigned int displace.80;
  unsigned int D.28156;
  int D.28159;
  int D.28160;
  unsigned int D.28161;
  unsigned int displace.81;
  long unsigned int o.82;
  long unsigned int D.28166;
  unsigned short D.28167;
  unsigned short D.28168;
  short int D.28169;
  short int D.28170;
  unsigned int displace.83;
  unsigned int D.28174;
  int D.28177;
  int D.28178;
  unsigned int D.28179;
  unsigned int displace.84;
  unsigned int displace.85;
  unsigned int D.28186;
  int D.28189;
  int D.28190;
  unsigned int D.28191;
  unsigned int displace.86;
  long unsigned int o.87;
  long unsigned int D.28196;
  unsigned short D.28197;
  unsigned short D.28198;
  short int D.28199;
  short int D.28200;
  unsigned int displace.88;
  unsigned int D.28204;
  int D.28207;
  int D.28208;
  unsigned int D.28209;
  unsigned int displace.89;
  unsigned int displace.90;
  unsigned int D.28216;
  int D.28219;
  int D.28220;
  unsigned int D.28221;
  unsigned int displace.91;
  long unsigned int o.92;
  long unsigned int D.28226;
  unsigned short D.28227;
  unsigned short D.28228;
  short int D.28229;
  short int D.28230;
  unsigned int displace.93;
  unsigned int D.28234;
  int D.28237;
  int D.28238;
  unsigned int D.28239;
  unsigned int displace.94;
  long unsigned int o.95;
  long unsigned int D.28244;
  unsigned short D.28245;
  unsigned short D.28246;
  short int D.28247;
  short int D.28248;
  int D.28249;
  int D.28254;
  int D.28255;
  int D.28256;
  int D.28257;
  int D.28258;
  signed int D.28259;
  unsigned int D.28260;
  signed short D.28261;
  signed short D.28262;
  signed short D.28263;
  signed short D.28264;
  short unsigned int D.28265;
  signed int D.28271;
  unsigned int D.28272;
  int D.28274;
  unsigned int D.28275;
  signed int D.28280;
  unsigned int D.28281;
  unsigned int D.28283;
  unsigned int D.28284;
  int D.28287;
  int D.28288;
  unsigned int D.28289;
  long unsigned int D.28291;
  int D.28292;
  unsigned int D.28293;
  signed int D.28294;
  unsigned int D.28295;
  signed short D.28296;
  short unsigned int D.28297;
  int D.28298;
  unsigned int D.28299;
  int D.28300;
  signed int D.28301;
  unsigned int D.28302;
  int D.28303;
  signed int D.28304;
  unsigned int D.28305;
  int D.28306;
  int D.28307;
  int D.28308;
  signed int D.28309;
  unsigned int D.28310;
  int D.28311;
  unsigned int D.28312;
  unsigned int D.28313;
  int D.28316;
  int D.28317;
  unsigned int D.28318;
  long unsigned int D.28320;
  struct MonoMemPool * D.28321;
  struct GSList * D.28322;
  struct GSList * D.28323;
  const char * D.28324;
  unsigned int D.28325;
  unsigned int D.28326;
  long int D.28329;
  long int D.28330;
  long int D.28331;
  const char * D.28334;
  unsigned int D.28335;
  struct MonoInst * ins;
  struct MonoCallInst * call;
  guint offset;
  guint8 * code;
  guint last_offset;
  int max_len;
  int cpos;
  int src2;
  static const char __FUNCTION__[29] = "mono_arch_output_basic_block";

  D.26696 = cfg->native_code;
  D.26697 = cfg->code_len;
  D.26698 = (sizetype) D.26697;
  code = D.26696 + D.26698;
  last_offset = 0;
  D.26699 = cfg->verbose_level;
  if (D.26699 > 2) goto <D.26700>; else goto <D.26701>;
  <D.26700>:
  D.26702 = bb->block_num;
  D.26703 = bb->native_offset;
  monoeg_g_print ("Basic block %d starting at offset 0x%x\n", D.26702, D.26703);
  <D.26701>:
  cpos = bb->max_offset;
  D.26704 = cfg->prof_options;
  D.26705 = D.26704 & 8192;
  if (D.26705 != 0) goto <D.26706>; else goto <D.26707>;
  <D.26706>:
  <D.26707>:
  ins = bb->code;
  goto <D.25058>;
  <D.25057>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  offset = (guint) D.26710;
  D.26711 = ins->opcode;
  D.26712 = (int) D.26711;
  D.26713 = D.26712 + -313;
  D.26714 = s390x_cpu_desc_idx[D.26713];
  D.26715 = (sizetype) D.26714;
  D.26716 = D.26715 + 4;
  D.26717 = &s390x_cpu_desc + D.26716;
  D.26718 = *D.26717;
  max_len = (int) D.26718;
  D.26719 = cfg->code_size;
  max_len.47 = (unsigned int) max_len;
  D.26721 = D.26719 - max_len.47;
  D.26722 = D.26721 + 4294967280;
  if (D.26722 < offset) goto <D.26723>; else goto <D.26724>;
  <D.26723>:
  D.26719 = cfg->code_size;
  D.26725 = D.26719 * 2;
  cfg->code_size = D.26725;
  D.26696 = cfg->native_code;
  D.26719 = cfg->code_size;
  D.26726 = (long unsigned int) D.26719;
  D.26727 = monoeg_realloc (D.26696, D.26726);
  cfg->native_code = D.26727;
  D.26696 = cfg->native_code;
  D.26728 = (sizetype) offset;
  code = D.26696 + D.26728;
  <D.26724>:
  mono_debug_record_line_number (cfg, ins, offset);
  D.26711 = ins->opcode;
  D.26712 = (int) D.26711;
  switch (D.26712) <default: <D.25055>, case 316: <D.24896>, case 318: <D.24895>, case 322: <D.24738>, case 323: <D.24741>, case 324: <D.25009>, case 325: <D.24739>, case 326: <D.24740>, case 327: <D.24743>, case 328: <D.24742>, case 338: <D.24881>, case 340: <D.24860>, case 341: <D.24901>, case 343: <D.24867>, case 344: <D.24873>, case 345: <D.24879>, case 346: <D.24868>, case 347: <D.24874>, case 348: <D.24880>, case 349: <D.24863>, case 350: <D.24869>, case 351: <D.24875>, case 352: <D.24864>, case 353: <D.24870>, case 354: <D.24876>, case 355: <D.24865>, case 356: <D.24871>, case 357: <D.24877>, case 358: <D.24866>, case 359: <D.24872>, case 360: <D.24878>, case 362: <D.24839>, case 363: <D.24840>, case 364: <D.24979>, case 365: <D.24978>, case 369: <D.24894>, case 371: <D.24885>, case 372: <D.24886>, case 373: <D.24861>, case 374: <D.24719>, case 375: <D.24716>, case 376: <D.24717>, case 377: <D.24718>, case 378: <D.24720>, case 379: <D.24982>, case 380: <D.24980>, case 381: <D.24714>, case 382: <D.24710>, case 383: <D.24712>, case 384: <D.24713>, case 385: <D.24715>, case 388: <D.24722>, case 389: <D.24727>, case 390: <D.24726>, case 391: <D.24729>, case 392: <D.24728>, case 393: <D.24724>, case 394: <D.24725>, case 395: <D.24723>, case 396: <D.24983>, case 397: <D.24981>, case 421: <D.24721>, case 424: <D.24843>, case 426: <D.24854>, case 429: <D.24748>, case 430: <D.24760>, case 431: <D.24787>, case 436: <D.24766>, case 437: <D.24772>, case 438: <D.24774>, case 439: <D.24776>, case 440: <D.24779>, case 441: <D.24781>, case 442: <D.24906>, case 443: <D.24858>, case 445: <D.24744>, case 446: <D.24909>, case 447: <D.24918>, case 448: <D.24921>, case 449: <D.24912>, case 450: <D.24915>, case 451: <D.24924>, case 452: <D.24936>, case 453: <D.24932>, case 454: <D.24940>, case 455: <D.24928>, case 456: <D.24926>, case 457: <D.24938>, case 458: <D.24934>, case 459: <D.24942>, case 460: <D.24930>, case 461: <D.24944>, case 462: <D.24946>, case 463: <D.24948>, case 464: <D.24950>, case 465: <D.24925>, case 466: <D.24937>, case 467: <D.24933>, case 468: <D.24941>, case 469: <D.24929>, case 470: <D.24927>, case 471: <D.24939>, case 472: <D.24935>, case 473: <D.24943>, case 474: <D.24931>, case 475: <D.24945>, case 476: <D.24947>, case 477: <D.24949>, case 478: <D.24951>, case 479: <D.24746>, case 480: <D.24758>, case 481: <D.24786>, case 482: <D.24767>, case 483: <D.24768>, case 484: <D.24769>, case 485: <D.24770>, case 486: <D.24765>, case 487: <D.24771>, case 488: <D.24773>, case 489: <D.24775>, case 490: <D.24778>, case 491: <D.24783>, case 492: <D.24785>, case 493: <D.24784>, case 494: <D.24730>, case 495: <D.24731>, case 496: <D.24847>, case 497: <D.24845>, case 498: <D.24986>, case 499: <D.24988>, case 500: <D.24850>, case 501: <D.24849>, case 502: <D.24733>, case 503: <D.24732>, case 504: <D.24844>, case 505: <D.24999>, case 507: <D.24797>, case 508: <D.24799>, case 509: <D.24789>, case 510: <D.24791>, case 511: <D.24810>, case 512: <D.24812>, case 515: <D.24853>, case 528: <D.24852>, case 531: <D.24911>, case 532: <D.24920>, case 533: <D.24923>, case 534: <D.24914>, case 535: <D.24917>, case 536: <D.24985>, case 537: <D.24848>, case 538: <D.24749>, case 539: <D.24761>, case 540: <D.24788>, case 544: <D.24777>, case 545: <D.24780>, case 546: <D.24782>, case 551: <D.24952>, case 552: <D.24968>, case 553: <D.24963>, case 554: <D.24973>, case 555: <D.24958>, case 556: <D.24955>, case 557: <D.24969>, case 558: <D.24964>, case 559: <D.24974>, case 560: <D.24959>, case 565: <D.24793>, case 566: <D.24802>, case 567: <D.24834>, case 568: <D.24816>, case 569: <D.24817>, case 570: <D.24819>, case 571: <D.24820>, case 572: <D.24814>, case 573: <D.24822>, case 574: <D.24824>, case 575: <D.24826>, case 576: <D.24828>, case 577: <D.24831>, case 578: <D.24833>, case 579: <D.24832>, case 580: <D.24734>, case 581: <D.24735>, case 584: <D.24987>, case 585: <D.24989>, case 588: <D.24984>, case 590: <D.24737>, case 591: <D.24736>, case 595: <D.24751>, case 596: <D.24753>, case 597: <D.24836>, case 598: <D.24838>, case 599: <D.24806>, case 600: <D.24808>, case 619: <D.24794>, case 620: <D.24796>, case 621: <D.24803>, case 622: <D.24805>, case 623: <D.24792>, case 624: <D.24801>, case 625: <D.24795>, case 626: <D.24804>, case 627: <D.24835>, case 628: <D.24818>, case 630: <D.24821>, case 632: <D.24815>, case 633: <D.24823>, case 634: <D.24825>, case 635: <D.24827>, case 636: <D.24829>, case 637: <D.24830>, case 638: <D.24910>, case 639: <D.24919>, case 640: <D.24922>, case 641: <D.24913>, case 642: <D.24916>, case 648: <D.24953>, case 649: <D.24970>, case 650: <D.24965>, case 651: <D.24975>, case 652: <D.24960>, case 653: <D.24956>, case 654: <D.24971>, case 655: <D.24966>, case 656: <D.24976>, case 657: <D.24961>, case 658: <D.25015>, case 659: <D.25030>, case 660: <D.25025>, case 661: <D.25035>, case 662: <D.25020>, case 663: <D.25018>, case 664: <D.25033>, case 665: <D.25028>, case 666: <D.25038>, case 667: <D.25023>, case 668: <D.25003>, case 669: <D.25004>, case 670: <D.25005>, case 671: <D.25006>, case 673: <D.25008>, case 675: <D.25007>, case 677: <D.24990>, case 678: <D.24992>, case 679: <D.24994>, case 680: <D.24998>, case 681: <D.24855>, case 683: <D.24996>, case 685: <D.24993>, case 686: <D.24991>, case 687: <D.24995>, case 714: <D.25010>, case 715: <D.25013>, case 716: <D.25014>, case 717: <D.25011>, case 718: <D.25012>, case 727: <D.24997>, case 728: <D.25040>, case 731: <D.24842>, case 732: <D.24841>, case 735: <D.24893>, case 736: <D.24887>, case 737: <D.24889>, case 738: <D.24891>, case 751: <D.24747>, case 752: <D.24750>, case 753: <D.24759>, case 754: <D.24762>, case 755: <D.24745>, case 757: <D.24757>, case 759: <D.24908>, case 762: <D.24846>, case 765: <D.24851>, case 768: <D.24755>, case 769: <D.24763>, case 770: <D.24756>, case 771: <D.24764>, case 776: <D.25001>, case 779: <D.25002>, case 791: <D.24857>, case 796: <D.24897>, case 797: <D.24898>, case 798: <D.24899>, case 799: <D.24900>, case 803: <D.25046>, case 804: <D.25047>, case 807: <D.25048>, case 808: <D.25043>, case 809: <D.25044>, case 812: <D.25045>, case 813: <D.25050>, case 838: <D.25051>, case 839: <D.25052>, case 840: <D.25054>, case 841: <D.25053>, case 846: <D.25042>, case 847: <D.24856>, case 848: <D.25049>, case 850: <D.24798>, case 851: <D.24800>, case 853: <D.24811>, case 854: <D.24813>, case 856: <D.24752>, case 857: <D.24754>, case 858: <D.24807>, case 859: <D.24809>>
  <D.24710>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26735>; else goto <D.26736>;
  <D.26735>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26740>; else goto <D.26741>;
  <D.26740>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26753 = D.26752 | 114;
  D.26754 = (unsigned int) D.26753;
  MEM[(guint32 *)code] = D.26754;
  code = code + 4;
  goto <D.26755>;
  <D.26741>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26758 = D.26757 | 1108148224;
  D.26759 = (unsigned int) D.26758;
  MEM[(guint32 *)code] = D.26759;
  code = code + 4;
  <D.26755>:
  goto <D.26760>;
  <D.26736>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26761>; else goto <D.26762>;
  <D.26761>:
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26763 = D.26757 | 1107296256;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26766 = D.26763 | D.26765;
  D.26767 = (unsigned int) D.26766;
  MEM[(guint32 *)code] = D.26767;
  code = code + 4;
  goto <D.26768>;
  <D.26762>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26758 = D.26757 | 1108148224;
  D.26759 = (unsigned int) D.26758;
  MEM[(guint32 *)code] = D.26759;
  code = code + 4;
  <D.26768>:
  <D.26760>:
  goto <D.24711>;
  <D.24712>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26769>; else goto <D.26770>;
  <D.26769>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26771>; else goto <D.26772>;
  <D.26771>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26773 = D.26752 | 112;
  D.26774 = (unsigned int) D.26773;
  MEM[(guint32 *)code] = D.26774;
  code = code + 4;
  goto <D.26775>;
  <D.26772>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26776 = D.26757 | 1074593792;
  D.26777 = (unsigned int) D.26776;
  MEM[(guint32 *)code] = D.26777;
  code = code + 4;
  <D.26775>:
  goto <D.26778>;
  <D.26770>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26779>; else goto <D.26780>;
  <D.26779>:
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26781 = D.26757 | 1073741824;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26782 = D.26781 | D.26765;
  D.26783 = (unsigned int) D.26782;
  MEM[(guint32 *)code] = D.26783;
  code = code + 4;
  goto <D.26784>;
  <D.26780>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26776 = D.26757 | 1074593792;
  D.26777 = (unsigned int) D.26776;
  MEM[(guint32 *)code] = D.26777;
  code = code + 4;
  <D.26784>:
  <D.26778>:
  goto <D.24711>;
  <D.24713>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.26787>; else goto <D.26788>;
  <D.26787>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  goto <D.26789>;
  <D.26788>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.26789>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26791>; else goto <D.26792>;
  <D.26791>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26793>; else goto <D.26794>;
  <D.26793>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26795 = D.26752 | 80;
  D.26796 = (unsigned int) D.26795;
  MEM[(guint32 *)code] = D.26796;
  code = code + 4;
  goto <D.26797>;
  <D.26794>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26798 = D.26757 | 1343029248;
  D.26799 = (unsigned int) D.26798;
  MEM[(guint32 *)code] = D.26799;
  code = code + 4;
  <D.26797>:
  goto <D.26800>;
  <D.26792>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26801>; else goto <D.26802>;
  <D.26801>:
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26803 = D.26757 | 1342177280;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26804 = D.26803 | D.26765;
  D.26805 = (unsigned int) D.26804;
  MEM[(guint32 *)code] = D.26805;
  code = code + 4;
  goto <D.26806>;
  <D.26802>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26798 = D.26757 | 1343029248;
  D.26799 = (unsigned int) D.26798;
  MEM[(guint32 *)code] = D.26799;
  code = code + 4;
  <D.26806>:
  <D.26800>:
  goto <D.24711>;
  <D.24714>:
  <D.24715>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.26807>; else goto <D.26808>;
  <D.26807>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  goto <D.26809>;
  <D.26808>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.26809>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26810>; else goto <D.26811>;
  <D.26810>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26812>; else goto <D.26813>;
  <D.26812>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26814 = D.26752 | 36;
  D.26815 = (unsigned int) D.26814;
  MEM[(guint32 *)code] = D.26815;
  code = code + 4;
  goto <D.26816>;
  <D.26813>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 58125;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26817 = D.26743 | 36;
  D.26818 = (unsigned int) D.26817;
  MEM[(guint32 *)code] = D.26818;
  code = code + 4;
  <D.26816>:
  goto <D.26819>;
  <D.26811>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26820>; else goto <D.26821>;
  <D.26820>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26814 = D.26752 | 36;
  D.26815 = (unsigned int) D.26814;
  MEM[(guint32 *)code] = D.26815;
  code = code + 4;
  goto <D.26822>;
  <D.26821>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 58125;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26817 = D.26743 | 36;
  D.26818 = (unsigned int) D.26817;
  MEM[(guint32 *)code] = D.26818;
  code = code + 4;
  <D.26822>:
  <D.26819>:
  goto <D.24711>;
  <D.24716>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26823>; else goto <D.26824>;
  <D.26823>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26825>; else goto <D.26826>;
  <D.26825>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26753 = D.26752 | 114;
  D.26754 = (unsigned int) D.26753;
  MEM[(guint32 *)code] = D.26754;
  code = code + 4;
  goto <D.26832>;
  <D.26826>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26834 = D.26833 | 1108148224;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26835 = D.26834 | D.26757;
  D.26836 = (unsigned int) D.26835;
  MEM[(guint32 *)code] = D.26836;
  code = code + 4;
  <D.26832>:
  goto <D.26837>;
  <D.26824>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26838>; else goto <D.26839>;
  <D.26838>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26840 = D.26833 | 1107296256;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26841 = D.26840 | D.26757;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26842 = D.26841 | D.26765;
  D.26843 = (unsigned int) D.26842;
  MEM[(guint32 *)code] = D.26843;
  code = code + 4;
  goto <D.26844>;
  <D.26839>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26834 = D.26833 | 1108148224;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26835 = D.26834 | D.26757;
  D.26836 = (unsigned int) D.26835;
  MEM[(guint32 *)code] = D.26836;
  code = code + 4;
  <D.26844>:
  <D.26837>:
  goto <D.24711>;
  <D.24717>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26845>; else goto <D.26846>;
  <D.26845>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26847>; else goto <D.26848>;
  <D.26847>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26773 = D.26752 | 112;
  D.26774 = (unsigned int) D.26773;
  MEM[(guint32 *)code] = D.26774;
  code = code + 4;
  goto <D.26849>;
  <D.26848>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26850 = D.26833 | 1074593792;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26851 = D.26850 | D.26757;
  D.26852 = (unsigned int) D.26851;
  MEM[(guint32 *)code] = D.26852;
  code = code + 4;
  <D.26849>:
  goto <D.26853>;
  <D.26846>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26854>; else goto <D.26855>;
  <D.26854>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26856 = D.26833 | 1073741824;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26857 = D.26856 | D.26757;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26858 = D.26857 | D.26765;
  D.26859 = (unsigned int) D.26858;
  MEM[(guint32 *)code] = D.26859;
  code = code + 4;
  goto <D.26860>;
  <D.26855>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26850 = D.26833 | 1074593792;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26851 = D.26850 | D.26757;
  D.26852 = (unsigned int) D.26851;
  MEM[(guint32 *)code] = D.26852;
  code = code + 4;
  <D.26860>:
  <D.26853>:
  goto <D.24711>;
  <D.24718>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26861>; else goto <D.26862>;
  <D.26861>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26863>; else goto <D.26864>;
  <D.26863>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26795 = D.26752 | 80;
  D.26796 = (unsigned int) D.26795;
  MEM[(guint32 *)code] = D.26796;
  code = code + 4;
  goto <D.26865>;
  <D.26864>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26866 = D.26833 | 1343029248;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26867 = D.26866 | D.26757;
  D.26868 = (unsigned int) D.26867;
  MEM[(guint32 *)code] = D.26868;
  code = code + 4;
  <D.26865>:
  goto <D.26869>;
  <D.26862>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26870>; else goto <D.26871>;
  <D.26870>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26872 = D.26833 | 1342177280;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26873 = D.26872 | D.26757;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.26874 = D.26873 | D.26765;
  D.26875 = (unsigned int) D.26874;
  MEM[(guint32 *)code] = D.26875;
  code = code + 4;
  goto <D.26876>;
  <D.26871>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.26866 = D.26833 | 1343029248;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.26867 = D.26866 | D.26757;
  D.26868 = (unsigned int) D.26867;
  MEM[(guint32 *)code] = D.26868;
  code = code + 4;
  <D.26876>:
  <D.26869>:
  goto <D.24711>;
  <D.24719>:
  <D.24720>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26877>; else goto <D.26878>;
  <D.26877>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26879>; else goto <D.26880>;
  <D.26879>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26814 = D.26752 | 36;
  D.26815 = (unsigned int) D.26814;
  MEM[(guint32 *)code] = D.26815;
  code = code + 4;
  goto <D.26881>;
  <D.26880>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26882 = D.26829 | -7411;
  D.26883 = (short unsigned int) D.26882;
  MEM[(guint16 *)code] = D.26883;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26817 = D.26743 | 36;
  D.26818 = (unsigned int) D.26817;
  MEM[(guint32 *)code] = D.26818;
  code = code + 4;
  <D.26881>:
  goto <D.26884>;
  <D.26878>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26885>; else goto <D.26886>;
  <D.26885>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.26814 = D.26752 | 36;
  D.26815 = (unsigned int) D.26814;
  MEM[(guint32 *)code] = D.26815;
  code = code + 4;
  goto <D.26887>;
  <D.26886>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26882 = D.26829 | -7411;
  D.26883 = (short unsigned int) D.26882;
  MEM[(guint16 *)code] = D.26883;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26817 = D.26743 | 36;
  D.26818 = (unsigned int) D.26817;
  MEM[(guint32 *)code] = D.26818;
  code = code + 4;
  <D.26887>:
  <D.26884>:
  goto <D.24711>;
  <D.24721>:
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 3068);
  <D.24722>:
  <D.24723>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26888>; else goto <D.26889>;
  <D.26888>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26890>; else goto <D.26891>;
  <D.26890>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  goto <D.26901>;
  <D.26891>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26904 = D.26896 | 4;
  D.26905 = (unsigned int) D.26904;
  MEM[(guint32 *)code] = D.26905;
  code = code + 4;
  <D.26901>:
  goto <D.26906>;
  <D.26889>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26907>; else goto <D.26908>;
  <D.26907>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  goto <D.26909>;
  <D.26908>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26904 = D.26896 | 4;
  D.26905 = (unsigned int) D.26904;
  MEM[(guint32 *)code] = D.26905;
  code = code + 4;
  <D.26909>:
  <D.26906>:
  goto <D.24711>;
  <D.24724>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26910>; else goto <D.26911>;
  <D.26910>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26912>; else goto <D.26913>;
  <D.26912>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26914 = D.26898 | 20;
  D.26915 = (unsigned int) D.26914;
  MEM[(guint32 *)code] = D.26915;
  code = code + 4;
  goto <D.26916>;
  <D.26913>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26917 = D.26896 | 20;
  D.26918 = (unsigned int) D.26917;
  MEM[(guint32 *)code] = D.26918;
  code = code + 4;
  <D.26916>:
  goto <D.26919>;
  <D.26911>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26920>; else goto <D.26921>;
  <D.26920>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26914 = D.26898 | 20;
  D.26915 = (unsigned int) D.26914;
  MEM[(guint32 *)code] = D.26915;
  code = code + 4;
  goto <D.26922>;
  <D.26921>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26917 = D.26896 | 20;
  D.26918 = (unsigned int) D.26917;
  MEM[(guint32 *)code] = D.26918;
  code = code + 4;
  <D.26922>:
  <D.26919>:
  goto <D.24711>;
  <D.24725>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26923>; else goto <D.26924>;
  <D.26923>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26925>; else goto <D.26926>;
  <D.26925>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26927 = D.26898 | 22;
  D.26928 = (unsigned int) D.26927;
  MEM[(guint32 *)code] = D.26928;
  code = code + 4;
  goto <D.26929>;
  <D.26926>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26930 = D.26896 | 22;
  D.26931 = (unsigned int) D.26930;
  MEM[(guint32 *)code] = D.26931;
  code = code + 4;
  <D.26929>:
  goto <D.26932>;
  <D.26924>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26933>; else goto <D.26934>;
  <D.26933>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26927 = D.26898 | 22;
  D.26928 = (unsigned int) D.26927;
  MEM[(guint32 *)code] = D.26928;
  code = code + 4;
  goto <D.26935>;
  <D.26934>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26930 = D.26896 | 22;
  D.26931 = (unsigned int) D.26930;
  MEM[(guint32 *)code] = D.26931;
  code = code + 4;
  <D.26935>:
  <D.26932>:
  goto <D.24711>;
  <D.24726>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26936>; else goto <D.26937>;
  <D.26936>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26938>; else goto <D.26939>;
  <D.26938>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26940 = D.26898 | 144;
  D.26941 = (unsigned int) D.26940;
  MEM[(guint32 *)code] = D.26941;
  code = code + 4;
  goto <D.26942>;
  <D.26939>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26943 = D.26896 | 144;
  D.26944 = (unsigned int) D.26943;
  MEM[(guint32 *)code] = D.26944;
  code = code + 4;
  <D.26942>:
  goto <D.26945>;
  <D.26937>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26946>; else goto <D.26947>;
  <D.26946>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26940 = D.26898 | 144;
  D.26941 = (unsigned int) D.26940;
  MEM[(guint32 *)code] = D.26941;
  code = code + 4;
  goto <D.26948>;
  <D.26947>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26943 = D.26896 | 144;
  D.26944 = (unsigned int) D.26943;
  MEM[(guint32 *)code] = D.26944;
  code = code + 4;
  <D.26948>:
  <D.26945>:
  goto <D.24711>;
  <D.24727>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26949>; else goto <D.26950>;
  <D.26949>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26951>; else goto <D.26952>;
  <D.26951>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26953 = D.26898 | 119;
  D.26954 = (unsigned int) D.26953;
  MEM[(guint32 *)code] = D.26954;
  code = code + 4;
  goto <D.26955>;
  <D.26952>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26956 = D.26896 | 119;
  D.26957 = (unsigned int) D.26956;
  MEM[(guint32 *)code] = D.26957;
  code = code + 4;
  <D.26955>:
  goto <D.26958>;
  <D.26950>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26959>; else goto <D.26960>;
  <D.26959>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26953 = D.26898 | 119;
  D.26954 = (unsigned int) D.26953;
  MEM[(guint32 *)code] = D.26954;
  code = code + 4;
  goto <D.26961>;
  <D.26960>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26956 = D.26896 | 119;
  D.26957 = (unsigned int) D.26956;
  MEM[(guint32 *)code] = D.26957;
  code = code + 4;
  <D.26961>:
  <D.26958>:
  goto <D.24711>;
  <D.24728>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26962>; else goto <D.26963>;
  <D.26962>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26964>; else goto <D.26965>;
  <D.26964>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26966 = D.26898 | 145;
  D.26967 = (unsigned int) D.26966;
  MEM[(guint32 *)code] = D.26967;
  code = code + 4;
  goto <D.26968>;
  <D.26965>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26969 = D.26896 | 145;
  D.26970 = (unsigned int) D.26969;
  MEM[(guint32 *)code] = D.26970;
  code = code + 4;
  <D.26968>:
  goto <D.26971>;
  <D.26963>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26972>; else goto <D.26973>;
  <D.26972>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26966 = D.26898 | 145;
  D.26967 = (unsigned int) D.26966;
  MEM[(guint32 *)code] = D.26967;
  code = code + 4;
  goto <D.26974>;
  <D.26973>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26969 = D.26896 | 145;
  D.26970 = (unsigned int) D.26969;
  MEM[(guint32 *)code] = D.26970;
  code = code + 4;
  <D.26974>:
  <D.26971>:
  goto <D.24711>;
  <D.24729>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.26975>; else goto <D.26976>;
  <D.26975>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.26977>; else goto <D.26978>;
  <D.26977>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26979 = D.26898 | 21;
  D.26980 = (unsigned int) D.26979;
  MEM[(guint32 *)code] = D.26980;
  code = code + 4;
  goto <D.26981>;
  <D.26978>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26982 = D.26896 | 21;
  D.26983 = (unsigned int) D.26982;
  MEM[(guint32 *)code] = D.26983;
  code = code + 4;
  <D.26981>:
  goto <D.26984>;
  <D.26976>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.26985>; else goto <D.26986>;
  <D.26985>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26979 = D.26898 | 21;
  D.26980 = (unsigned int) D.26979;
  MEM[(guint32 *)code] = D.26980;
  code = code + 4;
  goto <D.26987>;
  <D.26986>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26982 = D.26896 | 21;
  D.26983 = (unsigned int) D.26982;
  MEM[(guint32 *)code] = D.26983;
  code = code + 4;
  <D.26987>:
  <D.26984>:
  goto <D.24711>;
  <D.24730>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.26990 = D.26988 | D.26989;
  D.26991 = (short unsigned int) D.26990;
  MEM[(guint16 *)code] = D.26991;
  code = code + 2;
  MEM[(guint32 *)code] = 3670029;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  MEM[(guint32 *)code] = 3670026;
  code = code + 4;
  goto <D.24711>;
  <D.24731>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.26990 = D.26988 | D.26989;
  D.26991 = (short unsigned int) D.26990;
  MEM[(guint16 *)code] = D.26991;
  code = code + 2;
  MEM[(guint32 *)code] = 3145741;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  MEM[(guint32 *)code] = 3145738;
  code = code + 4;
  goto <D.24711>;
  <D.24732>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.26995>; else goto <D.26996>;
  <D.26995>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.26996>:
  MEM[(guint32 *)code] = 2802385151;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27001 = (unsigned int) D.27000;
  MEM[(guint32 *)code] = D.27001;
  code = code + 4;
  goto <D.24711>;
  <D.24733>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27002>; else goto <D.27003>;
  <D.27002>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27003>:
  MEM[(guint32 *)code] = 2802450431;
  code = code + 4;
  MEM[(guint16 *)code] = 60160;
  code = code + 2;
  MEM[(guint32 *)code] = 3145740;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27001 = (unsigned int) D.27000;
  MEM[(guint32 *)code] = D.27001;
  code = code + 4;
  goto <D.24711>;
  <D.24734>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27004>; else goto <D.27005>;
  <D.27004>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27006 = D.26893 | 6144;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27007 = D.27006 | D.26989;
  D.27008 = (short unsigned int) D.27007;
  MEM[(guint16 *)code] = D.27008;
  code = code + 2;
  <D.27005>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27010 = D.27009 | -1996488680;
  D.27011 = (unsigned int) D.27010;
  MEM[(guint32 *)code] = D.27011;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27012 = D.27009 | -1979711464;
  D.27013 = (unsigned int) D.27012;
  MEM[(guint32 *)code] = D.27013;
  code = code + 4;
  goto <D.24711>;
  <D.24735>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27014>; else goto <D.27015>;
  <D.27014>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27006 = D.26893 | 6144;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27007 = D.27006 | D.26989;
  D.27008 = (short unsigned int) D.27007;
  MEM[(guint16 *)code] = D.27008;
  code = code + 2;
  <D.27015>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27016 = D.27009 | -1996488688;
  D.27017 = (unsigned int) D.27016;
  MEM[(guint32 *)code] = D.27017;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27018 = D.27009 | -1979711472;
  D.27019 = (unsigned int) D.27018;
  MEM[(guint32 *)code] = D.27019;
  code = code + 4;
  goto <D.24711>;
  <D.24736>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27020>; else goto <D.27021>;
  <D.27020>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27006 = D.26893 | 6144;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27007 = D.27006 | D.26989;
  D.27008 = (short unsigned int) D.27007;
  MEM[(guint16 *)code] = D.27008;
  code = code + 2;
  <D.27021>:
  MEM[(guint32 *)code] = 2802319615;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27022 = D.26893 | 5120;
  D.27023 = (short unsigned int) D.27022;
  MEM[(guint16 *)code] = D.27023;
  code = code + 2;
  goto <D.24711>;
  <D.24737>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27024>; else goto <D.27025>;
  <D.27024>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27006 = D.26893 | 6144;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27007 = D.27006 | D.26989;
  D.27008 = (short unsigned int) D.27007;
  MEM[(guint16 *)code] = D.27008;
  code = code + 2;
  <D.27025>:
  MEM[(guint32 *)code] = 2802384895;
  code = code + 4;
  MEM[(guint32 *)code] = 2281701392;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27022 = D.26893 | 5120;
  D.27023 = (short unsigned int) D.27022;
  MEM[(guint16 *)code] = D.27023;
  code = code + 2;
  goto <D.24711>;
  <D.24738>:
  <D.24739>:
  D.27026 = ins->next;
  D.27027 = is_unsigned (D.27026);
  if (D.27027 != 0) goto <D.27028>; else goto <D.27029>;
  <D.27028>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27030 = D.26828 | -1189019648;
  D.27031 = ins->sreg2;
  D.27032 = D.27030 | D.27031;
  D.27033 = (unsigned int) D.27032;
  MEM[(guint32 *)code] = D.27033;
  code = code + 4;
  goto <D.27034>;
  <D.27029>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27035 = D.26828 | -1189085184;
  D.27031 = ins->sreg2;
  D.27036 = D.27035 | D.27031;
  D.27037 = (unsigned int) D.27036;
  MEM[(guint32 *)code] = D.27037;
  code = code + 4;
  <D.27034>:
  goto <D.24711>;
  <D.24740>:
  D.27026 = ins->next;
  D.27038 = is_unsigned (D.27026);
  if (D.27038 != 0) goto <D.27039>; else goto <D.27040>;
  <D.27039>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27041 = D.26829 | 5376;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27043 = D.27041 | D.27042;
  D.27044 = (short unsigned int) D.27043;
  MEM[(guint16 *)code] = D.27044;
  code = code + 2;
  goto <D.27045>;
  <D.27040>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27046 = D.26829 | 6400;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27047 = D.27046 | D.27042;
  D.27048 = (short unsigned int) D.27047;
  MEM[(guint16 *)code] = D.27048;
  code = code + 2;
  <D.27045>:
  goto <D.24711>;
  <D.24741>:
  <D.24742>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27049>; else goto <D.27050>;
  <D.27049>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.27026 = ins->next;
  D.27051 = is_unsigned (D.27026);
  if (D.27051 != 0) goto <D.27052>; else goto <D.27053>;
  <D.27052>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27030 = D.26828 | -1189019648;
  D.27054 = (unsigned int) D.27030;
  MEM[(guint32 *)code] = D.27054;
  code = code + 4;
  goto <D.27055>;
  <D.27053>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27035 = D.26828 | -1189085184;
  D.27056 = (unsigned int) D.27035;
  MEM[(guint32 *)code] = D.27056;
  code = code + 4;
  <D.27055>:
  goto <D.27057>;
  <D.27050>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.27026 = ins->next;
  D.27058 = is_unsigned (D.27026);
  if (D.27058 != 0) goto <D.27059>; else goto <D.27060>;
  <D.27059>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923105;
  code = code + 4;
  goto <D.27061>;
  <D.27060>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923104;
  code = code + 4;
  <D.27061>:
  <D.27057>:
  goto <D.24711>;
  <D.24743>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27062>; else goto <D.27063>;
  <D.27062>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.27026 = ins->next;
  D.27064 = is_unsigned (D.27026);
  if (D.27064 != 0) goto <D.27065>; else goto <D.27066>;
  <D.27065>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27041 = D.26829 | 5376;
  D.27067 = (short unsigned int) D.27041;
  MEM[(guint16 *)code] = D.27067;
  code = code + 2;
  goto <D.27068>;
  <D.27066>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27046 = D.26829 | 6400;
  D.27069 = (short unsigned int) D.27046;
  MEM[(guint16 *)code] = D.27069;
  code = code + 2;
  <D.27068>:
  goto <D.27070>;
  <D.27063>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.27026 = ins->next;
  D.27072 = is_unsigned (D.27026);
  if (D.27072 != 0) goto <D.27073>; else goto <D.27074>;
  <D.27073>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.27075 = D.26833 | 1426116612;
  D.27076 = (unsigned int) D.27075;
  MEM[(guint32 *)code] = D.27076;
  code = code + 4;
  goto <D.27077>;
  <D.27074>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.27078 = D.26833 | 1493225476;
  D.27079 = (unsigned int) D.27078;
  MEM[(guint32 *)code] = D.27079;
  code = code + 4;
  <D.27077>:
  <D.27070>:
  goto <D.24711>;
  <D.24744>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 1, mono_break);
  mono_break.49 = (long unsigned int) mono_break;
  MEM[(guint64 *)code] = mono_break.49;
  code = code + 8;
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 3566;
  code = code + 2;
  goto <D.24711>;
  <D.24745>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27082>; else goto <D.27083>;
  <D.27082>:
  src2 = ins->sreg1;
  goto <D.27084>;
  <D.27083>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27085>; else goto <D.27086>;
  <D.27085>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27086>:
  <D.27084>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27088 = D.27087 | src2;
  D.27089 = (unsigned int) D.27088;
  MEM[(guint32 *)code] = D.27089;
  code = code + 4;
  goto <D.24711>;
  <D.24746>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27090>; else goto <D.27091>;
  <D.27090>:
  src2 = ins->sreg1;
  goto <D.27092>;
  <D.27091>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27093>; else goto <D.27094>;
  <D.27093>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27094>:
  <D.27092>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27088 = D.27087 | src2;
  D.27089 = (unsigned int) D.27088;
  MEM[(guint32 *)code] = D.27089;
  code = code + 4;
  goto <D.24711>;
  <D.24747>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27095>; else goto <D.27096>;
  <D.27095>:
  src2 = ins->sreg1;
  goto <D.27097>;
  <D.27096>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27098>; else goto <D.27099>;
  <D.27098>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27099>:
  <D.27097>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27100 = D.26892 | -1182269440;
  D.27101 = D.27100 | src2;
  D.27102 = (unsigned int) D.27101;
  MEM[(guint32 *)code] = D.27102;
  code = code + 4;
  goto <D.24711>;
  <D.24748>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27103>; else goto <D.27104>;
  <D.27103>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27104>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27105>; else goto <D.27106>;
  <D.27105>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27107 = D.27009 | -1492451328;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27108 = D.27107 | D.26731;
  D.27109 = (unsigned int) D.27108;
  MEM[(guint32 *)code] = D.27109;
  code = code + 4;
  goto <D.27110>;
  <D.27106>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923080;
  code = code + 4;
  <D.27110>:
  goto <D.24711>;
  <D.24749>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27111>; else goto <D.27112>;
  <D.27111>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27112>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  D.27113 = D.26786 > 65535;
  D.27114 = (long int) D.27113;
  D.27115 = __builtin_expect (D.27114, 0);
  if (D.27115 != 0) goto <D.27116>; else goto <D.27117>;
  <D.27116>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 3289, "s390_is_imm16 (ins->inst_imm)");
  <D.27117>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27107 = D.27009 | -1492451328;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27108 = D.27107 | D.26731;
  D.27109 = (unsigned int) D.27108;
  MEM[(guint32 *)code] = D.27109;
  code = code + 4;
  goto <D.24711>;
  <D.24750>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27118>; else goto <D.27119>;
  <D.27118>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27119>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27120>; else goto <D.27121>;
  <D.27120>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27100 = D.26892 | -1182269440;
  D.27122 = (unsigned int) D.27100;
  MEM[(guint32 *)code] = D.27122;
  code = code + 4;
  goto <D.27123>;
  <D.27121>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27124 = D.26892 | -1182269427;
  D.27125 = (unsigned int) D.27124;
  MEM[(guint32 *)code] = D.27125;
  code = code + 4;
  <D.27123>:
  goto <D.24711>;
  <D.24751>:
  <D.24752>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27126>; else goto <D.27127>;
  <D.27126>:
  src2 = ins->sreg1;
  goto <D.27128>;
  <D.27127>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27129>; else goto <D.27130>;
  <D.27129>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27130>:
  <D.27128>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27131 = D.26893 | 6656;
  D.27132 = (signed short) src2;
  D.27133 = D.27131 | D.27132;
  D.27134 = (short unsigned int) D.27133;
  MEM[(guint16 *)code] = D.27134;
  code = code + 2;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26742 = ins->dreg;
  D.27136 = D.27135 | D.26742;
  D.27137 = (unsigned int) D.27136;
  MEM[(guint32 *)code] = D.27137;
  code = code + 4;
  goto <D.24711>;
  <D.24753>:
  <D.24754>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27138>; else goto <D.27139>;
  <D.27138>:
  src2 = ins->sreg1;
  goto <D.27140>;
  <D.27139>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27141>; else goto <D.27142>;
  <D.27141>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27142>:
  <D.27140>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27143 = D.26892 | -1190526976;
  D.27144 = D.27143 | src2;
  D.27145 = (unsigned int) D.27144;
  MEM[(guint32 *)code] = D.27145;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49204;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27146 = D.26892 | -1189740544;
  D.26742 = ins->dreg;
  D.27147 = D.27146 | D.26742;
  D.27148 = (unsigned int) D.27147;
  MEM[(guint32 *)code] = D.27148;
  code = code + 4;
  goto <D.24711>;
  <D.24755>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27149>; else goto <D.27150>;
  <D.27149>:
  src2 = ins->sreg1;
  goto <D.27151>;
  <D.27150>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27152>; else goto <D.27153>;
  <D.27152>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27153>:
  <D.27151>:
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  MEM[(guint32 *)code] = 3104047120;
  code = code + 4;
  MEM[(guint32 *)code] = 3112697857;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27088 = D.27087 | src2;
  D.27089 = (unsigned int) D.27088;
  MEM[(guint32 *)code] = D.27089;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27154 = (unsigned int) D.27087;
  MEM[(guint32 *)code] = D.27154;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24756>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27155>; else goto <D.27156>;
  <D.27155>:
  src2 = ins->sreg1;
  goto <D.27157>;
  <D.27156>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27158>; else goto <D.27159>;
  <D.27158>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27159>:
  <D.27157>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27100 = D.26892 | -1182269440;
  D.27101 = D.27100 | src2;
  D.27102 = (unsigned int) D.27101;
  MEM[(guint32 *)code] = D.27102;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49204;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24757>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27160>; else goto <D.27161>;
  <D.27160>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27164>;
  <D.27161>:
  src2 = ins->sreg2;
  <D.27164>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27165>; else goto <D.27166>;
  <D.27165>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27166>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27167 = D.26892 | -1190592512;
  D.27168 = D.27167 | src2;
  D.27169 = (unsigned int) D.27168;
  MEM[(guint32 *)code] = D.27169;
  code = code + 4;
  goto <D.24711>;
  <D.24758>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27170>; else goto <D.27171>;
  <D.27170>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27172>;
  <D.27171>:
  src2 = ins->sreg2;
  <D.27172>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27173>; else goto <D.27174>;
  <D.27173>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27174>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27167 = D.26892 | -1190592512;
  D.27168 = D.27167 | src2;
  D.27169 = (unsigned int) D.27168;
  MEM[(guint32 *)code] = D.27169;
  code = code + 4;
  goto <D.24711>;
  <D.24759>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27175>; else goto <D.27176>;
  <D.27175>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27177>;
  <D.27176>:
  src2 = ins->sreg2;
  <D.27177>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27178>; else goto <D.27179>;
  <D.27178>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27179>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27180 = D.26892 | -1182203904;
  D.27181 = D.27180 | src2;
  D.27182 = (unsigned int) D.27181;
  MEM[(guint32 *)code] = D.27182;
  code = code + 4;
  goto <D.24711>;
  <D.24760>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27183>; else goto <D.27184>;
  <D.27183>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27184>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.27185 = D.26785 + 32767;
  if (D.27185 <= 65535) goto <D.27186>; else goto <D.27187>;
  <D.27186>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27188 = D.26892 | -1190461440;
  D.27189 = (unsigned int) D.27188;
  MEM[(guint32 *)code] = D.27189;
  code = code + 4;
  goto <D.27190>;
  <D.27187>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923083;
  code = code + 4;
  <D.27190>:
  goto <D.24711>;
  <D.24761>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27191>; else goto <D.27192>;
  <D.27191>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27192>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.27185 = D.26785 + 32767;
  if (D.27185 <= 65535) goto <D.27193>; else goto <D.27194>;
  <D.27193>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27188 = D.26892 | -1190461440;
  D.27189 = (unsigned int) D.27188;
  MEM[(guint32 *)code] = D.27189;
  code = code + 4;
  goto <D.27195>;
  <D.27194>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923083;
  code = code + 4;
  <D.27195>:
  goto <D.24711>;
  <D.24762>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27196>; else goto <D.27197>;
  <D.27196>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27197>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.27185 = D.26785 + 32767;
  if (D.27185 <= 65535) goto <D.27198>; else goto <D.27199>;
  <D.27198>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27180 = D.26892 | -1182203904;
  D.27200 = (unsigned int) D.27180;
  MEM[(guint32 *)code] = D.27200;
  code = code + 4;
  goto <D.27201>;
  <D.27199>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923209;
  code = code + 4;
  <D.27201>:
  goto <D.24711>;
  <D.24763>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27202>; else goto <D.27203>;
  <D.27202>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27204>;
  <D.27203>:
  src2 = ins->sreg2;
  <D.27204>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27205>; else goto <D.27206>;
  <D.27205>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27206>:
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  MEM[(guint32 *)code] = 3104047120;
  code = code + 4;
  MEM[(guint32 *)code] = 3112763393;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27167 = D.26892 | -1190592512;
  D.27168 = D.27167 | src2;
  D.27169 = (unsigned int) D.27168;
  MEM[(guint32 *)code] = D.27169;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27154 = (unsigned int) D.27087;
  MEM[(guint32 *)code] = D.27154;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24764>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27207>; else goto <D.27208>;
  <D.27207>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27209>;
  <D.27208>:
  src2 = ins->sreg2;
  <D.27209>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27210>; else goto <D.27211>;
  <D.27210>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27211>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27180 = D.26892 | -1182203904;
  D.27181 = D.27180 | src2;
  D.27182 = (unsigned int) D.27181;
  MEM[(guint32 *)code] = D.27182;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49348;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24765>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 == D.26742) goto <D.27212>; else goto <D.27213>;
  <D.27212>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27031 = ins->sreg2;
  D.27214 = D.27000 | D.27031;
  D.27215 = (unsigned int) D.27214;
  MEM[(guint32 *)code] = D.27215;
  code = code + 4;
  goto <D.27216>;
  <D.27213>:
  D.27031 = ins->sreg2;
  D.26742 = ins->dreg;
  if (D.27031 == D.26742) goto <D.27217>; else goto <D.27218>;
  <D.27217>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.26827 = ins->sreg1;
  D.27219 = D.27000 | D.26827;
  D.27220 = (unsigned int) D.27219;
  MEM[(guint32 *)code] = D.27220;
  code = code + 4;
  goto <D.27221>;
  <D.27218>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27031 = ins->sreg2;
  D.27214 = D.27000 | D.27031;
  D.27215 = (unsigned int) D.27214;
  MEM[(guint32 *)code] = D.27215;
  code = code + 4;
  <D.27221>:
  <D.27216>:
  goto <D.24711>;
  <D.24766>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27222>; else goto <D.27223>;
  <D.27222>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27223>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27224>; else goto <D.27225>;
  <D.27224>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27001 = (unsigned int) D.27000;
  MEM[(guint32 *)code] = D.27001;
  code = code + 4;
  goto <D.27226>;
  <D.27225>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923200;
  code = code + 4;
  <D.27226>:
  goto <D.24711>;
  <D.24767>:
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27229 = D.27031 | -1190330368;
  D.27230 = (unsigned int) D.27229;
  MEM[(guint32 *)code] = D.27230;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27231 = D.26892 | -1190920191;
  D.27232 = (unsigned int) D.27231;
  MEM[(guint32 *)code] = D.27232;
  code = code + 4;
  goto <D.24711>;
  <D.24768>:
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27233 = D.27031 | -1182334976;
  D.27234 = (unsigned int) D.27233;
  MEM[(guint32 *)code] = D.27234;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27231 = D.26892 | -1190920191;
  D.27232 = (unsigned int) D.27231;
  MEM[(guint32 *)code] = D.27232;
  code = code + 4;
  goto <D.24711>;
  <D.24769>:
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27229 = D.27031 | -1190330368;
  D.27230 = (unsigned int) D.27229;
  MEM[(guint32 *)code] = D.27230;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.27235 = (unsigned int) D.26997;
  MEM[(guint32 *)code] = D.27235;
  code = code + 4;
  goto <D.24711>;
  <D.24770>:
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27233 = D.27031 | -1182334976;
  D.27234 = (unsigned int) D.27233;
  MEM[(guint32 *)code] = D.27234;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.27235 = (unsigned int) D.26997;
  MEM[(guint32 *)code] = D.27235;
  code = code + 4;
  goto <D.24711>;
  <D.24771>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 == D.26742) goto <D.27236>; else goto <D.27237>;
  <D.27236>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.27031 = ins->sreg2;
  D.27239 = D.27238 | D.27031;
  D.27240 = (unsigned int) D.27239;
  MEM[(guint32 *)code] = D.27240;
  code = code + 4;
  goto <D.27241>;
  <D.27237>:
  D.27031 = ins->sreg2;
  D.26742 = ins->dreg;
  if (D.27031 == D.26742) goto <D.27242>; else goto <D.27243>;
  <D.27242>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.26827 = ins->sreg1;
  D.27244 = D.27238 | D.26827;
  D.27245 = (unsigned int) D.27244;
  MEM[(guint32 *)code] = D.27245;
  code = code + 4;
  goto <D.27246>;
  <D.27243>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.27031 = ins->sreg2;
  D.27239 = D.27238 | D.27031;
  D.27240 = (unsigned int) D.27239;
  MEM[(guint32 *)code] = D.27240;
  code = code + 4;
  <D.27246>:
  <D.27241>:
  goto <D.24711>;
  <D.24772>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27247>; else goto <D.27248>;
  <D.27247>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27248>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27249>; else goto <D.27250>;
  <D.27249>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.27251 = (unsigned int) D.27238;
  MEM[(guint32 *)code] = D.27251;
  code = code + 4;
  goto <D.27252>;
  <D.27250>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923201;
  code = code + 4;
  <D.27252>:
  goto <D.24711>;
  <D.24773>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 == D.26742) goto <D.27253>; else goto <D.27254>;
  <D.27253>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27031 = ins->sreg2;
  D.27256 = D.27255 | D.27031;
  D.27257 = (unsigned int) D.27256;
  MEM[(guint32 *)code] = D.27257;
  code = code + 4;
  goto <D.27258>;
  <D.27254>:
  D.27031 = ins->sreg2;
  D.26742 = ins->dreg;
  if (D.27031 == D.26742) goto <D.27259>; else goto <D.27260>;
  <D.27259>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.26827 = ins->sreg1;
  D.27261 = D.27255 | D.26827;
  D.27262 = (unsigned int) D.27261;
  MEM[(guint32 *)code] = D.27262;
  code = code + 4;
  goto <D.27263>;
  <D.27260>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27031 = ins->sreg2;
  D.27256 = D.27255 | D.27031;
  D.27257 = (unsigned int) D.27256;
  MEM[(guint32 *)code] = D.27257;
  code = code + 4;
  <D.27263>:
  <D.27258>:
  goto <D.24711>;
  <D.24774>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27264>; else goto <D.27265>;
  <D.27264>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27265>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27266>; else goto <D.27267>;
  <D.27266>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27268 = (unsigned int) D.27255;
  MEM[(guint32 *)code] = D.27268;
  code = code + 4;
  goto <D.27269>;
  <D.27267>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923202;
  code = code + 4;
  <D.27269>:
  goto <D.24711>;
  <D.24775>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27270>; else goto <D.27271>;
  <D.27270>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27272>;
  <D.27271>:
  src2 = ins->sreg2;
  <D.27272>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27273>; else goto <D.27274>;
  <D.27273>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27274>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.27275 = src2 << 28;
  D.27276 = D.27275 | 13;
  D.27277 = (unsigned int) D.27276;
  MEM[(guint32 *)code] = D.27277;
  code = code + 4;
  goto <D.24711>;
  <D.24776>:
  <D.24777>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27278>; else goto <D.27279>;
  <D.27278>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27279>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.26729 = ins->data.op[1].const_val;
  D.27280 = D.26729 << 16;
  D.27281 = (signed int) D.27280;
  D.27282 = D.27281 & 4128768;
  D.27283 = D.27282 | 13;
  D.27284 = (unsigned int) D.27283;
  MEM[(guint32 *)code] = D.27284;
  code = code + 4;
  goto <D.24711>;
  <D.24778>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27285>; else goto <D.27286>;
  <D.27285>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27287>;
  <D.27286>:
  src2 = ins->sreg2;
  <D.27287>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27288>; else goto <D.27289>;
  <D.27288>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27289>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.27275 = src2 << 28;
  D.27290 = D.27275 | 10;
  D.27291 = (unsigned int) D.27290;
  MEM[(guint32 *)code] = D.27291;
  code = code + 4;
  goto <D.24711>;
  <D.24779>:
  <D.24780>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27292>; else goto <D.27293>;
  <D.27292>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27293>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.26729 = ins->data.op[1].const_val;
  D.27280 = D.26729 << 16;
  D.27281 = (signed int) D.27280;
  D.27282 = D.27281 & 4128768;
  D.27294 = D.27282 | 10;
  D.27295 = (unsigned int) D.27294;
  MEM[(guint32 *)code] = D.27295;
  code = code + 4;
  goto <D.24711>;
  <D.24781>:
  <D.24782>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27296>; else goto <D.27297>;
  <D.27296>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27297>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.26729 = ins->data.op[1].const_val;
  D.27280 = D.26729 << 16;
  D.27281 = (signed int) D.27280;
  D.27282 = D.27281 & 4128768;
  D.27298 = D.27282 | 12;
  D.27299 = (unsigned int) D.27298;
  MEM[(guint32 *)code] = D.27299;
  code = code + 4;
  goto <D.24711>;
  <D.24783>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27300>; else goto <D.27301>;
  <D.27300>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27302>;
  <D.27301>:
  src2 = ins->sreg2;
  <D.27302>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27303>; else goto <D.27304>;
  <D.27303>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27304>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26988 = D.26893 | -5376;
  D.26742 = ins->dreg;
  D.26992 = (signed short) D.26742;
  D.26993 = D.26988 | D.26992;
  D.26994 = (short unsigned int) D.26993;
  MEM[(guint16 *)code] = D.26994;
  code = code + 2;
  D.27275 = src2 << 28;
  D.27305 = D.27275 | 12;
  D.27306 = (unsigned int) D.27305;
  MEM[(guint32 *)code] = D.27306;
  code = code + 4;
  goto <D.24711>;
  <D.24784>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27307>; else goto <D.27308>;
  <D.27307>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27308>:
  MEM[(guint32 *)code] = 2802450431;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27268 = (unsigned int) D.27255;
  MEM[(guint32 *)code] = D.27268;
  code = code + 4;
  goto <D.24711>;
  <D.24785>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27309 = D.26892 | -1190985728;
  D.26827 = ins->sreg1;
  D.27310 = D.27309 | D.26827;
  D.27311 = (unsigned int) D.27310;
  MEM[(guint32 *)code] = D.27311;
  code = code + 4;
  goto <D.24711>;
  <D.24786>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27312>; else goto <D.27313>;
  <D.27312>:
  src2 = ins->sreg1;
  goto <D.27314>;
  <D.27313>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27315>; else goto <D.27316>;
  <D.27315>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27316>:
  <D.27314>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27317 = D.26892 | -1190395904;
  D.27318 = D.27317 | src2;
  D.27319 = (unsigned int) D.27318;
  MEM[(guint32 *)code] = D.27319;
  code = code + 4;
  goto <D.24711>;
  <D.24787>:
  <D.24788>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27320>; else goto <D.27321>;
  <D.27320>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27321>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27322>; else goto <D.27323>;
  <D.27322>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27324 = D.26731 | -1478950912;
  D.27325 = (unsigned int) D.27324;
  MEM[(guint32 *)code] = D.27325;
  code = code + 4;
  goto <D.27326>;
  <D.27323>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.27326>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27327 = D.26892 | -1190395891;
  D.27328 = (unsigned int) D.27327;
  MEM[(guint32 *)code] = D.27328;
  code = code + 4;
  goto <D.24711>;
  <D.24789>:
  {
    short int * o[2];

    try
      {
        D.26827 = ins->sreg1;
        D.27329 = D.26827 | -1191051248;
        D.27330 = (unsigned int) D.27329;
        MEM[(guint32 *)code] = D.27330;
        code = code + 4;
        MEM[(guint32 *)code] = 2810445824;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[0] = D.27333;
        D.27031 = ins->sreg2;
        D.27334 = D.27031 | -1191051264;
        D.27335 = (unsigned int) D.27334;
        MEM[(guint32 *)code] = D.27335;
        code = code + 4;
        MEM[(guint32 *)code] = 2809397254;
        code = code + 4;
        MEM[(guint32 *)code] = 2803433472;
        code = code + 4;
        MEM[(guint32 *)code] = 2817785856;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[1] = D.27333;
        MEM[(guint32 *)code] = 3112304641;
        code = code + 4;
        D.27031 = ins->sreg2;
        D.27336 = D.27031 | -1190395888;
        D.27337 = (unsigned int) D.27336;
        MEM[(guint32 *)code] = D.27337;
        code = code + 4;
        MEM[(guint32 *)code] = 3112304641;
        code = code + 4;
        MEM[(guint16 *)code] = 60160;
        code = code + 2;
        MEM[(guint32 *)code] = 4128780;
        code = code + 4;
        MEM[(guint32 *)code] = 3103916032;
        code = code + 4;
        code.46 = (long int) code;
        D.26696 = cfg->native_code;
        D.26709 = (long int) D.26696;
        D.26710 = code.46 - D.26709;
        D.27080 = (int) D.26710;
        mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
        MEM[(guint16 *)code] = 49268;
        code = code + 2;
        MEM[(guint32 *)code] = 0;
        code = code + 4;
        D.27338 = o[0];
        code.50 = (long unsigned int) code;
        D.27338 = o[0];
        D.27339 = (long unsigned int) D.27338;
        D.27340 = code.50 - D.27339;
        D.27341 = (unsigned short) D.27340;
        D.27342 = D.27341 + 2;
        D.27343 = (short int) D.27342;
        D.27344 = D.27343 / 2;
        *D.27338 = D.27344;
        D.27345 = o[1];
        code.50 = (long unsigned int) code;
        D.27345 = o[1];
        D.27346 = (long unsigned int) D.27345;
        D.27347 = code.50 - D.27346;
        D.27348 = (unsigned short) D.27347;
        D.27349 = D.27348 + 2;
        D.27350 = (short int) D.27349;
        D.27351 = D.27350 / 2;
        *D.27345 = D.27351;
        D.26742 = ins->dreg;
        D.26892 = D.26742 << 4;
        D.27231 = D.26892 | -1190920191;
        D.27232 = (unsigned int) D.27231;
        MEM[(guint32 *)code] = D.27232;
        code = code + 4;
      }
    finally
      {
        o = {CLOBBER};
      }
  }
  goto <D.24711>;
  <D.24791>:
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27352 = D.27031 | -1182400512;
  D.27353 = (unsigned int) D.27352;
  MEM[(guint32 *)code] = D.27353;
  code = code + 4;
  MEM[(guint32 *)code] = 3103916032;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49268;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27231 = D.26892 | -1190920191;
  D.27232 = (unsigned int) D.27231;
  MEM[(guint32 *)code] = D.27232;
  code = code + 4;
  goto <D.24711>;
  <D.24792>:
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 3636);
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27354>; else goto <D.27355>;
  <D.27354>:
  src2 = ins->sreg1;
  goto <D.27356>;
  <D.27355>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27357>; else goto <D.27358>;
  <D.27357>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27358>:
  <D.27356>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27143 = D.26892 | -1190526976;
  D.27144 = D.27143 | src2;
  D.27145 = (unsigned int) D.27144;
  MEM[(guint32 *)code] = D.27145;
  code = code + 4;
  goto <D.24711>;
  <D.24793>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27361>; else goto <D.27362>;
  <D.27361>:
  src2 = ins->sreg1;
  goto <D.27363>;
  <D.27362>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27364>; else goto <D.27365>;
  <D.27364>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27365>:
  <D.27363>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27088 = D.27087 | src2;
  D.27089 = (unsigned int) D.27088;
  MEM[(guint32 *)code] = D.27089;
  code = code + 4;
  goto <D.24711>;
  <D.24794>:
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 3647);
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27366>; else goto <D.27367>;
  <D.27366>:
  src2 = ins->sreg1;
  goto <D.27368>;
  <D.27367>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27369>; else goto <D.27370>;
  <D.27369>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27370>:
  <D.27368>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27100 = D.26892 | -1182269440;
  D.27101 = D.27100 | src2;
  D.27102 = (unsigned int) D.27101;
  MEM[(guint32 *)code] = D.27102;
  code = code + 4;
  goto <D.24711>;
  <D.24795>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27371>; else goto <D.27372>;
  <D.27371>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27372>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27373>; else goto <D.27374>;
  <D.27373>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27107 = D.27009 | -1492451328;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27108 = D.27107 | D.26731;
  D.27109 = (unsigned int) D.27108;
  MEM[(guint32 *)code] = D.27109;
  code = code + 4;
  goto <D.27375>;
  <D.27374>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923096;
  code = code + 4;
  <D.27375>:
  goto <D.24711>;
  <D.24796>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27376>; else goto <D.27377>;
  <D.27376>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27377>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27378>; else goto <D.27379>;
  <D.27378>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27100 = D.26892 | -1182269440;
  D.27122 = (unsigned int) D.27100;
  MEM[(guint32 *)code] = D.27122;
  code = code + 4;
  goto <D.27380>;
  <D.27379>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27124 = D.26892 | -1182269427;
  D.27125 = (unsigned int) D.27124;
  MEM[(guint32 *)code] = D.27125;
  code = code + 4;
  <D.27380>:
  goto <D.24711>;
  <D.24797>:
  <D.24798>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27381>; else goto <D.27382>;
  <D.27381>:
  src2 = ins->sreg1;
  goto <D.27383>;
  <D.27382>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27384>; else goto <D.27385>;
  <D.27384>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27385>:
  <D.27383>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27087 = D.26892 | -1190658048;
  D.27088 = D.27087 | src2;
  D.27089 = (unsigned int) D.27088;
  MEM[(guint32 *)code] = D.27089;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24799>:
  <D.24800>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27386>; else goto <D.27387>;
  <D.27386>:
  src2 = ins->sreg1;
  goto <D.27388>;
  <D.27387>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27389>; else goto <D.27390>;
  <D.27389>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27390>:
  <D.27388>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27143 = D.26892 | -1190526976;
  D.27144 = D.27143 | src2;
  D.27145 = (unsigned int) D.27144;
  MEM[(guint32 *)code] = D.27145;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49204;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24801>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27391>; else goto <D.27392>;
  <D.27391>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27393 = D.27031 | -1189871408;
  D.27394 = (unsigned int) D.27393;
  MEM[(guint32 *)code] = D.27394;
  code = code + 4;
  goto <D.27395>;
  <D.27392>:
  src2 = ins->sreg2;
  <D.27395>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27396>; else goto <D.27397>;
  <D.27396>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27397>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27188 = D.26892 | -1190461440;
  D.27398 = D.27188 | src2;
  D.27399 = (unsigned int) D.27398;
  MEM[(guint32 *)code] = D.27399;
  code = code + 4;
  goto <D.24711>;
  <D.24802>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27400>; else goto <D.27401>;
  <D.27400>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27393 = D.27031 | -1189871408;
  D.27394 = (unsigned int) D.27393;
  MEM[(guint32 *)code] = D.27394;
  code = code + 4;
  goto <D.27402>;
  <D.27401>:
  src2 = ins->sreg2;
  <D.27402>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27403>; else goto <D.27404>;
  <D.27403>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27404>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27167 = D.26892 | -1190592512;
  D.27168 = D.27167 | src2;
  D.27169 = (unsigned int) D.27168;
  MEM[(guint32 *)code] = D.27169;
  code = code + 4;
  goto <D.24711>;
  <D.24803>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27405>; else goto <D.27406>;
  <D.27405>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27393 = D.27031 | -1189871408;
  D.27394 = (unsigned int) D.27393;
  MEM[(guint32 *)code] = D.27394;
  code = code + 4;
  goto <D.27407>;
  <D.27406>:
  src2 = ins->sreg2;
  <D.27407>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27408>; else goto <D.27409>;
  <D.27408>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27409>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27180 = D.26892 | -1182203904;
  D.27181 = D.27180 | src2;
  D.27182 = (unsigned int) D.27181;
  MEM[(guint32 *)code] = D.27182;
  code = code + 4;
  goto <D.24711>;
  <D.24804>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27410>; else goto <D.27411>;
  <D.27410>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27411>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.27185 = D.26785 + 32767;
  if (D.27185 <= 65535) goto <D.27412>; else goto <D.27413>;
  <D.27412>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27107 = D.27009 | -1492451328;
  D.26729 = ins->data.op[1].const_val;
  D.27414 = (unsigned int) D.26729;
  D.27415 = -D.27414;
  D.27416 = (signed int) D.27415;
  D.27417 = D.27416 & 65535;
  D.27418 = D.27107 | D.27417;
  D.27419 = (unsigned int) D.27418;
  MEM[(guint32 *)code] = D.27419;
  code = code + 4;
  goto <D.27420>;
  <D.27413>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923097;
  code = code + 4;
  <D.27420>:
  goto <D.24711>;
  <D.24805>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923099;
  code = code + 4;
  goto <D.24711>;
  <D.24806>:
  <D.24807>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27421>; else goto <D.27422>;
  <D.27421>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27423>;
  <D.27422>:
  src2 = ins->sreg2;
  <D.27423>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27424>; else goto <D.27425>;
  <D.27424>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27425>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27426 = D.26893 | 6912;
  D.27132 = (signed short) src2;
  D.27427 = D.27426 | D.27132;
  D.27428 = (short unsigned int) D.27427;
  MEM[(guint16 *)code] = D.27428;
  code = code + 2;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26742 = ins->dreg;
  D.27136 = D.27135 | D.26742;
  D.27137 = (unsigned int) D.27136;
  MEM[(guint32 *)code] = D.27137;
  code = code + 4;
  goto <D.24711>;
  <D.24808>:
  <D.24809>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27429>; else goto <D.27430>;
  <D.27429>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27431>;
  <D.27430>:
  src2 = ins->sreg2;
  <D.27431>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27432>; else goto <D.27433>;
  <D.27432>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27433>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27434 = D.26893 | 7936;
  D.27132 = (signed short) src2;
  D.27435 = D.27434 | D.27132;
  D.27436 = (short unsigned int) D.27435;
  MEM[(guint16 *)code] = D.27436;
  code = code + 2;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49348;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27146 = D.26892 | -1189740544;
  D.26742 = ins->dreg;
  D.27147 = D.27146 | D.26742;
  D.27148 = (unsigned int) D.27147;
  MEM[(guint32 *)code] = D.27148;
  code = code + 4;
  goto <D.24711>;
  <D.24810>:
  <D.24811>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27437>; else goto <D.27438>;
  <D.27437>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27439>;
  <D.27438>:
  src2 = ins->sreg2;
  <D.27439>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27440>; else goto <D.27441>;
  <D.27440>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27441>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27167 = D.26892 | -1190592512;
  D.27168 = D.27167 | src2;
  D.27169 = (unsigned int) D.27168;
  MEM[(guint32 *)code] = D.27169;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24812>:
  <D.24813>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27442>; else goto <D.27443>;
  <D.27442>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27444>;
  <D.27443>:
  src2 = ins->sreg2;
  <D.27444>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27445>; else goto <D.27446>;
  <D.27445>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27446>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27188 = D.26892 | -1190461440;
  D.27398 = D.27188 | src2;
  D.27399 = (unsigned int) D.27398;
  MEM[(guint32 *)code] = D.27399;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49348;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24814>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27447>; else goto <D.27448>;
  <D.27447>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27393 = D.27031 | -1189871408;
  D.27394 = (unsigned int) D.27393;
  MEM[(guint32 *)code] = D.27394;
  code = code + 4;
  goto <D.27449>;
  <D.27448>:
  src2 = ins->sreg2;
  <D.27449>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27450>; else goto <D.27451>;
  <D.27450>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27451>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27452 = D.27000 | src2;
  D.27453 = (unsigned int) D.27452;
  MEM[(guint32 *)code] = D.27453;
  code = code + 4;
  goto <D.24711>;
  <D.24815>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27454>; else goto <D.27455>;
  <D.27454>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27455>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27456>; else goto <D.27457>;
  <D.27456>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27000 = D.26892 | -1182793728;
  D.27001 = (unsigned int) D.27000;
  MEM[(guint32 *)code] = D.27001;
  code = code + 4;
  goto <D.27458>;
  <D.27457>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923200;
  code = code + 4;
  <D.27458>:
  goto <D.24711>;
  <D.24816>:
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint32 *)code] = 2382364704;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27461 = D.27042 | 7424;
  D.27462 = (short unsigned int) D.27461;
  MEM[(guint16 *)code] = D.27462;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.24817>:
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint32 *)code] = 2348810272;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27465 = D.27031 | -1181286400;
  D.27466 = (unsigned int) D.27465;
  MEM[(guint32 *)code] = D.27466;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.24818>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27467>; else goto <D.27468>;
  <D.27467>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27324 = D.26731 | -1478950912;
  D.27325 = (unsigned int) D.27324;
  MEM[(guint32 *)code] = D.27325;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  goto <D.27469>;
  <D.27468>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923092;
  code = code + 4;
  <D.27469>:
  MEM[(guint32 *)code] = 2382364704;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27461 = D.27042 | 7424;
  D.27462 = (short unsigned int) D.27461;
  MEM[(guint16 *)code] = D.27462;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.24819>:
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint32 *)code] = 2382364704;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27461 = D.27042 | 7424;
  D.27462 = (short unsigned int) D.27461;
  MEM[(guint16 *)code] = D.27462;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.27470 = (unsigned int) D.27135;
  MEM[(guint32 *)code] = D.27470;
  code = code + 4;
  goto <D.24711>;
  <D.24820>:
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint32 *)code] = 2348810272;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27465 = D.27031 | -1181286400;
  D.27466 = (unsigned int) D.27465;
  MEM[(guint32 *)code] = D.27466;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.27470 = (unsigned int) D.27135;
  MEM[(guint32 *)code] = D.27470;
  code = code + 4;
  goto <D.24711>;
  <D.24821>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27471>; else goto <D.27472>;
  <D.27471>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27324 = D.26731 | -1478950912;
  D.27325 = (unsigned int) D.27324;
  MEM[(guint32 *)code] = D.27325;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  goto <D.27473>;
  <D.27472>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27459 = D.26827 | -1189871616;
  D.27460 = (unsigned int) D.27459;
  MEM[(guint32 *)code] = D.27460;
  code = code + 4;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923092;
  code = code + 4;
  <D.27473>:
  MEM[(guint32 *)code] = 2382364704;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.27461 = D.27042 | 7424;
  D.27462 = (short unsigned int) D.27461;
  MEM[(guint16 *)code] = D.27462;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.27470 = (unsigned int) D.27135;
  MEM[(guint32 *)code] = D.27470;
  code = code + 4;
  goto <D.24711>;
  <D.24822>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27474>; else goto <D.27475>;
  <D.27474>:
  src2 = ins->sreg1;
  goto <D.27476>;
  <D.27475>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27477>; else goto <D.27478>;
  <D.27477>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27478>:
  <D.27476>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.27479 = D.27238 | src2;
  D.27480 = (unsigned int) D.27479;
  MEM[(guint32 *)code] = D.27480;
  code = code + 4;
  goto <D.24711>;
  <D.24823>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27481>; else goto <D.27482>;
  <D.27481>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27482>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27483>; else goto <D.27484>;
  <D.27483>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27238 = D.26892 | -1182728192;
  D.27251 = (unsigned int) D.27238;
  MEM[(guint32 *)code] = D.27251;
  code = code + 4;
  goto <D.27485>;
  <D.27484>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923201;
  code = code + 4;
  <D.27485>:
  goto <D.24711>;
  <D.24824>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27486>; else goto <D.27487>;
  <D.27486>:
  src2 = ins->sreg1;
  goto <D.27488>;
  <D.27487>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27489>; else goto <D.27490>;
  <D.27489>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27490>:
  <D.27488>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27491 = D.27255 | src2;
  D.27492 = (unsigned int) D.27491;
  MEM[(guint32 *)code] = D.27492;
  code = code + 4;
  goto <D.24711>;
  <D.24825>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27493>; else goto <D.27494>;
  <D.27493>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27494>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27495>; else goto <D.27496>;
  <D.27495>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.26732 = D.26731 | -1492582400;
  D.26733 = (unsigned int) D.26732;
  MEM[(guint32 *)code] = D.26733;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27268 = (unsigned int) D.27255;
  MEM[(guint32 *)code] = D.27268;
  code = code + 4;
  goto <D.27497>;
  <D.27496>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923202;
  code = code + 4;
  <D.27497>:
  goto <D.24711>;
  <D.24826>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27498>; else goto <D.27499>;
  <D.27498>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27500>;
  <D.27499>:
  src2 = ins->sreg2;
  <D.27500>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27501>; else goto <D.27502>;
  <D.27501>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27502>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27503 = D.27009 | -1996488704;
  D.27504 = src2 << 12;
  D.27505 = D.27503 | D.27504;
  D.27506 = (unsigned int) D.27505;
  MEM[(guint32 *)code] = D.27506;
  code = code + 4;
  goto <D.24711>;
  <D.24827>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27507>; else goto <D.27508>;
  <D.27507>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27508>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27503 = D.27009 | -1996488704;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.27509 = D.26730 & 31;
  D.27510 = D.27503 | D.27509;
  D.27511 = (unsigned int) D.27510;
  MEM[(guint32 *)code] = D.27511;
  code = code + 4;
  goto <D.24711>;
  <D.24828>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27512>; else goto <D.27513>;
  <D.27512>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27514>;
  <D.27513>:
  src2 = ins->sreg2;
  <D.27514>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27515>; else goto <D.27516>;
  <D.27515>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27516>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27517 = D.27009 | -1979711488;
  D.27504 = src2 << 12;
  D.27518 = D.27517 | D.27504;
  D.27519 = (unsigned int) D.27518;
  MEM[(guint32 *)code] = D.27519;
  code = code + 4;
  goto <D.24711>;
  <D.24829>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27520>; else goto <D.27521>;
  <D.27520>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27521>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27517 = D.27009 | -1979711488;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.27509 = D.26730 & 31;
  D.27522 = D.27517 | D.27509;
  D.27523 = (unsigned int) D.27522;
  MEM[(guint32 *)code] = D.27523;
  code = code + 4;
  goto <D.24711>;
  <D.24830>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27524>; else goto <D.27525>;
  <D.27524>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27525>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27526 = D.27009 | -2013265920;
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.27509 = D.26730 & 31;
  D.27527 = D.27526 | D.27509;
  D.27528 = (unsigned int) D.27527;
  MEM[(guint32 *)code] = D.27528;
  code = code + 4;
  goto <D.24711>;
  <D.24831>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27529>; else goto <D.27530>;
  <D.27529>:
  src2 = 13;
  D.27031 = ins->sreg2;
  D.27162 = D.27031 | -1190919984;
  D.27163 = (unsigned int) D.27162;
  MEM[(guint32 *)code] = D.27163;
  code = code + 4;
  goto <D.27531>;
  <D.27530>:
  src2 = ins->sreg2;
  <D.27531>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27532>; else goto <D.27533>;
  <D.27532>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27533>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27526 = D.27009 | -2013265920;
  D.27504 = src2 << 12;
  D.27534 = D.27526 | D.27504;
  D.27535 = (unsigned int) D.27534;
  MEM[(guint32 *)code] = D.27535;
  code = code + 4;
  goto <D.24711>;
  <D.24832>:
  D.26827 = ins->sreg1;
  D.26742 = ins->dreg;
  if (D.26827 != D.26742) goto <D.27536>; else goto <D.27537>;
  <D.27536>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27537>:
  MEM[(guint32 *)code] = 2802450431;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27255 = D.26892 | -1182662656;
  D.27268 = (unsigned int) D.27255;
  MEM[(guint32 *)code] = D.27268;
  code = code + 4;
  goto <D.24711>;
  <D.24833>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27309 = D.26892 | -1190985728;
  D.26827 = ins->sreg1;
  D.27310 = D.27309 | D.26827;
  D.27311 = (unsigned int) D.27310;
  MEM[(guint32 *)code] = D.27311;
  code = code + 4;
  goto <D.24711>;
  <D.24834>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.27538>; else goto <D.27539>;
  <D.27538>:
  src2 = ins->sreg1;
  goto <D.27540>;
  <D.27539>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27541>; else goto <D.27542>;
  <D.27541>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27542>:
  <D.27540>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27543 = D.26892 | -1303248896;
  D.27544 = D.27543 | src2;
  D.27545 = (unsigned int) D.27544;
  MEM[(guint32 *)code] = D.27545;
  code = code + 4;
  goto <D.24711>;
  <D.24835>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27546>; else goto <D.27547>;
  <D.27546>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  <D.27547>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.27548>; else goto <D.27549>;
  <D.27548>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.27324 = D.26731 | -1478950912;
  D.27325 = (unsigned int) D.27324;
  MEM[(guint32 *)code] = D.27325;
  code = code + 4;
  goto <D.27550>;
  <D.27549>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.27071 = (unsigned int) D.26729;
  MEM[(guint32 *)code] = D.27071;
  code = code + 4;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923092;
  code = code + 4;
  <D.27550>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27551 = D.26892 | -1303248883;
  D.27552 = (unsigned int) D.27551;
  MEM[(guint32 *)code] = D.27552;
  code = code + 4;
  goto <D.24711>;
  <D.24836>:
  {
    short int * o[2];

    try
      {
        D.26827 = ins->sreg1;
        D.26989 = (signed short) D.26827;
        D.27553 = D.26989 | 4624;
        D.27554 = (short unsigned int) D.27553;
        MEM[(guint16 *)code] = D.27554;
        code = code + 2;
        MEM[(guint32 *)code] = 2810445824;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[0] = D.27333;
        D.27031 = ins->sreg2;
        D.27042 = (signed short) D.27031;
        D.27555 = D.27042 | 4608;
        D.27556 = (short unsigned int) D.27555;
        MEM[(guint16 *)code] = D.27556;
        code = code + 2;
        MEM[(guint32 *)code] = 2809397254;
        code = code + 4;
        MEM[(guint32 *)code] = 2803367936;
        code = code + 4;
        MEM[(guint32 *)code] = 2817785856;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[1] = D.27333;
        MEM[(guint16 *)code] = 5889;
        code = code + 2;
        D.27031 = ins->sreg2;
        D.27557 = D.27031 | -1303248880;
        D.27558 = (unsigned int) D.27557;
        MEM[(guint32 *)code] = D.27558;
        code = code + 4;
        MEM[(guint16 *)code] = 5889;
        code = code + 2;
        MEM[(guint32 *)code] = 2281701407;
        code = code + 4;
        MEM[(guint16 *)code] = 4608;
        code = code + 2;
        code.46 = (long int) code;
        D.26696 = cfg->native_code;
        D.26709 = (long int) D.26696;
        D.26710 = code.46 - D.26709;
        D.27080 = (int) D.26710;
        mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
        MEM[(guint16 *)code] = 49268;
        code = code + 2;
        MEM[(guint32 *)code] = 0;
        code = code + 4;
        D.27559 = o[0];
        code.50 = (long unsigned int) code;
        D.27559 = o[0];
        D.27560 = (long unsigned int) D.27559;
        D.27561 = code.50 - D.27560;
        D.27562 = (unsigned short) D.27561;
        D.27563 = D.27562 + 2;
        D.27564 = (short int) D.27563;
        D.27565 = D.27564 / 2;
        *D.27559 = D.27565;
        D.27566 = o[1];
        code.50 = (long unsigned int) code;
        D.27566 = o[1];
        D.27567 = (long unsigned int) D.27566;
        D.27568 = code.50 - D.27567;
        D.27569 = (unsigned short) D.27568;
        D.27570 = D.27569 + 2;
        D.27571 = (short int) D.27570;
        D.27572 = D.27571 / 2;
        *D.27566 = D.27572;
        D.26742 = ins->dreg;
        D.26892 = D.26742 << 4;
        D.27463 = D.26892 | -1189871615;
        D.27464 = (unsigned int) D.27463;
        MEM[(guint32 *)code] = D.27464;
        code = code + 4;
      }
    finally
      {
        o = {CLOBBER};
      }
  }
  goto <D.24711>;
  <D.24838>:
  MEM[(guint32 *)code] = 2802319360;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27573 = D.26989 | 6160;
  D.27574 = (short unsigned int) D.27573;
  MEM[(guint16 *)code] = D.27574;
  code = code + 2;
  D.27031 = ins->sreg2;
  D.27575 = D.27031 | -1181351936;
  D.27576 = (unsigned int) D.27575;
  MEM[(guint32 *)code] = D.27576;
  code = code + 4;
  MEM[(guint16 *)code] = 4608;
  code = code + 2;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49268;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.24839>:
  <D.24840>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.27577 = D.26738 + 32768;
  if (D.27577 <= 65535) goto <D.27578>; else goto <D.27579>;
  <D.27578>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.27581 = D.26764 & 65535;
  D.27582 = D.27580 | D.27581;
  D.27583 = (unsigned int) D.27582;
  MEM[(guint32 *)code] = D.27583;
  code = code + 4;
  goto <D.27584>;
  <D.27579>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.27584>:
  goto <D.24711>;
  <D.24841>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27585 = ins->data.op[1].src;
  D.27586 = (long int) D.27585;
  D.27587 = (<unnamed type>) D.27586;
  D.27588 = ins->data.op[0].p;
  mono_add_patch_info (cfg, D.27080, D.27587, D.27588);
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  goto <D.24711>;
  <D.24842>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27585 = ins->data.op[1].src;
  D.27586 = (long int) D.27585;
  D.27587 = (<unnamed type>) D.27586;
  D.27588 = ins->data.op[0].p;
  mono_add_patch_info (cfg, D.27080, D.27587, D.27588);
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  goto <D.24711>;
  <D.24843>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27589>; else goto <D.27590>;
  <D.27589>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  <D.27590>:
  goto <D.24711>;
  <D.24844>:
  <D.24845>:
  <D.24846>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  goto <D.24711>;
  <D.24847>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  goto <D.24711>;
  <D.24848>:
  <D.24849>:
  <D.24850>:
  <D.24851>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27146 = D.26892 | -1189740544;
  D.26827 = ins->sreg1;
  D.27591 = D.27146 | D.26827;
  D.27592 = (unsigned int) D.27591;
  MEM[(guint32 *)code] = D.27592;
  code = code + 4;
  goto <D.24711>;
  <D.24852>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint64 *)code] = 4294967295;
  code = code + 8;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923105;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49188;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27593 = D.26828 | -1191051264;
  D.26827 = ins->sreg1;
  D.27594 = D.27593 | D.26827;
  D.27595 = (unsigned int) D.27594;
  MEM[(guint32 *)code] = D.27595;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49220;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27146 = D.26892 | -1189740544;
  D.26827 = ins->sreg1;
  D.27591 = D.27146 | D.26827;
  D.27592 = (unsigned int) D.27591;
  MEM[(guint32 *)code] = D.27592;
  code = code + 4;
  goto <D.24711>;
  <D.24853>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint64 *)code] = 2147483647;
  code = code + 8;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.26830 = D.26829 | -7424;
  D.26831 = (short unsigned int) D.26830;
  MEM[(guint16 *)code] = D.26831;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923104;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49188;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27593 = D.26828 | -1191051264;
  D.26827 = ins->sreg1;
  D.27594 = D.27593 | D.26827;
  D.27595 = (unsigned int) D.27594;
  MEM[(guint32 *)code] = D.27595;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
  MEM[(guint16 *)code] = 49220;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.26827 = ins->sreg1;
  D.27359 = D.27135 | D.26827;
  D.27360 = (unsigned int) D.27359;
  MEM[(guint32 *)code] = D.27360;
  code = code + 4;
  goto <D.24711>;
  <D.24854>:
  <D.24855>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.27596>; else goto <D.27597>;
  <D.27596>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.27597>:
  goto <D.24711>;
  <D.24856>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27601 = D.26892 | -1287389184;
  D.26827 = ins->sreg1;
  D.27602 = D.27601 | D.26827;
  D.27603 = (unsigned int) D.27602;
  MEM[(guint32 *)code] = D.27603;
  code = code + 4;
  goto <D.24711>;
  <D.24857>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.27577 = D.26738 + 32768;
  if (D.27577 <= 65535) goto <D.27604>; else goto <D.27605>;
  <D.27604>:
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.27581 = D.26764 & 65535;
  D.27606 = D.27581 | -1478950912;
  D.27607 = (unsigned int) D.27606;
  MEM[(guint32 *)code] = D.27607;
  code = code + 4;
  goto <D.27608>;
  <D.27605>:
  MEM[(guint32 *)code] = 2815754240;
  code = code + 4;
  MEM[(guint32 *)code] = 2817785860;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.27608>:
  MEM[(guint32 *)code] = 2991521808;
  code = code + 4;
  MEM[(guint16 *)code] = 60177;
  code = code + 2;
  MEM[(guint32 *)code] = 2097165;
  code = code + 4;
  MEM[(guint32 *)code] = 2991521809;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26902 = D.26893 | -7411;
  D.26903 = (short unsigned int) D.26902;
  MEM[(guint16 *)code] = D.26903;
  code = code + 2;
  MEM[(guint32 *)code] = 268435460;
  code = code + 4;
  goto <D.24711>;
  <D.24858>:
  D.27609 = cfg->method;
  D.27610 = BIT_FIELD_REF <*D.27609, 64, 256>;
  D.27611 = D.27610 & 36028797018963968;
  if (D.27611 != 0) goto <D.27612>; else goto <D.27613>;
  <D.27612>:
  {
    int lmfOffset;

    lmfOffset = 0;
    D.27614 = cfg->frame_reg;
    D.27615 = D.27614 | 3104047312;
    MEM[(guint32 *)code] = D.27615;
    code = code + 4;
    D.27616 = cfg->stack_usage;
    D.27617 = D.27616 + 4294966952;
    lmfOffset = (int) D.27617;
    D.27618 = lmfOffset & 65535;
    D.27619 = D.27618 | -1478819840;
    D.27620 = (unsigned int) D.27619;
    MEM[(guint32 *)code] = D.27620;
    code = code + 4;
    MEM[(guint16 *)code] = 58208;
    code = code + 2;
    MEM[(guint32 *)code] = 3490185220;
    code = code + 4;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 3489660932;
    code = code + 4;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 1610612740;
    code = code + 4;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 1610612772;
    code = code + 4;
  }
  <D.27613>:
  D.27621 = cfg->flags;
  D.27622 = D.27621 & 16;
  if (D.27622 != 0) goto <D.27623>; else goto <D.27624>;
  <D.27623>:
  code = emit_load_volatile_arguments (code, cfg);
  <D.27624>:
  code = backUpStackPtr (cfg, code);
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  D.27614 = cfg->frame_reg;
  D.27625 = D.27614 << 28;
  D.27626 = D.27625 | 7340036;
  MEM[(guint32 *)code] = D.27626;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27588 = ins->data.op[0].p;
  mono_add_patch_info (cfg, D.27080, 4, D.27588);
  MEM[(guint16 *)code] = 49396;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24860>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26904 = D.26896 | 4;
  D.26905 = (unsigned int) D.26904;
  MEM[(guint32 *)code] = D.26905;
  code = code + 4;
  MEM[(guint32 *)code] = 3103916032;
  code = code + 4;
  goto <D.24711>;
  <D.24861>:
  {
    int offset;

    D.27627 = cfg->sig_cookie;
    D.27628 = (unsigned int) D.27627;
    D.27616 = cfg->stack_usage;
    D.27629 = D.27628 + D.27616;
    offset = (int) D.27629;
    offset.51 = (unsigned int) offset;
    D.27631 = offset.51 + 32768;
    if (D.27631 <= 65535) goto <D.27632>; else goto <D.27633>;
    <D.27632>:
    D.27634 = offset & 65535;
    D.27635 = D.27634 | -1492582400;
    D.27636 = (unsigned int) D.27635;
    MEM[(guint32 *)code] = D.27636;
    code = code + 4;
    goto <D.27637>;
    <D.27633>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27638 = (long unsigned int) offset;
    MEM[(guint64 *)code] = D.27638;
    code = code + 8;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 3489660932;
    code = code + 4;
    <D.27637>:
    D.27614 = cfg->frame_reg;
    D.27639 = D.27614 | 3104309248;
    MEM[(guint32 *)code] = D.27639;
    code = code + 4;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    D.26827 = ins->sreg1;
    D.26896 = D.26827 << 28;
    D.27640 = D.26896 | 36;
    D.27641 = (unsigned int) D.27640;
    MEM[(guint32 *)code] = D.27641;
    code = code + 4;
  }
  goto <D.24711>;
  <D.24863>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  call = ins;
  D.27642 = ins->flags;
  D.27643 = (int) D.27642;
  D.27644 = D.27643 & 1;
  if (D.27644 != 0) goto <D.27645>; else goto <D.27646>;
  <D.27645>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27647 = call->method;
  mono_add_patch_info (cfg, D.27080, 3, D.27647);
  goto <D.27648>;
  <D.27646>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27649 = call->fptr;
  mono_add_patch_info (cfg, D.27080, 1, D.27649);
  <D.27648>:
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 3566;
  code = code + 2;
  D.27650 = call->signature;
  D.27651 = D.27650->ret;
  D.27652 = D.27651->type;
  if (D.27652 == 12) goto <D.27653>; else goto <D.27654>;
  <D.27653>:
  MEM[(guint32 *)code] = 3003383808;
  code = code + 4;
  <D.27654>:
  goto <D.24711>;
  <D.24864>:
  <D.24865>:
  <D.24866>:
  <D.24867>:
  <D.24868>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  call = ins;
  D.27642 = ins->flags;
  D.27643 = (int) D.27642;
  D.27644 = D.27643 & 1;
  if (D.27644 != 0) goto <D.27655>; else goto <D.27656>;
  <D.27655>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27647 = call->method;
  mono_add_patch_info (cfg, D.27080, 3, D.27647);
  goto <D.27657>;
  <D.27656>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27649 = call->fptr;
  mono_add_patch_info (cfg, D.27080, 1, D.27649);
  <D.27657>:
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 3566;
  code = code + 2;
  goto <D.24711>;
  <D.24869>:
  call = ins;
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  D.27650 = call->signature;
  D.27651 = D.27650->ret;
  D.27652 = D.27651->type;
  if (D.27652 == 12) goto <D.27658>; else goto <D.27659>;
  <D.27658>:
  MEM[(guint32 *)code] = 3003383808;
  code = code + 4;
  <D.27659>:
  goto <D.24711>;
  <D.24870>:
  <D.24871>:
  <D.24872>:
  <D.24873>:
  <D.24874>:
  D.26827 = ins->sreg1;
  D.27227 = D.26827 | -1190920176;
  D.27228 = (unsigned int) D.27227;
  MEM[(guint32 *)code] = D.27228;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  goto <D.24711>;
  <D.24875>:
  call = ins;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  D.27650 = call->signature;
  D.27651 = D.27650->ret;
  D.27652 = D.27651->type;
  if (D.27652 == 12) goto <D.27660>; else goto <D.27661>;
  <D.27660>:
  MEM[(guint32 *)code] = 3003383808;
  code = code + 4;
  <D.27661>:
  goto <D.24711>;
  <D.24876>:
  <D.24877>:
  <D.24878>:
  <D.24879>:
  <D.24880>:
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  goto <D.24711>;
  <D.24881>:
  {
    int alloca_skip;
    int area_offset;

    D.27662 = cfg->param_area;
    if (D.27662 == 0) goto <D.27663>; else goto <D.27664>;
    <D.27663>:
    alloca_skip = 160;
    goto <D.27665>;
    <D.27664>:
    D.27662 = cfg->param_area;
    alloca_skip = (int) D.27662;
    <D.27665>:
    D.27666 = alloca_skip + 7;
    area_offset = D.27666 & -8;
    D.26827 = ins->sreg1;
    D.27227 = D.26827 | -1190920176;
    D.27228 = (unsigned int) D.27227;
    MEM[(guint32 *)code] = D.27228;
    code = code + 4;
    D.27642 = ins->flags;
    D.27643 = (int) D.27642;
    D.27644 = D.27643 & 1;
    if (D.27644 != 0) goto <D.27667>; else goto <D.27668>;
    <D.27667>:
    D.26827 = ins->sreg1;
    D.27669 = D.26827 | -1190920192;
    D.27670 = (unsigned int) D.27669;
    MEM[(guint32 *)code] = D.27670;
    code = code + 4;
    <D.27668>:
    MEM[(guint32 *)code] = 2803564558;
    code = code + 4;
    MEM[(guint16 *)code] = 60177;
    code = code + 2;
    MEM[(guint32 *)code] = 196620;
    code = code + 4;
    MEM[(guint16 *)code] = 60177;
    code = code + 2;
    MEM[(guint32 *)code] = 196621;
    code = code + 4;
    D.27609 = cfg->method;
    D.27610 = BIT_FIELD_REF <*D.27609, 64, 256>;
    D.27611 = D.27610 & 36028797018963968;
    if (D.27611 != 0) goto <D.27671>; else goto <D.27672>;
    <D.27671>:
    {
      int lmfOffset;

      D.27616 = cfg->stack_usage;
      D.27617 = D.27616 + 4294966952;
      lmfOffset = (int) D.27617;
      D.27614 = cfg->frame_reg;
      D.27615 = D.27614 | 3104047312;
      MEM[(guint32 *)code] = D.27615;
      code = code + 4;
      lmfOffset.52 = (unsigned int) lmfOffset;
      D.27674 = lmfOffset.52 + 32768;
      if (D.27674 <= 65535) goto <D.27675>; else goto <D.27676>;
      <D.27675>:
      D.27677 = lmfOffset & 65535;
      D.27678 = D.27677 | -1478819840;
      D.27679 = (unsigned int) D.27678;
      MEM[(guint32 *)code] = D.27679;
      code = code + 4;
      goto <D.27680>;
      <D.27676>:
      MEM[(guint16 *)code] = 3552;
      code = code + 2;
      MEM[(guint32 *)code] = 2817785860;
      code = code + 4;
      lmfOffset.53 = (unsigned int) lmfOffset;
      MEM[(guint32 *)code] = lmfOffset.53;
      code = code + 4;
      MEM[(guint16 *)code] = 58320;
      code = code + 2;
      MEM[(guint32 *)code] = 3758358552;
      code = code + 4;
      <D.27680>:
      MEM[(guint32 *)code] = 3104047343;
      code = code + 4;
      MEM[(guint32 *)code] = 3104375009;
      code = code + 4;
      MEM[(guint16 *)code] = 58336;
      code = code + 2;
      MEM[(guint32 *)code] = 3491233828;
      code = code + 4;
    }
    <D.27672>:
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 4026531844;
    code = code + 4;
    MEM[(guint32 *)code] = 3104375025;
    code = code + 4;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 4026531876;
    code = code + 4;
    D.26742 = ins->dreg;
    D.27009 = D.26742 << 20;
    D.27682 = D.27009 | 1090580480;
    D.27683 = area_offset & 4095;
    D.27684 = D.27682 | D.27683;
    D.27685 = (unsigned int) D.27684;
    MEM[(guint32 *)code] = D.27685;
    code = code + 4;
    D.26742 = ins->dreg;
    D.26892 = D.26742 << 4;
    D.26893 = (signed short) D.26892;
    D.26988 = D.26893 | -5376;
    D.26742 = ins->dreg;
    D.26992 = (signed short) D.26742;
    D.26993 = D.26988 | D.26992;
    D.26994 = (short unsigned int) D.26993;
    MEM[(guint16 *)code] = D.26994;
    code = code + 2;
    MEM[(guint32 *)code] = 196620;
    code = code + 4;
    D.26742 = ins->dreg;
    D.26892 = D.26742 << 4;
    D.26893 = (signed short) D.26892;
    D.26988 = D.26893 | -5376;
    D.26742 = ins->dreg;
    D.26992 = (signed short) D.26742;
    D.26993 = D.26988 | D.26992;
    D.26994 = (short unsigned int) D.26993;
    MEM[(guint16 *)code] = D.26994;
    code = code + 2;
    MEM[(guint32 *)code] = 196621;
    code = code + 4;
    D.27642 = ins->flags;
    D.27643 = (int) D.27642;
    D.27644 = D.27643 & 1;
    if (D.27644 != 0) goto <D.27686>; else goto <D.27687>;
    <D.27686>:
    MEM[(guint32 *)code] = 3104047120;
    code = code + 4;
    D.26742 = ins->dreg;
    D.27688 = D.26742 | -1190920192;
    D.27689 = (unsigned int) D.27688;
    MEM[(guint32 *)code] = D.27689;
    code = code + 4;
    MEM[(guint32 *)code] = 3104047340;
    code = code + 4;
    MEM[(guint32 *)code] = 2816016384;
    code = code + 4;
    MEM[(guint32 *)code] = 2819358720;
    code = code + 4;
    MEM[(guint32 *)code] = 2803171326;
    code = code + 4;
    MEM[(guint32 *)code] = 3104047310;
    code = code + 4;
    <D.27687>:
  }
  goto <D.24711>;
  <D.24885>:
  D.26827 = ins->sreg1;
  D.27690 = D.26827 | -1190920160;
  D.27691 = (unsigned int) D.27690;
  MEM[(guint32 *)code] = D.27691;
  code = code + 4;
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 7, "mono_arch_throw_exception");
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 3566;
  code = code + 2;
  goto <D.24711>;
  <D.24886>:
  D.26827 = ins->sreg1;
  D.27690 = D.26827 | -1190920160;
  D.27691 = (unsigned int) D.27690;
  MEM[(guint32 *)code] = D.27691;
  code = code + 4;
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  mono_add_patch_info (cfg, D.27080, 7, "mono_arch_rethrow_exception");
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58336;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  MEM[(guint16 *)code] = 3566;
  code = code + 2;
  goto <D.24711>;
  <D.24887>:
  {
    struct MonoInst * spvar;

    D.27692 = bb->region;
    D.27693 = (int) D.27692;
    spvar = mono_find_spvar_for_region (cfg, D.27693);
    mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
    if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27694>; else goto <D.27695>;
    <D.27694>:
    D.27696 = spvar->data.op[0].const_val;
    D.27697 = (unsigned long) D.27696;
    D.27698 = D.27697 + 524288;
    if (D.27698 <= 1048575) goto <D.27699>; else goto <D.27700>;
    <D.27699>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27701 = spvar->sreg1;
    D.27702 = D.27701 << 28;
    D.27696 = spvar->data.op[0].const_val;
    D.27703 = D.27696 << 16;
    D.27704 = (signed int) D.27703;
    D.27705 = D.27704 & 268369920;
    D.27706 = D.27702 | D.27705;
    D.27696 = spvar->data.op[0].const_val;
    D.27707 = D.27696 >> 12;
    D.27708 = D.27707 << 8;
    D.27709 = (signed int) D.27708;
    D.27710 = D.27709 & 65535;
    D.27711 = D.27706 | D.27710;
    D.27712 = D.27711 | 36;
    D.27713 = (unsigned int) D.27712;
    MEM[(guint32 *)code] = D.27713;
    code = code + 4;
    goto <D.27714>;
    <D.27700>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27696 = spvar->data.op[0].const_val;
    D.27715 = (long unsigned int) D.27696;
    MEM[(guint64 *)code] = D.27715;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27701 = spvar->sreg1;
    D.27702 = D.27701 << 28;
    D.27716 = D.27702 | 36;
    D.27717 = (unsigned int) D.27716;
    MEM[(guint32 *)code] = D.27717;
    code = code + 4;
    <D.27714>:
    goto <D.27718>;
    <D.27695>:
    D.27696 = spvar->data.op[0].const_val;
    D.27697 = (unsigned long) D.27696;
    if (D.27697 <= 4095) goto <D.27719>; else goto <D.27720>;
    <D.27719>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27701 = spvar->sreg1;
    D.27702 = D.27701 << 28;
    D.27696 = spvar->data.op[0].const_val;
    D.27703 = D.27696 << 16;
    D.27704 = (signed int) D.27703;
    D.27705 = D.27704 & 268369920;
    D.27706 = D.27702 | D.27705;
    D.27696 = spvar->data.op[0].const_val;
    D.27707 = D.27696 >> 12;
    D.27708 = D.27707 << 8;
    D.27709 = (signed int) D.27708;
    D.27710 = D.27709 & 65535;
    D.27711 = D.27706 | D.27710;
    D.27712 = D.27711 | 36;
    D.27713 = (unsigned int) D.27712;
    MEM[(guint32 *)code] = D.27713;
    code = code + 4;
    goto <D.27721>;
    <D.27720>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27696 = spvar->data.op[0].const_val;
    D.27715 = (long unsigned int) D.27696;
    MEM[(guint64 *)code] = D.27715;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27701 = spvar->sreg1;
    D.27702 = D.27701 << 28;
    D.27716 = D.27702 | 36;
    D.27717 = (unsigned int) D.27716;
    MEM[(guint32 *)code] = D.27717;
    code = code + 4;
    <D.27721>:
    <D.27718>:
  }
  goto <D.24711>;
  <D.24889>:
  {
    struct MonoInst * spvar;

    D.27692 = bb->region;
    D.27693 = (int) D.27692;
    spvar = mono_find_spvar_for_region (cfg, D.27693);
    D.26827 = ins->sreg1;
    if (D.26827 != 2) goto <D.27722>; else goto <D.27723>;
    <D.27722>:
    D.26827 = ins->sreg1;
    D.27690 = D.26827 | -1190920160;
    D.27691 = (unsigned int) D.27690;
    MEM[(guint32 *)code] = D.27691;
    code = code + 4;
    <D.27723>:
    mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
    if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27724>; else goto <D.27725>;
    <D.27724>:
    D.27726 = spvar->data.op[0].const_val;
    D.27727 = (unsigned long) D.27726;
    D.27728 = D.27727 + 524288;
    if (D.27728 <= 1048575) goto <D.27729>; else goto <D.27730>;
    <D.27729>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27731 = spvar->sreg1;
    D.27732 = D.27731 << 28;
    D.27726 = spvar->data.op[0].const_val;
    D.27733 = D.27726 << 16;
    D.27734 = (signed int) D.27733;
    D.27735 = D.27734 & 268369920;
    D.27736 = D.27732 | D.27735;
    D.27726 = spvar->data.op[0].const_val;
    D.27737 = D.27726 >> 12;
    D.27738 = D.27737 << 8;
    D.27739 = (signed int) D.27738;
    D.27740 = D.27739 & 65535;
    D.27741 = D.27736 | D.27740;
    D.27742 = D.27741 | 4;
    D.27743 = (unsigned int) D.27742;
    MEM[(guint32 *)code] = D.27743;
    code = code + 4;
    goto <D.27744>;
    <D.27730>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27726 = spvar->data.op[0].const_val;
    D.27745 = (long unsigned int) D.27726;
    MEM[(guint64 *)code] = D.27745;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27731 = spvar->sreg1;
    D.27732 = D.27731 << 28;
    D.27746 = D.27732 | 4;
    D.27747 = (unsigned int) D.27746;
    MEM[(guint32 *)code] = D.27747;
    code = code + 4;
    <D.27744>:
    goto <D.27748>;
    <D.27725>:
    D.27726 = spvar->data.op[0].const_val;
    D.27727 = (unsigned long) D.27726;
    if (D.27727 <= 4095) goto <D.27749>; else goto <D.27750>;
    <D.27749>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27731 = spvar->sreg1;
    D.27732 = D.27731 << 28;
    D.27726 = spvar->data.op[0].const_val;
    D.27733 = D.27726 << 16;
    D.27734 = (signed int) D.27733;
    D.27735 = D.27734 & 268369920;
    D.27736 = D.27732 | D.27735;
    D.27726 = spvar->data.op[0].const_val;
    D.27737 = D.27726 >> 12;
    D.27738 = D.27737 << 8;
    D.27739 = (signed int) D.27738;
    D.27740 = D.27739 & 65535;
    D.27741 = D.27736 | D.27740;
    D.27742 = D.27741 | 4;
    D.27743 = (unsigned int) D.27742;
    MEM[(guint32 *)code] = D.27743;
    code = code + 4;
    goto <D.27751>;
    <D.27750>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27726 = spvar->data.op[0].const_val;
    D.27745 = (long unsigned int) D.27726;
    MEM[(guint64 *)code] = D.27745;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27731 = spvar->sreg1;
    D.27732 = D.27731 << 28;
    D.27746 = D.27732 | 4;
    D.27747 = (unsigned int) D.27746;
    MEM[(guint32 *)code] = D.27747;
    code = code + 4;
    <D.27751>:
    <D.27748>:
    MEM[(guint16 *)code] = 2046;
    code = code + 2;
  }
  goto <D.24711>;
  <D.24891>:
  {
    struct MonoInst * spvar;

    D.27692 = bb->region;
    D.27693 = (int) D.27692;
    spvar = mono_find_spvar_for_region (cfg, D.27693);
    mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
    if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27752>; else goto <D.27753>;
    <D.27752>:
    D.27754 = spvar->data.op[0].const_val;
    D.27755 = (unsigned long) D.27754;
    D.27756 = D.27755 + 524288;
    if (D.27756 <= 1048575) goto <D.27757>; else goto <D.27758>;
    <D.27757>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27759 = spvar->sreg1;
    D.27760 = D.27759 << 28;
    D.27754 = spvar->data.op[0].const_val;
    D.27761 = D.27754 << 16;
    D.27762 = (signed int) D.27761;
    D.27763 = D.27762 & 268369920;
    D.27764 = D.27760 | D.27763;
    D.27754 = spvar->data.op[0].const_val;
    D.27765 = D.27754 >> 12;
    D.27766 = D.27765 << 8;
    D.27767 = (signed int) D.27766;
    D.27768 = D.27767 & 65535;
    D.27769 = D.27764 | D.27768;
    D.27770 = D.27769 | 4;
    D.27771 = (unsigned int) D.27770;
    MEM[(guint32 *)code] = D.27771;
    code = code + 4;
    goto <D.27772>;
    <D.27758>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27754 = spvar->data.op[0].const_val;
    D.27773 = (long unsigned int) D.27754;
    MEM[(guint64 *)code] = D.27773;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27759 = spvar->sreg1;
    D.27760 = D.27759 << 28;
    D.27774 = D.27760 | 4;
    D.27775 = (unsigned int) D.27774;
    MEM[(guint32 *)code] = D.27775;
    code = code + 4;
    <D.27772>:
    goto <D.27776>;
    <D.27753>:
    D.27754 = spvar->data.op[0].const_val;
    D.27755 = (unsigned long) D.27754;
    if (D.27755 <= 4095) goto <D.27777>; else goto <D.27778>;
    <D.27777>:
    MEM[(guint16 *)code] = 58336;
    code = code + 2;
    D.27759 = spvar->sreg1;
    D.27760 = D.27759 << 28;
    D.27754 = spvar->data.op[0].const_val;
    D.27761 = D.27754 << 16;
    D.27762 = (signed int) D.27761;
    D.27763 = D.27762 & 268369920;
    D.27764 = D.27760 | D.27763;
    D.27754 = spvar->data.op[0].const_val;
    D.27765 = D.27754 >> 12;
    D.27766 = D.27765 << 8;
    D.27767 = (signed int) D.27766;
    D.27768 = D.27767 & 65535;
    D.27769 = D.27764 | D.27768;
    D.27770 = D.27769 | 4;
    D.27771 = (unsigned int) D.27770;
    MEM[(guint32 *)code] = D.27771;
    code = code + 4;
    goto <D.27779>;
    <D.27778>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.27754 = spvar->data.op[0].const_val;
    D.27773 = (long unsigned int) D.27754;
    MEM[(guint64 *)code] = D.27773;
    code = code + 8;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58349;
    code = code + 2;
    D.27759 = spvar->sreg1;
    D.27760 = D.27759 << 28;
    D.27774 = D.27760 | 4;
    D.27775 = (unsigned int) D.27774;
    MEM[(guint32 *)code] = D.27775;
    code = code + 4;
    <D.27779>:
    <D.27776>:
    MEM[(guint16 *)code] = 2046;
    code = code + 2;
  }
  goto <D.24711>;
  <D.24893>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27780 = ins->data.op[0].target_block;
  mono_add_patch_info (cfg, D.27080, 0, D.27780);
  MEM[(guint16 *)code] = 49381;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.27781 = ins->data.op[1].exception_clause;
  mono_cfg_add_try_hole (cfg, D.27781, code, bb);
  goto <D.24711>;
  <D.24894>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  ins->data.op[0].const_val = D.26710;
  goto <D.24711>;
  <D.24895>:
  <D.24896>:
  <D.24897>:
  <D.24898>:
  <D.24899>:
  <D.24900>:
  goto <D.24711>;
  <D.24901>:
  {
    int i;

    D.27782 = BIT_FIELD_REF <*cfg, 64, 5568>;
    D.27783 = D.27782 & 33554432;
    if (D.27783 != 0) goto <D.27784>; else goto <D.27785>;
    <D.27784>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 4310);
    <D.27785>:
    D.27642 = ins->flags;
    D.27643 = (int) D.27642;
    D.27644 = D.27643 & 1;
    if (D.27644 != 0) goto <D.27786>; else goto <D.27787>;
    <D.27786>:
    ss_trigger_page.54 = ss_trigger_page;
    breakpointCode.pTrigger = ss_trigger_page.54;
    memcpy (code, &breakpointCode, 26);
    code = code + 26;
    <D.27787>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    mono_add_seq_point (cfg, bb, ins, D.27080);
    i = 0;
    goto <D.24904>;
    <D.24903>:
    MEM[(guint16 *)code] = 1792;
    code = code + 2;
    i = i + 1;
    <D.24904>:
    i.55 = (unsigned int) i;
    if (i.55 <= 2) goto <D.24903>; else goto <D.24905>;
    <D.24905>:
    goto <D.24711>;
  }
  <D.24906>:
  D.27780 = ins->data.op[0].target_block;
  D.27790 = D.27780->native_offset;
  if (D.27790 != 0) goto <D.27791>; else goto <D.27792>;
  <D.27791>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27780 = ins->data.op[0].target_block;
    D.27790 = D.27780->native_offset;
    D.27793 = (sizetype) D.27790;
    D.27794 = D.26696 + D.27793;
    D.27795 = (long int) D.27794;
    code.46 = (long int) code;
    D.27796 = D.27795 - code.46;
    D.27797 = D.27796 / 2;
    displace = (int) D.27797;
    displace.56 = (unsigned int) displace;
    D.27799 = displace.56 + 32768;
    if (D.27799 <= 65535) goto <D.27800>; else goto <D.27801>;
    <D.27800>:
    D.27802 = displace & 65535;
    D.27803 = D.27802 | -1477181440;
    D.27804 = (unsigned int) D.27803;
    MEM[(guint32 *)code] = D.27804;
    code = code + 4;
    goto <D.27805>;
    <D.27801>:
    MEM[(guint16 *)code] = 49396;
    code = code + 2;
    displace.57 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.57;
    code = code + 4;
    <D.27805>:
  }
  goto <D.27807>;
  <D.27792>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27780 = ins->data.op[0].target_block;
  mono_add_patch_info (cfg, D.27080, 0, D.27780);
  MEM[(guint16 *)code] = 49396;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27807>:
  goto <D.24711>;
  <D.24908>:
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27808 = D.26989 | 2032;
  D.27809 = (short unsigned int) D.27808;
  MEM[(guint16 *)code] = D.27809;
  code = code + 2;
  goto <D.24711>;
  <D.24909>:
  <D.24910>:
  <D.24911>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2810445828;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.24912>:
  <D.24913>:
  <D.24914>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2806251524;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.24915>:
  <D.24916>:
  <D.24917>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2807300100;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.24918>:
  <D.24919>:
  <D.24920>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2804154372;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.24921>:
  <D.24922>:
  <D.24923>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2805202948;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.24924>:
  <D.24925>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49284;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24926>:
  <D.24927>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49268;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24928>:
  <D.24929>:
  <D.24930>:
  <D.24931>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49220;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24932>:
  <D.24933>:
  <D.24934>:
  <D.24935>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49188;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24936>:
  <D.24937>:
  <D.24938>:
  <D.24939>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49332;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24940>:
  <D.24941>:
  <D.24942>:
  <D.24943>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49364;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24944>:
  <D.24945>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49172;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24946>:
  <D.24947>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49380;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24948>:
  <D.24949>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49204;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24950>:
  <D.24951>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27813 = ins->data.op[1].p;
  mono_add_patch_info (cfg, D.27080, 9, D.27813);
  MEM[(guint16 *)code] = 49348;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  goto <D.24711>;
  <D.24952>:
  <D.24953>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27817>; else goto <D.27818>;
  <D.27817>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.58 = (unsigned int) displace;
    D.27825 = displace.58 + 32768;
    if (D.27825 <= 65535) goto <D.27826>; else goto <D.27827>;
    <D.27826>:
    D.27828 = displace & 65535;
    D.27829 = D.27828 | -1484521472;
    D.27830 = (unsigned int) D.27829;
    MEM[(guint32 *)code] = D.27830;
    code = code + 4;
    goto <D.27831>;
    <D.27827>:
    MEM[(guint16 *)code] = 49284;
    code = code + 2;
    displace.59 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.59;
    code = code + 4;
    <D.27831>:
  }
  goto <D.27833>;
  <D.27818>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49284;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27833>:
  goto <D.24711>;
  <D.24955>:
  <D.24956>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27834>; else goto <D.27835>;
  <D.27834>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.60 = (unsigned int) displace;
    D.27837 = displace.60 + 32768;
    if (D.27837 <= 65535) goto <D.27838>; else goto <D.27839>;
    <D.27838>:
    D.27840 = displace & 65535;
    D.27841 = D.27840 | -1485570048;
    D.27842 = (unsigned int) D.27841;
    MEM[(guint32 *)code] = D.27842;
    code = code + 4;
    goto <D.27843>;
    <D.27839>:
    MEM[(guint16 *)code] = 49268;
    code = code + 2;
    displace.61 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.61;
    code = code + 4;
    <D.27843>:
  }
  goto <D.27845>;
  <D.27835>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49268;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27845>:
  goto <D.24711>;
  <D.24958>:
  <D.24959>:
  <D.24960>:
  <D.24961>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27846>; else goto <D.27847>;
  <D.27846>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.62 = (unsigned int) displace;
    D.27849 = displace.62 + 32768;
    if (D.27849 <= 65535) goto <D.27850>; else goto <D.27851>;
    <D.27850>:
    D.27852 = displace & 65535;
    D.27853 = D.27852 | -1488715776;
    D.27854 = (unsigned int) D.27853;
    MEM[(guint32 *)code] = D.27854;
    code = code + 4;
    goto <D.27855>;
    <D.27851>:
    MEM[(guint16 *)code] = 49220;
    code = code + 2;
    displace.63 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.63;
    code = code + 4;
    <D.27855>:
  }
  goto <D.27857>;
  <D.27847>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49220;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27857>:
  goto <D.24711>;
  <D.24963>:
  <D.24964>:
  <D.24965>:
  <D.24966>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27858>; else goto <D.27859>;
  <D.27858>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.64 = (unsigned int) displace;
    D.27861 = displace.64 + 32768;
    if (D.27861 <= 65535) goto <D.27862>; else goto <D.27863>;
    <D.27862>:
    D.27864 = displace & 65535;
    D.27865 = D.27864 | -1490812928;
    D.27866 = (unsigned int) D.27865;
    MEM[(guint32 *)code] = D.27866;
    code = code + 4;
    goto <D.27867>;
    <D.27863>:
    MEM[(guint16 *)code] = 49188;
    code = code + 2;
    displace.65 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.65;
    code = code + 4;
    <D.27867>:
  }
  goto <D.27869>;
  <D.27859>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49188;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27869>:
  goto <D.24711>;
  <D.24968>:
  <D.24969>:
  <D.24970>:
  <D.24971>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27870>; else goto <D.27871>;
  <D.27870>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.66 = (unsigned int) displace;
    D.27873 = displace.66 + 32768;
    if (D.27873 <= 65535) goto <D.27874>; else goto <D.27875>;
    <D.27874>:
    D.27876 = displace & 65535;
    D.27877 = D.27876 | -1481375744;
    D.27878 = (unsigned int) D.27877;
    MEM[(guint32 *)code] = D.27878;
    code = code + 4;
    goto <D.27879>;
    <D.27875>:
    MEM[(guint16 *)code] = 49332;
    code = code + 2;
    displace.67 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.67;
    code = code + 4;
    <D.27879>:
  }
  goto <D.27881>;
  <D.27871>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49332;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27881>:
  goto <D.24711>;
  <D.24973>:
  <D.24974>:
  <D.24975>:
  <D.24976>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.27882>; else goto <D.27883>;
  <D.27882>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.68 = (unsigned int) displace;
    D.27885 = displace.68 + 32768;
    if (D.27885 <= 65535) goto <D.27886>; else goto <D.27887>;
    <D.27886>:
    D.27888 = displace & 65535;
    D.27889 = D.27888 | -1479278592;
    D.27890 = (unsigned int) D.27889;
    MEM[(guint32 *)code] = D.27890;
    code = code + 4;
    goto <D.27891>;
    <D.27887>:
    MEM[(guint16 *)code] = 49364;
    code = code + 2;
    displace.69 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.69;
    code = code + 4;
    <D.27891>:
  }
  goto <D.27893>;
  <D.27883>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49364;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.27893>:
  goto <D.24711>;
  <D.24978>:
  D.27588 = ins->data.op[0].p;
  D.27894 = MEM[(double *)D.27588];
  if (D.27894 == 0.0) goto <D.27895>; else goto <D.27896>;
  <D.27895>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27897 = D.26892 | -1284177920;
  D.27898 = (unsigned int) D.27897;
  MEM[(guint32 *)code] = D.27898;
  code = code + 4;
  goto <D.27899>;
  <D.27896>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.27588 = ins->data.op[0].p;
  D.27900 = (long unsigned int) D.27588;
  MEM[(guint64 *)code] = D.27900;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27901 = D.27009 | 1744883712;
  D.27902 = (unsigned int) D.27901;
  MEM[(guint32 *)code] = D.27902;
  code = code + 4;
  <D.27899>:
  goto <D.24711>;
  <D.24979>:
  D.27588 = ins->data.op[0].p;
  D.27903 = MEM[(float *)D.27588];
  if (D.27903 == 0.0) goto <D.27904>; else goto <D.27905>;
  <D.27904>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27897 = D.26892 | -1284177920;
  D.27898 = (unsigned int) D.27897;
  MEM[(guint32 *)code] = D.27898;
  code = code + 4;
  goto <D.27906>;
  <D.27905>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.27588 = ins->data.op[0].p;
  D.27900 = (long unsigned int) D.27588;
  MEM[(guint64 *)code] = D.27900;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27907 = D.26893 | -4864;
  D.27908 = (short unsigned int) D.27907;
  MEM[(guint16 *)code] = D.27908;
  code = code + 2;
  MEM[(guint32 *)code] = 3489660932;
  code = code + 4;
  <D.27906>:
  goto <D.24711>;
  <D.24980>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27909>; else goto <D.27910>;
  <D.27909>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.27911>; else goto <D.27912>;
  <D.27911>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27913 = D.26829 | -4864;
  D.27914 = (short unsigned int) D.27913;
  MEM[(guint16 *)code] = D.27914;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.27915 = D.26752 | 103;
  D.27916 = (unsigned int) D.27915;
  MEM[(guint32 *)code] = D.27916;
  code = code + 4;
  goto <D.27917>;
  <D.27912>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.27918 = D.26833 | 1611464704;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27919 = D.27918 | D.26757;
  D.27920 = (unsigned int) D.27919;
  MEM[(guint32 *)code] = D.27920;
  code = code + 4;
  <D.27917>:
  goto <D.27921>;
  <D.27910>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.27922>; else goto <D.27923>;
  <D.27922>:
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.27924 = D.26833 | 1610612736;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27925 = D.27924 | D.26757;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.27926 = D.27925 | D.26765;
  D.27927 = (unsigned int) D.27926;
  MEM[(guint32 *)code] = D.27927;
  code = code + 4;
  goto <D.27928>;
  <D.27923>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26833 = D.26827 << 20;
  D.27918 = D.26833 | 1611464704;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27919 = D.27918 | D.26757;
  D.27920 = (unsigned int) D.27919;
  MEM[(guint32 *)code] = D.27920;
  code = code + 4;
  <D.27928>:
  <D.27921>:
  goto <D.24711>;
  <D.24981>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27929>; else goto <D.27930>;
  <D.27929>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.27931>; else goto <D.27932>;
  <D.27931>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27907 = D.26893 | -4864;
  D.27908 = (short unsigned int) D.27907;
  MEM[(guint16 *)code] = D.27908;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.27933 = D.26898 | 101;
  D.27934 = (unsigned int) D.27933;
  MEM[(guint32 *)code] = D.27934;
  code = code + 4;
  goto <D.27935>;
  <D.27932>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27936 = D.27009 | 1745682432;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27938 = D.27936 | D.27937;
  D.27939 = (unsigned int) D.27938;
  MEM[(guint32 *)code] = D.27939;
  code = code + 4;
  <D.27935>:
  goto <D.27940>;
  <D.27930>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.27941>; else goto <D.27942>;
  <D.27941>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27943 = D.27009 | 1744830464;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27944 = D.27943 | D.27937;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.27945 = D.27944 | D.26765;
  D.27946 = (unsigned int) D.27945;
  MEM[(guint32 *)code] = D.27946;
  code = code + 4;
  goto <D.27947>;
  <D.27942>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27936 = D.27009 | 1745682432;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27938 = D.27936 | D.27937;
  D.27939 = (unsigned int) D.27938;
  MEM[(guint32 *)code] = D.27939;
  code = code + 4;
  <D.27947>:
  <D.27940>:
  goto <D.24711>;
  <D.24982>:
  D.26827 = ins->sreg1;
  D.27948 = D.26827 | -1287388944;
  D.27949 = (unsigned int) D.27948;
  MEM[(guint32 *)code] = D.27949;
  code = code + 4;
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27950>; else goto <D.27951>;
  <D.27950>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.27952>; else goto <D.27953>;
  <D.27952>:
  MEM[(guint16 *)code] = 60912;
  code = code + 2;
  D.26742 = ins->dreg;
  D.26743 = D.26742 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26747 = D.26743 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26752 = D.26747 | D.26751;
  D.27954 = D.26752 | 102;
  D.27955 = (unsigned int) D.27954;
  MEM[(guint32 *)code] = D.27955;
  code = code + 4;
  goto <D.27956>;
  <D.27953>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27957 = D.26757 | 1895628800;
  D.27958 = (unsigned int) D.27957;
  MEM[(guint32 *)code] = D.27958;
  code = code + 4;
  <D.27956>:
  goto <D.27959>;
  <D.27951>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.27960>; else goto <D.27961>;
  <D.27960>:
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27962 = D.26757 | 1894776832;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.27963 = D.27962 | D.26765;
  D.27964 = (unsigned int) D.27963;
  MEM[(guint32 *)code] = D.27964;
  code = code + 4;
  goto <D.27965>;
  <D.27961>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.27957 = D.26757 | 1895628800;
  D.27958 = (unsigned int) D.27957;
  MEM[(guint32 *)code] = D.27958;
  code = code + 4;
  <D.27965>:
  <D.27959>:
  goto <D.24711>;
  <D.24983>:
  mono_hwcap_s390x_has_ld.48 = mono_hwcap_s390x_has_ld;
  if (mono_hwcap_s390x_has_ld.48 != 0) goto <D.27966>; else goto <D.27967>;
  <D.27966>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.26739 = D.26738 + 524288;
  if (D.26739 <= 1048575) goto <D.27968>; else goto <D.27969>;
  <D.27968>:
  MEM[(guint16 *)code] = 60912;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.27933 = D.26898 | 101;
  D.27934 = (unsigned int) D.27933;
  MEM[(guint32 *)code] = D.27934;
  code = code + 4;
  goto <D.27970>;
  <D.27969>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27971 = D.27937 | 1761411072;
  D.27972 = (unsigned int) D.27971;
  MEM[(guint32 *)code] = D.27972;
  code = code + 4;
  <D.27970>:
  goto <D.27973>;
  <D.27967>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  if (D.26738 <= 4095) goto <D.27974>; else goto <D.27975>;
  <D.27974>:
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27976 = D.27937 | 1760559104;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.27977 = D.27976 | D.26765;
  D.27978 = (unsigned int) D.27977;
  MEM[(guint32 *)code] = D.27978;
  code = code + 4;
  goto <D.27979>;
  <D.27975>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.27971 = D.27937 | 1761411072;
  D.27972 = (unsigned int) D.27971;
  MEM[(guint32 *)code] = D.27972;
  code = code + 4;
  <D.27979>:
  <D.27973>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27980 = D.26892 | -1291583473;
  D.27981 = (unsigned int) D.27980;
  MEM[(guint32 *)code] = D.27981;
  code = code + 4;
  goto <D.24711>;
  <D.24984>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27982 = D.26892 | -1282080768;
  D.26827 = ins->sreg1;
  D.27983 = D.27982 | D.26827;
  D.27984 = (unsigned int) D.27983;
  MEM[(guint32 *)code] = D.27984;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.26829 = (signed short) D.26828;
  D.27985 = D.26829 | 4608;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27986 = D.27985 | D.26989;
  D.27987 = (short unsigned int) D.27986;
  MEM[(guint16 *)code] = D.27987;
  code = code + 2;
  MEM[(guint32 *)code] = 2813591564;
  code = code + 4;
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint32 *)code] = 1106247680;
  code = code + 4;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27907 = D.26893 | -4864;
  D.27908 = (short unsigned int) D.27907;
  MEM[(guint16 *)code] = D.27908;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923098;
  code = code + 4;
  goto <D.24711>;
  <D.24985>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27988 = D.26892 | -1281032192;
  D.26827 = ins->sreg1;
  D.27989 = D.27988 | D.26827;
  D.27990 = (unsigned int) D.27989;
  MEM[(guint32 *)code] = D.27990;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.27593 = D.26828 | -1191051264;
  D.26827 = ins->sreg1;
  D.27594 = D.27593 | D.26827;
  D.27595 = (unsigned int) D.27594;
  MEM[(guint32 *)code] = D.27595;
  code = code + 4;
  MEM[(guint32 *)code] = 2813591564;
  code = code + 4;
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  MEM[(guint32 *)code] = 1106247680;
  code = code + 4;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27907 = D.26893 | -4864;
  D.27908 = (short unsigned int) D.27907;
  MEM[(guint16 *)code] = D.27908;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923098;
  code = code + 4;
  goto <D.24711>;
  <D.24986>:
  <D.24987>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27988 = D.26892 | -1281032192;
  D.26827 = ins->sreg1;
  D.27989 = D.27988 | D.26827;
  D.27990 = (unsigned int) D.27989;
  MEM[(guint32 *)code] = D.27990;
  code = code + 4;
  goto <D.24711>;
  <D.24988>:
  <D.24989>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27988 = D.26892 | -1281032192;
  D.26827 = ins->sreg1;
  D.27989 = D.27988 | D.26827;
  D.27990 = (unsigned int) D.27989;
  MEM[(guint32 *)code] = D.27990;
  code = code + 4;
  goto <D.24711>;
  <D.24990>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 1, 1);
  goto <D.24711>;
  <D.24991>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 1, 0);
  goto <D.24711>;
  <D.24992>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 2, 1);
  goto <D.24711>;
  <D.24993>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 2, 0);
  goto <D.24711>;
  <D.24994>:
  <D.24995>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 4, 1);
  goto <D.24711>;
  <D.24996>:
  <D.24997>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  code = emit_float_to_int (cfg, code, D.26742, D.26827, 4, 0);
  goto <D.24711>;
  <D.24998>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27991 = D.26892 | -1280749568;
  D.26827 = ins->sreg1;
  D.27992 = D.27991 | D.26827;
  D.27993 = (unsigned int) D.27992;
  MEM[(guint32 *)code] = D.27993;
  code = code + 4;
  goto <D.24711>;
  <D.24999>:
  {
    short int * o[5];

    try
      {
        D.27031 = ins->sreg2;
        D.27994 = D.27031 << 4;
        D.27995 = D.27994 | -1191051264;
        D.27031 = ins->sreg2;
        D.27996 = D.27995 | D.27031;
        D.27997 = (unsigned int) D.27996;
        MEM[(guint32 *)code] = D.27997;
        code = code + 4;
        MEM[(guint32 *)code] = 2813591552;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[0] = D.27333;
        D.26827 = ins->sreg1;
        D.26828 = D.26827 << 4;
        D.27593 = D.26828 | -1191051264;
        D.26827 = ins->sreg1;
        D.27594 = D.27593 | D.26827;
        D.27595 = (unsigned int) D.27594;
        MEM[(guint32 *)code] = D.27595;
        code = code + 4;
        MEM[(guint32 *)code] = 2813591552;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[1] = D.27333;
        MEM[(guint32 *)code] = 2816016383;
        code = code + 4;
        D.26827 = ins->sreg1;
        D.26828 = D.26827 << 4;
        D.27998 = D.26828 | -1189085171;
        D.27999 = (unsigned int) D.27998;
        MEM[(guint32 *)code] = D.27999;
        code = code + 4;
        MEM[(guint32 *)code] = 2809397248;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[2] = D.27333;
        D.26742 = ins->dreg;
        D.27031 = ins->sreg2;
        if (D.26742 != D.27031) goto <D.28000>; else goto <D.28001>;
        <D.28000>:
        D.26742 = ins->dreg;
        D.26892 = D.26742 << 4;
        D.26997 = D.26892 | -1190920192;
        D.27031 = ins->sreg2;
        D.28002 = D.26997 | D.27031;
        D.28003 = (unsigned int) D.28002;
        MEM[(guint32 *)code] = D.28003;
        code = code + 4;
        <D.28001>:
        MEM[(guint32 *)code] = 2817785856;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[3] = D.27333;
        D.28004 = o[0];
        code.50 = (long unsigned int) code;
        D.28004 = o[0];
        D.28005 = (long unsigned int) D.28004;
        D.28006 = code.50 - D.28005;
        D.28007 = (unsigned short) D.28006;
        D.28008 = D.28007 + 2;
        D.28009 = (short int) D.28008;
        D.28010 = D.28009 / 2;
        *D.28004 = D.28010;
        MEM[(guint32 *)code] = 2810445824;
        code = code + 4;
        code.50 = (long unsigned int) code;
        D.27332 = code.50 + 18446744073709551614;
        D.27333 = (short int *) D.27332;
        o[4] = D.27333;
        D.28011 = o[1];
        code.50 = (long unsigned int) code;
        D.28011 = o[1];
        D.28012 = (long unsigned int) D.28011;
        D.28013 = code.50 - D.28012;
        D.28014 = (unsigned short) D.28013;
        D.28015 = D.28014 + 2;
        D.28016 = (short int) D.28015;
        D.28017 = D.28016 / 2;
        *D.28011 = D.28017;
        D.28018 = o[2];
        code.50 = (long unsigned int) code;
        D.28018 = o[2];
        D.28019 = (long unsigned int) D.28018;
        D.28020 = code.50 - D.28019;
        D.28021 = (unsigned short) D.28020;
        D.28022 = D.28021 + 2;
        D.28023 = (short int) D.28022;
        D.28024 = D.28023 / 2;
        *D.28018 = D.28024;
        code.46 = (long int) code;
        D.26696 = cfg->native_code;
        D.26709 = (long int) D.26696;
        D.26710 = code.46 - D.26709;
        D.27080 = (int) D.26710;
        mono_add_patch_info (cfg, D.27080, 9, "OverflowException");
        MEM[(guint16 *)code] = 49381;
        code = code + 2;
        MEM[(guint32 *)code] = 0;
        code = code + 4;
        D.28025 = o[3];
        code.50 = (long unsigned int) code;
        D.28025 = o[3];
        D.28026 = (long unsigned int) D.28025;
        D.28027 = code.50 - D.28026;
        D.28028 = (unsigned short) D.28027;
        D.28029 = D.28028 + 2;
        D.28030 = (short int) D.28029;
        D.28031 = D.28030 / 2;
        *D.28025 = D.28031;
        D.28032 = o[4];
        code.50 = (long unsigned int) code;
        D.28032 = o[4];
        D.28033 = (long unsigned int) D.28032;
        D.28034 = code.50 - D.28033;
        D.28035 = (unsigned short) D.28034;
        D.28036 = D.28035 + 2;
        D.28037 = (short int) D.28036;
        D.28038 = D.28037 / 2;
        *D.28032 = D.28038;
      }
    finally
      {
        o = {CLOBBER};
      }
  }
  goto <D.24711>;
  <D.25001>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28039 = D.26892 | -1290797056;
  D.26827 = ins->sreg1;
  D.28040 = D.28039 | D.26827;
  D.28041 = (unsigned int) D.28040;
  MEM[(guint32 *)code] = D.28041;
  code = code + 4;
  goto <D.24711>;
  <D.25002>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28042 = D.26892 | -1290469376;
  D.26827 = ins->sreg1;
  D.28043 = D.28042 | D.26827;
  D.28044 = (unsigned int) D.28043;
  MEM[(guint32 *)code] = D.28044;
  code = code + 4;
  goto <D.24711>;
  <D.25003>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.28045>; else goto <D.28046>;
  <D.28045>:
  src2 = ins->sreg1;
  goto <D.28047>;
  <D.28046>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.28048>; else goto <D.28049>;
  <D.28048>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.28049>:
  <D.28047>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28050 = D.26892 | -1290141696;
  D.28051 = D.28050 | src2;
  D.28052 = (unsigned int) D.28051;
  MEM[(guint32 *)code] = D.28052;
  code = code + 4;
  goto <D.24711>;
  <D.25004>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.28053>; else goto <D.28054>;
  <D.28053>:
  src2 = 15;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.28055 = D.27042 | 10448;
  D.28056 = (short unsigned int) D.28055;
  MEM[(guint16 *)code] = D.28056;
  code = code + 2;
  goto <D.28057>;
  <D.28054>:
  src2 = ins->sreg2;
  <D.28057>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.28058>; else goto <D.28059>;
  <D.28058>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.28059>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28060 = D.26892 | -1290076160;
  D.28061 = D.28060 | src2;
  D.28062 = (unsigned int) D.28061;
  MEM[(guint32 *)code] = D.28062;
  code = code + 4;
  goto <D.24711>;
  <D.25005>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.28063>; else goto <D.28064>;
  <D.28063>:
  src2 = ins->sreg1;
  goto <D.28065>;
  <D.28064>:
  src2 = ins->sreg2;
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.28066>; else goto <D.28067>;
  <D.28066>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.28067>:
  <D.28065>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28068 = D.26892 | -1290010624;
  D.28069 = D.28068 | src2;
  D.28070 = (unsigned int) D.28069;
  MEM[(guint32 *)code] = D.28070;
  code = code + 4;
  goto <D.24711>;
  <D.25006>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.28071>; else goto <D.28072>;
  <D.28071>:
  src2 = 15;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.28055 = D.27042 | 10448;
  D.28056 = (short unsigned int) D.28055;
  MEM[(guint16 *)code] = D.28056;
  code = code + 2;
  goto <D.28073>;
  <D.28072>:
  src2 = ins->sreg2;
  <D.28073>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.28074>; else goto <D.28075>;
  <D.28074>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.28075>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28076 = D.26892 | -1289945088;
  D.28077 = D.28076 | src2;
  D.28078 = (unsigned int) D.28077;
  MEM[(guint32 *)code] = D.28078;
  code = code + 4;
  goto <D.24711>;
  <D.25007>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28079 = D.26892 | -1290600448;
  D.26827 = ins->sreg1;
  D.28080 = D.28079 | D.26827;
  D.28081 = (unsigned int) D.28080;
  MEM[(guint32 *)code] = D.28081;
  code = code + 4;
  goto <D.24711>;
  <D.25008>:
  D.26742 = ins->dreg;
  D.27031 = ins->sreg2;
  if (D.26742 == D.27031) goto <D.28082>; else goto <D.28083>;
  <D.28082>:
  src2 = 15;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.28055 = D.27042 | 10448;
  D.28056 = (short unsigned int) D.28055;
  MEM[(guint16 *)code] = D.28056;
  code = code + 2;
  goto <D.28084>;
  <D.28083>:
  src2 = ins->sreg2;
  <D.28084>:
  D.26742 = ins->dreg;
  D.26827 = ins->sreg1;
  if (D.26742 != D.26827) goto <D.28085>; else goto <D.28086>;
  <D.28085>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.27598 = D.26893 | 10240;
  D.26827 = ins->sreg1;
  D.26989 = (signed short) D.26827;
  D.27599 = D.27598 | D.26989;
  D.27600 = (short unsigned int) D.27599;
  MEM[(guint16 *)code] = D.27600;
  code = code + 2;
  <D.28086>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.28087 = D.26892 | -1285819136;
  D.28088 = D.28087 | src2;
  D.28089 = (unsigned int) D.28088;
  MEM[(guint32 *)code] = D.28089;
  code = code + 4;
  goto <D.24711>;
  <D.25009>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  goto <D.24711>;
  <D.25010>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2810445828;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.25011>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2806251524;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.25012>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2807300100;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.25013>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2804154372;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.25014>:
  D.26827 = ins->sreg1;
  D.26828 = D.26827 << 4;
  D.28090 = D.26828 | -1290207232;
  D.27031 = ins->sreg2;
  D.28091 = D.28090 | D.27031;
  D.28092 = (unsigned int) D.28091;
  MEM[(guint32 *)code] = D.28092;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27810 = D.27009 | -1492582399;
  D.27811 = (unsigned int) D.27810;
  MEM[(guint32 *)code] = D.27811;
  code = code + 4;
  MEM[(guint32 *)code] = 2805202948;
  code = code + 4;
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27580 = D.27009 | -1492582400;
  D.27812 = (unsigned int) D.27580;
  MEM[(guint32 *)code] = D.27812;
  code = code + 4;
  goto <D.24711>;
  <D.25015>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2803105792;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    if (D.27816 != 0) goto <D.28093>; else goto <D.28094>;
    <D.28093>:
    {
      int displace;

      D.26696 = cfg->native_code;
      D.27814 = ins->data.op[1].many_blocks;
      D.27815 = *D.27814;
      D.27816 = D.27815->native_offset;
      D.27819 = (sizetype) D.27816;
      D.27820 = D.26696 + D.27819;
      D.27821 = (long int) D.27820;
      code.46 = (long int) code;
      D.27822 = D.27821 - code.46;
      D.27823 = D.27822 / 2;
      displace = (int) D.27823;
      displace.70 = (unsigned int) displace;
      D.28096 = displace.70 + 32768;
      if (D.28096 <= 65535) goto <D.28097>; else goto <D.28098>;
      <D.28097>:
      D.28099 = displace & 65535;
      D.28100 = D.28099 | -1484521472;
      D.28101 = (unsigned int) D.28100;
      MEM[(guint32 *)code] = D.28101;
      code = code + 4;
      goto <D.28102>;
      <D.28098>:
      MEM[(guint16 *)code] = 49284;
      code = code + 2;
      displace.71 = (unsigned int) displace;
      MEM[(guint32 *)code] = displace.71;
      code = code + 4;
      <D.28102>:
    }
    goto <D.28104>;
    <D.28094>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    mono_add_patch_info (cfg, D.27080, 0, D.27815);
    MEM[(guint16 *)code] = 49284;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.28104>:
    code.50 = (long unsigned int) code;
    o.72 = (long unsigned int) o;
    D.28106 = code.50 - o.72;
    D.28107 = (unsigned short) D.28106;
    D.28108 = D.28107 + 2;
    D.28109 = (short int) D.28108;
    D.28110 = D.28109 / 2;
    *o = D.28110;
  }
  goto <D.24711>;
  <D.25018>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.28111>; else goto <D.28112>;
  <D.28111>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.73 = (unsigned int) displace;
    D.28114 = displace.73 + 32768;
    if (D.28114 <= 65535) goto <D.28115>; else goto <D.28116>;
    <D.28115>:
    D.28117 = displace & 65535;
    D.28118 = D.28117 | -1485570048;
    D.28119 = (unsigned int) D.28118;
    MEM[(guint32 *)code] = D.28119;
    code = code + 4;
    goto <D.28120>;
    <D.28116>:
    MEM[(guint16 *)code] = 49268;
    code = code + 2;
    displace.74 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.74;
    code = code + 4;
    <D.28120>:
  }
  goto <D.28122>;
  <D.28112>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49268;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.28122>:
  goto <D.24711>;
  <D.25020>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2803105792;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    if (D.27816 != 0) goto <D.28123>; else goto <D.28124>;
    <D.28123>:
    {
      int displace;

      D.26696 = cfg->native_code;
      D.27814 = ins->data.op[1].many_blocks;
      D.27815 = *D.27814;
      D.27816 = D.27815->native_offset;
      D.27819 = (sizetype) D.27816;
      D.27820 = D.26696 + D.27819;
      D.27821 = (long int) D.27820;
      code.46 = (long int) code;
      D.27822 = D.27821 - code.46;
      D.27823 = D.27822 / 2;
      displace = (int) D.27823;
      displace.75 = (unsigned int) displace;
      D.28126 = displace.75 + 32768;
      if (D.28126 <= 65535) goto <D.28127>; else goto <D.28128>;
      <D.28127>:
      D.28129 = displace & 65535;
      D.28130 = D.28129 | -1488715776;
      D.28131 = (unsigned int) D.28130;
      MEM[(guint32 *)code] = D.28131;
      code = code + 4;
      goto <D.28132>;
      <D.28128>:
      MEM[(guint16 *)code] = 49220;
      code = code + 2;
      displace.76 = (unsigned int) displace;
      MEM[(guint32 *)code] = displace.76;
      code = code + 4;
      <D.28132>:
    }
    goto <D.28134>;
    <D.28124>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    mono_add_patch_info (cfg, D.27080, 0, D.27815);
    MEM[(guint16 *)code] = 49220;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.28134>:
    code.50 = (long unsigned int) code;
    o.77 = (long unsigned int) o;
    D.28136 = code.50 - o.77;
    D.28137 = (unsigned short) D.28136;
    D.28138 = D.28137 + 2;
    D.28139 = (short int) D.28138;
    D.28140 = D.28139 / 2;
    *o = D.28140;
  }
  goto <D.24711>;
  <D.25023>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.28141>; else goto <D.28142>;
  <D.28141>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.78 = (unsigned int) displace;
    D.28144 = displace.78 + 32768;
    if (D.28144 <= 65535) goto <D.28145>; else goto <D.28146>;
    <D.28145>:
    D.28147 = displace & 65535;
    D.28148 = D.28147 | -1487667200;
    D.28149 = (unsigned int) D.28148;
    MEM[(guint32 *)code] = D.28149;
    code = code + 4;
    goto <D.28150>;
    <D.28146>:
    MEM[(guint16 *)code] = 49236;
    code = code + 2;
    displace.79 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.79;
    code = code + 4;
    <D.28150>:
  }
  goto <D.28152>;
  <D.28142>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49236;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.28152>:
  goto <D.24711>;
  <D.25025>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2803105792;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    if (D.27816 != 0) goto <D.28153>; else goto <D.28154>;
    <D.28153>:
    {
      int displace;

      D.26696 = cfg->native_code;
      D.27814 = ins->data.op[1].many_blocks;
      D.27815 = *D.27814;
      D.27816 = D.27815->native_offset;
      D.27819 = (sizetype) D.27816;
      D.27820 = D.26696 + D.27819;
      D.27821 = (long int) D.27820;
      code.46 = (long int) code;
      D.27822 = D.27821 - code.46;
      D.27823 = D.27822 / 2;
      displace = (int) D.27823;
      displace.80 = (unsigned int) displace;
      D.28156 = displace.80 + 32768;
      if (D.28156 <= 65535) goto <D.28157>; else goto <D.28158>;
      <D.28157>:
      D.28159 = displace & 65535;
      D.28160 = D.28159 | -1490812928;
      D.28161 = (unsigned int) D.28160;
      MEM[(guint32 *)code] = D.28161;
      code = code + 4;
      goto <D.28162>;
      <D.28158>:
      MEM[(guint16 *)code] = 49188;
      code = code + 2;
      displace.81 = (unsigned int) displace;
      MEM[(guint32 *)code] = displace.81;
      code = code + 4;
      <D.28162>:
    }
    goto <D.28164>;
    <D.28154>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    mono_add_patch_info (cfg, D.27080, 0, D.27815);
    MEM[(guint16 *)code] = 49188;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.28164>:
    code.50 = (long unsigned int) code;
    o.82 = (long unsigned int) o;
    D.28166 = code.50 - o.82;
    D.28167 = (unsigned short) D.28166;
    D.28168 = D.28167 + 2;
    D.28169 = (short int) D.28168;
    D.28170 = D.28169 / 2;
    *o = D.28170;
  }
  goto <D.24711>;
  <D.25028>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.28171>; else goto <D.28172>;
  <D.28171>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.83 = (unsigned int) displace;
    D.28174 = displace.83 + 32768;
    if (D.28174 <= 65535) goto <D.28175>; else goto <D.28176>;
    <D.28175>:
    D.28177 = displace & 65535;
    D.28178 = D.28177 | -1489764352;
    D.28179 = (unsigned int) D.28178;
    MEM[(guint32 *)code] = D.28179;
    code = code + 4;
    goto <D.28180>;
    <D.28176>:
    MEM[(guint16 *)code] = 49204;
    code = code + 2;
    displace.84 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.84;
    code = code + 4;
    <D.28180>:
  }
  goto <D.28182>;
  <D.28172>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49204;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.28182>:
  goto <D.24711>;
  <D.25030>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2803105792;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    if (D.27816 != 0) goto <D.28183>; else goto <D.28184>;
    <D.28183>:
    {
      int displace;

      D.26696 = cfg->native_code;
      D.27814 = ins->data.op[1].many_blocks;
      D.27815 = *D.27814;
      D.27816 = D.27815->native_offset;
      D.27819 = (sizetype) D.27816;
      D.27820 = D.26696 + D.27819;
      D.27821 = (long int) D.27820;
      code.46 = (long int) code;
      D.27822 = D.27821 - code.46;
      D.27823 = D.27822 / 2;
      displace = (int) D.27823;
      displace.85 = (unsigned int) displace;
      D.28186 = displace.85 + 32768;
      if (D.28186 <= 65535) goto <D.28187>; else goto <D.28188>;
      <D.28187>:
      D.28189 = displace & 65535;
      D.28190 = D.28189 | -1481375744;
      D.28191 = (unsigned int) D.28190;
      MEM[(guint32 *)code] = D.28191;
      code = code + 4;
      goto <D.28192>;
      <D.28188>:
      MEM[(guint16 *)code] = 49332;
      code = code + 2;
      displace.86 = (unsigned int) displace;
      MEM[(guint32 *)code] = displace.86;
      code = code + 4;
      <D.28192>:
    }
    goto <D.28194>;
    <D.28184>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    mono_add_patch_info (cfg, D.27080, 0, D.27815);
    MEM[(guint16 *)code] = 49332;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.28194>:
    code.50 = (long unsigned int) code;
    o.87 = (long unsigned int) o;
    D.28196 = code.50 - o.87;
    D.28197 = (unsigned short) D.28196;
    D.28198 = D.28197 + 2;
    D.28199 = (short int) D.28198;
    D.28200 = D.28199 / 2;
    *o = D.28200;
  }
  goto <D.24711>;
  <D.25033>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.28201>; else goto <D.28202>;
  <D.28201>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.88 = (unsigned int) displace;
    D.28204 = displace.88 + 32768;
    if (D.28204 <= 65535) goto <D.28205>; else goto <D.28206>;
    <D.28205>:
    D.28207 = displace & 65535;
    D.28208 = D.28207 | -1481375744;
    D.28209 = (unsigned int) D.28208;
    MEM[(guint32 *)code] = D.28209;
    code = code + 4;
    goto <D.28210>;
    <D.28206>:
    MEM[(guint16 *)code] = 49332;
    code = code + 2;
    displace.89 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.89;
    code = code + 4;
    <D.28210>:
  }
  goto <D.28212>;
  <D.28202>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49332;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.28212>:
  goto <D.24711>;
  <D.25035>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2803105792;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    if (D.27816 != 0) goto <D.28213>; else goto <D.28214>;
    <D.28213>:
    {
      int displace;

      D.26696 = cfg->native_code;
      D.27814 = ins->data.op[1].many_blocks;
      D.27815 = *D.27814;
      D.27816 = D.27815->native_offset;
      D.27819 = (sizetype) D.27816;
      D.27820 = D.26696 + D.27819;
      D.27821 = (long int) D.27820;
      code.46 = (long int) code;
      D.27822 = D.27821 - code.46;
      D.27823 = D.27822 / 2;
      displace = (int) D.27823;
      displace.90 = (unsigned int) displace;
      D.28216 = displace.90 + 32768;
      if (D.28216 <= 65535) goto <D.28217>; else goto <D.28218>;
      <D.28217>:
      D.28219 = displace & 65535;
      D.28220 = D.28219 | -1479278592;
      D.28221 = (unsigned int) D.28220;
      MEM[(guint32 *)code] = D.28221;
      code = code + 4;
      goto <D.28222>;
      <D.28218>:
      MEM[(guint16 *)code] = 49364;
      code = code + 2;
      displace.91 = (unsigned int) displace;
      MEM[(guint32 *)code] = displace.91;
      code = code + 4;
      <D.28222>:
    }
    goto <D.28224>;
    <D.28214>:
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    mono_add_patch_info (cfg, D.27080, 0, D.27815);
    MEM[(guint16 *)code] = 49364;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.28224>:
    code.50 = (long unsigned int) code;
    o.92 = (long unsigned int) o;
    D.28226 = code.50 - o.92;
    D.28227 = (unsigned short) D.28226;
    D.28228 = D.28227 + 2;
    D.28229 = (short int) D.28228;
    D.28230 = D.28229 / 2;
    *o = D.28230;
  }
  goto <D.24711>;
  <D.25038>:
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  D.27816 = D.27815->native_offset;
  if (D.27816 != 0) goto <D.28231>; else goto <D.28232>;
  <D.28231>:
  {
    int displace;

    D.26696 = cfg->native_code;
    D.27814 = ins->data.op[1].many_blocks;
    D.27815 = *D.27814;
    D.27816 = D.27815->native_offset;
    D.27819 = (sizetype) D.27816;
    D.27820 = D.26696 + D.27819;
    D.27821 = (long int) D.27820;
    code.46 = (long int) code;
    D.27822 = D.27821 - code.46;
    D.27823 = D.27822 / 2;
    displace = (int) D.27823;
    displace.93 = (unsigned int) displace;
    D.28234 = displace.93 + 32768;
    if (D.28234 <= 65535) goto <D.28235>; else goto <D.28236>;
    <D.28235>:
    D.28237 = displace & 65535;
    D.28238 = D.28237 | -1479278592;
    D.28239 = (unsigned int) D.28238;
    MEM[(guint32 *)code] = D.28239;
    code = code + 4;
    goto <D.28240>;
    <D.28236>:
    MEM[(guint16 *)code] = 49364;
    code = code + 2;
    displace.94 = (unsigned int) displace;
    MEM[(guint32 *)code] = displace.94;
    code = code + 4;
    <D.28240>:
  }
  goto <D.28242>;
  <D.28232>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  D.27814 = ins->data.op[1].many_blocks;
  D.27815 = *D.27814;
  mono_add_patch_info (cfg, D.27080, 0, D.27815);
  MEM[(guint16 *)code] = 49364;
  code = code + 2;
  MEM[(guint32 *)code] = 0;
  code = code + 4;
  <D.28242>:
  goto <D.24711>;
  <D.25040>:
  {
    short int * o;

    MEM[(guint32 *)code] = 2815950975;
    code = code + 4;
    D.26827 = ins->sreg1;
    D.26828 = D.26827 << 4;
    D.26829 = (signed short) D.26828;
    D.27913 = D.26829 | -4864;
    D.27914 = (short unsigned int) D.27913;
    MEM[(guint16 *)code] = D.27914;
    code = code + 2;
    MEM[(guint32 *)code] = 3489660945;
    code = code + 4;
    MEM[(guint32 *)code] = 2810445824;
    code = code + 4;
    code.50 = (long unsigned int) code;
    D.27332 = code.50 + 18446744073709551614;
    o = (short int *) D.27332;
    code.46 = (long int) code;
    D.26696 = cfg->native_code;
    D.26709 = (long int) D.26696;
    D.26710 = code.46 - D.26709;
    D.27080 = (int) D.26710;
    mono_add_patch_info (cfg, D.27080, 9, "ArithmeticException");
    MEM[(guint16 *)code] = 49381;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    code.50 = (long unsigned int) code;
    o.95 = (long unsigned int) o;
    D.28244 = code.50 - o.95;
    D.28245 = (unsigned short) D.28244;
    D.28246 = D.28245 + 2;
    D.28247 = (short int) D.28246;
    D.28248 = D.28247 / 2;
    *o = D.28248;
  }
  goto <D.24711>;
  <D.25042>:
  D.28249 = ins->backend.size;
  if (D.28249 > 0) goto <D.28250>; else goto <D.28251>;
  <D.28250>:
  D.28249 = ins->backend.size;
  if (D.28249 <= 256) goto <D.28252>; else goto <D.28253>;
  <D.28252>:
  D.28249 = ins->backend.size;
  D.28254 = D.28249 + -1;
  D.28255 = D.28254 << 16;
  D.28256 = D.28255 & 16711680;
  D.28257 = D.28256 | -771751936;
  D.26742 = ins->dreg;
  D.26757 = D.26742 << 12;
  D.28258 = D.28257 | D.26757;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.28259 = D.28258 | D.26765;
  D.28260 = (unsigned int) D.28259;
  MEM[(guint32 *)code] = D.28260;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.28261 = (signed short) D.27937;
  D.26729 = ins->data.op[1].const_val;
  D.28262 = (signed short) D.26729;
  D.28263 = D.28262 & 4095;
  D.28264 = D.28261 | D.28263;
  D.28265 = (short unsigned int) D.28264;
  MEM[(guint16 *)code] = D.28265;
  code = code + 2;
  goto <D.28266>;
  <D.28253>:
  D.26742 = ins->dreg;
  D.27688 = D.26742 | -1190920192;
  D.27689 = (unsigned int) D.27688;
  MEM[(guint32 *)code] = D.27689;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  if (D.26737 > 0) goto <D.28267>; else goto <D.28268>;
  <D.28267>:
  D.26737 = ins->data.op[0].const_val;
  D.26738 = (unsigned long) D.26737;
  D.27577 = D.26738 + 32768;
  if (D.27577 <= 65535) goto <D.28269>; else goto <D.28270>;
  <D.28269>:
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.27581 = D.26764 & 65535;
  D.28271 = D.27581 | -1492451328;
  D.28272 = (unsigned int) D.28271;
  MEM[(guint32 *)code] = D.28272;
  code = code + 4;
  goto <D.28273>;
  <D.28270>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26737 = ins->data.op[0].const_val;
  D.26756 = (long unsigned int) D.26737;
  MEM[(guint64 *)code] = D.26756;
  code = code + 8;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923080;
  code = code + 4;
  <D.28273>:
  <D.28268>:
  D.26827 = ins->sreg1;
  D.28274 = D.26827 | -1190920000;
  D.28275 = (unsigned int) D.28274;
  MEM[(guint32 *)code] = D.28275;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  if (D.26729 > 0) goto <D.28276>; else goto <D.28277>;
  <D.28276>:
  D.26729 = ins->data.op[1].const_val;
  D.26785 = (unsigned long) D.26729;
  D.26786 = D.26785 + 32768;
  if (D.26786 <= 65535) goto <D.28278>; else goto <D.28279>;
  <D.28278>:
  D.26729 = ins->data.op[1].const_val;
  D.26730 = (signed int) D.26729;
  D.26731 = D.26730 & 65535;
  D.28280 = D.26731 | -1479868416;
  D.28281 = (unsigned int) D.28280;
  MEM[(guint32 *)code] = D.28281;
  code = code + 4;
  goto <D.28282>;
  <D.28279>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.26729 = ins->data.op[1].const_val;
  D.26790 = (long unsigned int) D.26729;
  MEM[(guint64 *)code] = D.26790;
  code = code + 8;
  MEM[(guint16 *)code] = 58304;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923080;
  code = code + 4;
  <D.28282>:
  <D.28277>:
  D.28249 = ins->backend.size;
  D.28283 = (unsigned int) D.28249;
  D.28284 = D.28283 + 32768;
  if (D.28284 <= 65535) goto <D.28285>; else goto <D.28286>;
  <D.28285>:
  D.28249 = ins->backend.size;
  D.28287 = D.28249 & 65535;
  D.28288 = D.28287 | -1491533824;
  D.28289 = (unsigned int) D.28288;
  MEM[(guint32 *)code] = D.28289;
  code = code + 4;
  goto <D.28290>;
  <D.28286>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.28249 = ins->backend.size;
  D.28291 = (long unsigned int) D.28249;
  MEM[(guint64 *)code] = D.28291;
  code = code + 8;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923076;
  code = code + 4;
  <D.28290>:
  MEM[(guint32 *)code] = 3104047313;
  code = code + 4;
  MEM[(guint32 *)code] = 2819358720;
  code = code + 4;
  MEM[(guint32 *)code] = 2803171326;
  code = code + 4;
  <D.28266>:
  <D.28251>:
  goto <D.24711>;
  <D.25043>:
  D.27031 = ins->sreg2;
  D.28292 = D.27031 | -1190920176;
  D.28293 = (unsigned int) D.28292;
  MEM[(guint32 *)code] = D.28293;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  MEM[(guint32 *)code] = 3104309264;
  code = code + 4;
  MEM[(guint16 *)code] = 60161;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.28294 = D.26898 | 48;
  D.28295 = (unsigned int) D.28294;
  MEM[(guint32 *)code] = D.28295;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462774;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27231 = D.26892 | -1190920191;
  D.27232 = (unsigned int) D.27231;
  MEM[(guint32 *)code] = D.27232;
  code = code + 4;
  goto <D.24711>;
  <D.25044>:
  D.27031 = ins->sreg2;
  D.28292 = D.27031 | -1190920176;
  D.28293 = (unsigned int) D.28292;
  MEM[(guint32 *)code] = D.28293;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  MEM[(guint32 *)code] = 3104309264;
  code = code + 4;
  MEM[(guint16 *)code] = 60161;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.28294 = D.26898 | 48;
  D.28295 = (unsigned int) D.28294;
  MEM[(guint32 *)code] = D.28295;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462774;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27231 = D.26892 | -1190920191;
  D.27232 = (unsigned int) D.27231;
  MEM[(guint32 *)code] = D.27232;
  code = code + 4;
  goto <D.24711>;
  <D.25045>:
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26899 = D.26898 | 4;
  D.26900 = (unsigned int) D.26899;
  MEM[(guint32 *)code] = D.26900;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.27042 = (signed short) D.27031;
  D.28296 = D.27042 | -5376;
  D.28297 = (short unsigned int) D.28296;
  MEM[(guint16 *)code] = D.28297;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.28294 = D.26898 | 48;
  D.28295 = (unsigned int) D.28294;
  MEM[(guint32 *)code] = D.28295;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462778;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.27235 = (unsigned int) D.26997;
  MEM[(guint32 *)code] = D.27235;
  code = code + 4;
  goto <D.24711>;
  <D.25046>:
  D.27031 = ins->sreg2;
  D.28298 = D.27031 | -1189871600;
  D.28299 = (unsigned int) D.28298;
  MEM[(guint32 *)code] = D.28299;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26914 = D.26898 | 20;
  D.26915 = (unsigned int) D.26914;
  MEM[(guint32 *)code] = D.26915;
  code = code + 4;
  MEM[(guint32 *)code] = 3104309264;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.28300 = D.27937 | -1174339584;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.28301 = D.28300 | D.26765;
  D.28302 = (unsigned int) D.28301;
  MEM[(guint32 *)code] = D.28302;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462775;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.25047>:
  D.27031 = ins->sreg2;
  D.28298 = D.27031 | -1189871600;
  D.28299 = (unsigned int) D.28298;
  MEM[(guint32 *)code] = D.28299;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  D.26827 = ins->sreg1;
  D.26896 = D.26827 << 28;
  D.26737 = ins->data.op[0].const_val;
  D.26744 = D.26737 << 16;
  D.26745 = (signed int) D.26744;
  D.26746 = D.26745 & 268369920;
  D.26897 = D.26896 | D.26746;
  D.26737 = ins->data.op[0].const_val;
  D.26748 = D.26737 >> 12;
  D.26749 = D.26748 << 8;
  D.26750 = (signed int) D.26749;
  D.26751 = D.26750 & 65535;
  D.26898 = D.26897 | D.26751;
  D.26914 = D.26898 | 20;
  D.26915 = (unsigned int) D.26914;
  MEM[(guint32 *)code] = D.26915;
  code = code + 4;
  MEM[(guint32 *)code] = 3104309264;
  code = code + 4;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.28300 = D.27937 | -1174339584;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.28301 = D.28300 | D.26765;
  D.28302 = (unsigned int) D.28301;
  MEM[(guint32 *)code] = D.28302;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462775;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27463 = D.26892 | -1189871615;
  D.27464 = (unsigned int) D.27463;
  MEM[(guint32 *)code] = D.27464;
  code = code + 4;
  goto <D.24711>;
  <D.25048>:
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.28303 = D.27937 | 1476395008;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.28304 = D.28303 | D.26765;
  D.28305 = (unsigned int) D.28304;
  MEM[(guint32 *)code] = D.28305;
  code = code + 4;
  D.27031 = ins->sreg2;
  D.28306 = D.27031 << 16;
  D.28307 = D.28306 | -1174405120;
  D.26827 = ins->sreg1;
  D.27937 = D.26827 << 12;
  D.28308 = D.28307 | D.27937;
  D.26737 = ins->data.op[0].const_val;
  D.26764 = (signed int) D.26737;
  D.26765 = D.26764 & 4095;
  D.28309 = D.28308 | D.26765;
  D.28310 = (unsigned int) D.28309;
  MEM[(guint32 *)code] = D.28310;
  code = code + 4;
  MEM[(guint32 *)code] = 2809462780;
  code = code + 4;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.27135 = D.26892 | -1189871616;
  D.27470 = (unsigned int) D.27135;
  MEM[(guint32 *)code] = D.27470;
  code = code + 4;
  goto <D.24711>;
  <D.25049>:
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26997 = D.26892 | -1190920192;
  D.26827 = ins->sreg1;
  D.26998 = D.26997 | D.26827;
  D.26999 = (unsigned int) D.26998;
  MEM[(guint32 *)code] = D.26999;
  code = code + 4;
  D.28311 = cfg->stack_offset;
  D.28312 = (unsigned int) D.28311;
  D.28313 = D.28312 + 32768;
  if (D.28313 <= 65535) goto <D.28314>; else goto <D.28315>;
  <D.28314>:
  D.26742 = ins->dreg;
  D.27009 = D.26742 << 20;
  D.27107 = D.27009 | -1492451328;
  D.28311 = cfg->stack_offset;
  D.28316 = D.28311 & 65535;
  D.28317 = D.27107 | D.28316;
  D.28318 = (unsigned int) D.28317;
  MEM[(guint32 *)code] = D.28318;
  code = code + 4;
  goto <D.28319>;
  <D.28315>:
  MEM[(guint16 *)code] = 3536;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  D.28311 = cfg->stack_offset;
  D.28320 = (long unsigned int) D.28311;
  MEM[(guint64 *)code] = D.28320;
  code = code + 8;
  D.26742 = ins->dreg;
  D.26892 = D.26742 << 4;
  D.26893 = (signed short) D.26892;
  D.26894 = D.26893 | -7424;
  D.26895 = (short unsigned int) D.26894;
  MEM[(guint16 *)code] = D.26895;
  code = code + 2;
  MEM[(guint32 *)code] = 3489923080;
  code = code + 4;
  <D.28319>:
  goto <D.24711>;
  <D.25050>:
  goto <D.24711>;
  <D.25051>:
  <D.25052>:
  <D.25053>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  ins->backend.pc_offset = D.27080;
  goto <D.24711>;
  <D.25054>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.27080 = (int) D.26710;
  ins->backend.pc_offset = D.27080;
  D.28321 = cfg->mempool;
  D.28322 = bb->spill_slot_defs;
  D.28323 = g_slist_prepend_mempool (D.28321, D.28322, ins);
  bb->spill_slot_defs = D.28323;
  goto <D.24711>;
  <D.25055>:
  D.26711 = ins->opcode;
  D.26712 = (int) D.26711;
  D.28324 = mono_inst_name (D.26712);
  monoeg_g_log (0B, 16, "unknown opcode %s in %s()\n", D.28324, &__FUNCTION__);
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 4845);
  <D.24711>:
  D.28325 = cfg->opt;
  D.28326 = D.28325 & 2;
  if (D.28326 != 0) goto <D.28327>; else goto <D.28328>;
  <D.28327>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.28329 = (long int) offset;
  D.28330 = D.26710 - D.28329;
  D.28331 = (long int) max_len;
  if (D.28330 > D.28331) goto <D.28332>; else goto <D.28333>;
  <D.28332>:
  D.26711 = ins->opcode;
  D.26712 = (int) D.26711;
  D.28334 = mono_inst_name (D.26712);
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.28329 = (long int) offset;
  D.28330 = D.26710 - D.28329;
  monoeg_g_log (0B, 16, "wrong maximal instruction length of instruction %s (expected %d, got %ld)", D.28334, max_len, D.28330);
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 4851);
  <D.28333>:
  <D.28328>:
  cpos = cpos + max_len;
  last_offset = offset;
  ins = ins->next;
  <D.25058>:
  if (ins != 0B) goto <D.25057>; else goto <D.25059>;
  <D.25059>:
  code.46 = (long int) code;
  D.26696 = cfg->native_code;
  D.26709 = (long int) D.26696;
  D.26710 = code.46 - D.26709;
  D.28335 = (unsigned int) D.26710;
  cfg->code_len = D.28335;
}


is_unsigned (struct MonoInst * next)
{
  short unsigned int D.28340;
  short unsigned int D.28341;
  short unsigned int D.28343;
  short unsigned int D.28345;
  short unsigned int D.28347;
  gboolean D.28354;

  if (next != 0B) goto <D.28339>; else goto <D.28337>;
  <D.28339>:
  D.28340 = next->opcode;
  D.28341 = D.28340 + 64883;
  if (D.28341 <= 4) goto <D.28338>; else goto <D.28342>;
  <D.28342>:
  D.28340 = next->opcode;
  D.28343 = D.28340 + 64980;
  if (D.28343 <= 4) goto <D.28338>; else goto <D.28344>;
  <D.28344>:
  D.28340 = next->opcode;
  D.28345 = D.28340 + 65080;
  if (D.28345 <= 4) goto <D.28338>; else goto <D.28346>;
  <D.28346>:
  D.28340 = next->opcode;
  D.28347 = D.28340 + 65066;
  if (D.28347 <= 4) goto <D.28338>; else goto <D.28348>;
  <D.28348>:
  D.28340 = next->opcode;
  if (D.28340 == 450) goto <D.28338>; else goto <D.28349>;
  <D.28349>:
  D.28340 = next->opcode;
  if (D.28340 == 448) goto <D.28338>; else goto <D.28350>;
  <D.28350>:
  D.28340 = next->opcode;
  if (D.28340 == 642) goto <D.28338>; else goto <D.28351>;
  <D.28351>:
  D.28340 = next->opcode;
  if (D.28340 == 640) goto <D.28338>; else goto <D.28352>;
  <D.28352>:
  D.28340 = next->opcode;
  if (D.28340 == 535) goto <D.28338>; else goto <D.28353>;
  <D.28353>:
  D.28340 = next->opcode;
  if (D.28340 == 533) goto <D.28338>; else goto <D.28337>;
  <D.28338>:
  D.28354 = 1;
  return D.28354;
  <D.28337>:
  D.28354 = 0;
  return D.28354;
}


emit_load_volatile_arguments (guint8 * code, struct MonoCompile * cfg)
{
  unsigned int D.28356;
  unsigned char D.28359;
  int D.28360;
  int D.28361;
  signed short D.28362;
  signed short D.28363;
  short unsigned int D.28364;
  int D.28365;
  int D.28366;
  long int D.28367;
  long int D.28368;
  signed int D.28369;
  signed int D.28370;
  signed int D.28371;
  long int D.28372;
  long int D.28373;
  signed int D.28374;
  signed int D.28375;
  signed int D.28376;
  signed int D.28377;
  unsigned int D.28378;
  struct ArgInfo[1] * D.28379;
  long unsigned int D.28380;
  long unsigned int D.28381;
  struct MonoInst * * D.28382;
  long unsigned int D.28383;
  long unsigned int D.28384;
  struct MonoInst * * D.28385;
  short unsigned int D.28386;
  <unnamed type> D.28389;
  unsigned char D.28392;
  int D.28393;
  int D.28394;
  int D.28395;
  int D.28396;
  int D.28397;
  unsigned int D.28398;
  unsigned int D.28404;
  int D.28407;
  int D.28408;
  unsigned int D.28409;
  signed short D.28411;
  signed short D.28412;
  signed short D.28413;
  signed short D.28414;
  short unsigned int D.28415;
  unsigned char D.28423;
  signed short D.28426;
  short unsigned int D.28427;
  signed int D.28428;
  unsigned int D.28429;
  signed int D.28430;
  unsigned int D.28431;
  signed int D.28432;
  unsigned int D.28433;
  int D.28443;
  int D.28444;
  int D.28445;
  int D.28446;
  signed int D.28447;
  signed int D.28448;
  signed int D.28449;
  unsigned int D.28450;
  int D.28454;
  int D.28455;
  signed int D.28456;
  unsigned int D.28457;
  short unsigned int D.28471;
  int D.28472;
  <unnamed-unsigned:1> D.28473;
  int D.28474;
  int D.28475;
  guint8 * D.28476;
  struct MonoInst * inst;
  struct MonoMethod * method;
  struct MonoMethodSignature * sig;
  int pos;
  int i;
  struct CallInfo * cinfo;

  method = cfg->method;
  sig = mono_method_signature (method);
  pos = 0;
  cinfo = get_call_info (0B, 0B, sig);
  D.28356 = cinfo->struct_ret;
  if (D.28356 != 0) goto <D.28357>; else goto <D.28358>;
  <D.28357>:
  {
    struct ArgInfo * ainfo;

    ainfo = &cinfo->ret;
    inst = cfg->vret_addr;
    D.28359 = ainfo->reg;
    D.28360 = (int) D.28359;
    D.28361 = D.28360 << 4;
    D.28362 = (signed short) D.28361;
    D.28363 = D.28362 | -7424;
    D.28364 = (short unsigned int) D.28363;
    MEM[(guint16 *)code] = D.28364;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28377 = D.28376 | 4;
    D.28378 = (unsigned int) D.28377;
    MEM[(guint32 *)code] = D.28378;
    code = code + 4;
  }
  <D.28358>:
  i = 0;
  goto <D.25124>;
  <D.25123>:
  {
    struct ArgInfo * ainfo;

    D.28379 = &cinfo->args;
    D.28380 = (long unsigned int) i;
    D.28381 = D.28380 * 24;
    ainfo = D.28379 + D.28381;
    D.28382 = cfg->args;
    D.28383 = (long unsigned int) pos;
    D.28384 = D.28383 * 8;
    D.28385 = D.28382 + D.28384;
    inst = *D.28385;
    D.28386 = inst->opcode;
    if (D.28386 == 366) goto <D.28387>; else goto <D.28388>;
    <D.28387>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 0) goto <D.28390>; else goto <D.28391>;
    <D.28390>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28395 = D.28394 | -1190920192;
    D.28396 = inst->dreg;
    D.28397 = D.28395 | D.28396;
    D.28398 = (unsigned int) D.28397;
    MEM[(guint32 *)code] = D.28398;
    code = code + 4;
    goto <D.28399>;
    <D.28391>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 2) goto <D.28400>; else goto <D.28401>;
    <D.28400>:
    D.28396 = inst->dreg;
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    if (D.28396 != D.28393) goto <D.28402>; else goto <D.28403>;
    <D.28402>:
    D.28404 = ainfo->size;
    if (D.28404 == 4) goto <D.28405>; else goto <D.28406>;
    <D.28405>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28407 = D.28394 | -1291583488;
    D.28396 = inst->dreg;
    D.28408 = D.28407 | D.28396;
    D.28409 = (unsigned int) D.28408;
    MEM[(guint32 *)code] = D.28409;
    code = code + 4;
    goto <D.28410>;
    <D.28406>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28412 = D.28411 | 10240;
    D.28396 = inst->dreg;
    D.28413 = (signed short) D.28396;
    D.28414 = D.28412 | D.28413;
    D.28415 = (short unsigned int) D.28414;
    MEM[(guint16 *)code] = D.28415;
    code = code + 2;
    <D.28410>:
    <D.28403>:
    goto <D.28416>;
    <D.28401>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 1) goto <D.28417>; else goto <D.28418>;
    <D.28417>:
    goto <D.28419>;
    <D.28418>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 4998);
    <D.28419>:
    <D.28416>:
    <D.28399>:
    goto <D.28420>;
    <D.28388>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 0) goto <D.28421>; else goto <D.28422>;
    <D.28421>:
    D.28392 = ainfo->reg;
    D.28423 = D.28392 + 254;
    if (D.28423 > 4) goto <D.28424>; else goto <D.28425>;
    <D.28424>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5002);
    <D.28425>:
    D.28404 = ainfo->size;
    switch (D.28404) <default: <D.28434>, case 1: <D.25113>, case 2: <D.25115>, case 4: <D.25116>, case 8: <D.25117>>
    <D.25113>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28428 = D.28376 | 144;
    D.28429 = (unsigned int) D.28428;
    MEM[(guint32 *)code] = D.28429;
    code = code + 4;
    goto <D.25114>;
    <D.25115>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28430 = D.28376 | 21;
    D.28431 = (unsigned int) D.28430;
    MEM[(guint32 *)code] = D.28431;
    code = code + 4;
    goto <D.25114>;
    <D.25116>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28432 = D.28376 | 20;
    D.28433 = (unsigned int) D.28432;
    MEM[(guint32 *)code] = D.28433;
    code = code + 4;
    goto <D.25114>;
    <D.25117>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28377 = D.28376 | 4;
    D.28378 = (unsigned int) D.28377;
    MEM[(guint32 *)code] = D.28378;
    code = code + 4;
    goto <D.25114>;
    <D.28434>:
    <D.25114>:
    goto <D.28435>;
    <D.28422>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 1) goto <D.28436>; else goto <D.28437>;
    <D.28436>:
    goto <D.28438>;
    <D.28437>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 2) goto <D.28439>; else goto <D.28440>;
    <D.28439>:
    D.28404 = ainfo->size;
    if (D.28404 == 8) goto <D.28441>; else goto <D.28442>;
    <D.28441>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28443 = D.28393 << 20;
    D.28444 = D.28443 | 1744830464;
    D.28365 = inst->sreg1;
    D.28445 = D.28365 << 12;
    D.28446 = D.28444 | D.28445;
    D.28367 = inst->data.op[0].const_val;
    D.28447 = (signed int) D.28367;
    D.28448 = D.28447 & 4095;
    D.28449 = D.28446 | D.28448;
    D.28450 = (unsigned int) D.28449;
    MEM[(guint32 *)code] = D.28450;
    code = code + 4;
    goto <D.28451>;
    <D.28442>:
    D.28404 = ainfo->size;
    if (D.28404 == 4) goto <D.28452>; else goto <D.28453>;
    <D.28452>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28443 = D.28393 << 20;
    D.28454 = D.28443 | 2013265920;
    D.28365 = inst->sreg1;
    D.28445 = D.28365 << 12;
    D.28455 = D.28454 | D.28445;
    D.28367 = inst->data.op[0].const_val;
    D.28447 = (signed int) D.28367;
    D.28448 = D.28447 & 4095;
    D.28456 = D.28455 | D.28448;
    D.28457 = (unsigned int) D.28456;
    MEM[(guint32 *)code] = D.28457;
    code = code + 4;
    goto <D.28458>;
    <D.28453>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5024);
    <D.28458>:
    <D.28451>:
    goto <D.28459>;
    <D.28440>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 4) goto <D.28460>; else goto <D.28461>;
    <D.28460>:
    D.28392 = ainfo->reg;
    if (D.28392 != 15) goto <D.28462>; else goto <D.28463>;
    <D.28462>:
    D.28404 = ainfo->size;
    switch (D.28404) <default: <D.28464>, case 1: <D.25118>, case 2: <D.25120>, case 4: <D.25121>, case 8: <D.25122>>
    <D.25118>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28428 = D.28376 | 144;
    D.28429 = (unsigned int) D.28428;
    MEM[(guint32 *)code] = D.28429;
    code = code + 4;
    goto <D.25119>;
    <D.25120>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28430 = D.28376 | 21;
    D.28431 = (unsigned int) D.28430;
    MEM[(guint32 *)code] = D.28431;
    code = code + 4;
    goto <D.25119>;
    <D.25121>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28432 = D.28376 | 20;
    D.28433 = (unsigned int) D.28432;
    MEM[(guint32 *)code] = D.28433;
    code = code + 4;
    goto <D.25119>;
    <D.25122>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28377 = D.28376 | 4;
    D.28378 = (unsigned int) D.28377;
    MEM[(guint32 *)code] = D.28378;
    code = code + 4;
    goto <D.25119>;
    <D.28464>:
    <D.25119>:
    <D.28463>:
    goto <D.28465>;
    <D.28461>:
    D.28389 = ainfo->regtype;
    if (D.28389 == 6) goto <D.28466>; else goto <D.28467>;
    <D.28466>:
    D.28392 = ainfo->reg;
    if (D.28392 != 15) goto <D.28468>; else goto <D.28469>;
    <D.28468>:
    D.28392 = ainfo->reg;
    D.28393 = (int) D.28392;
    D.28394 = D.28393 << 4;
    D.28411 = (signed short) D.28394;
    D.28426 = D.28411 | -7424;
    D.28427 = (short unsigned int) D.28426;
    MEM[(guint16 *)code] = D.28427;
    code = code + 2;
    D.28365 = inst->sreg1;
    D.28366 = D.28365 << 28;
    D.28367 = inst->data.op[0].const_val;
    D.28368 = D.28367 << 16;
    D.28369 = (signed int) D.28368;
    D.28370 = D.28369 & 268369920;
    D.28371 = D.28366 | D.28370;
    D.28367 = inst->data.op[0].const_val;
    D.28372 = D.28367 >> 12;
    D.28373 = D.28372 << 8;
    D.28374 = (signed int) D.28373;
    D.28375 = D.28374 & 65535;
    D.28376 = D.28371 | D.28375;
    D.28377 = D.28376 | 4;
    D.28378 = (unsigned int) D.28377;
    MEM[(guint32 *)code] = D.28378;
    code = code + 4;
    <D.28469>:
    goto <D.28470>;
    <D.28467>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5047);
    <D.28470>:
    <D.28465>:
    <D.28459>:
    <D.28438>:
    <D.28435>:
    <D.28420>:
    pos = pos + 1;
  }
  i = i + 1;
  <D.25124>:
  D.28471 = sig->param_count;
  D.28472 = (int) D.28471;
  D.28473 = sig->hasthis;
  D.28474 = (int) D.28473;
  D.28475 = D.28472 + D.28474;
  if (D.28475 > i) goto <D.25123>; else goto <D.25125>;
  <D.25125>:
  D.28476 = code;
  return D.28476;
}


backUpStackPtr (struct MonoCompile * cfg, guint8 * code)
{
  unsigned int D.28479;
  unsigned int D.28480;
  unsigned int D.28483;
  unsigned int stackSize.96;
  unsigned int D.28485;
  int D.28488;
  int D.28489;
  unsigned int D.28490;
  guint8 * D.28492;
  int stackSize;

  D.28479 = cfg->stack_usage;
  stackSize = (int) D.28479;
  D.28480 = cfg->frame_reg;
  if (D.28480 != 15) goto <D.28481>; else goto <D.28482>;
  <D.28481>:
  D.28480 = cfg->frame_reg;
  D.28483 = D.28480 | 3104047344;
  MEM[(guint32 *)code] = D.28483;
  code = code + 4;
  <D.28482>:
  stackSize.96 = (unsigned int) stackSize;
  D.28485 = stackSize.96 + 32768;
  if (D.28485 <= 65535) goto <D.28486>; else goto <D.28487>;
  <D.28486>:
  D.28488 = stackSize & 65535;
  D.28489 = D.28488 | -1476722688;
  D.28490 = (unsigned int) D.28489;
  MEM[(guint32 *)code] = D.28490;
  code = code + 4;
  goto <D.28491>;
  <D.28487>:
  goto <D.24065>;
  <D.24064>:
  MEM[(guint32 *)code] = 2818277375;
  code = code + 4;
  stackSize = stackSize + -32767;
  <D.24065>:
  if (stackSize > 32767) goto <D.24064>; else goto <D.24066>;
  <D.24066>:
  D.28488 = stackSize & 65535;
  D.28489 = D.28488 | -1476722688;
  D.28490 = (unsigned int) D.28489;
  MEM[(guint32 *)code] = D.28490;
  code = code + 4;
  <D.28491>:
  D.28492 = code;
  return D.28492;
}


emit_float_to_int (struct MonoCompile * cfg, guchar * code, int dreg, int sreg, int size, gboolean is_signed)
{
  int D.28496;
  int D.28497;
  int D.28498;
  unsigned int D.28499;
  int D.28500;
  int D.28501;
  unsigned int D.28502;
  int D.28503;
  unsigned int D.28504;
  int D.28505;
  unsigned int D.28506;
  signed short D.28509;
  signed short D.28510;
  short unsigned int D.28511;
  long unsigned int code.97;
  long unsigned int D.28513;
  short int * D.28514;
  int D.28515;
  unsigned int D.28516;
  short int * D.28517;
  long unsigned int D.28518;
  long unsigned int D.28519;
  unsigned short D.28520;
  unsigned short D.28521;
  short int D.28522;
  short int D.28523;
  int D.28524;
  int D.28525;
  unsigned int D.28526;
  int D.28527;
  unsigned int D.28528;
  guchar * D.28530;

  if (is_signed != 0) goto <D.28494>; else goto <D.28495>;
  <D.28494>:
  D.28496 = dreg << 4;
  D.28497 = D.28496 | -1280749568;
  D.28498 = D.28497 | sreg;
  D.28499 = (unsigned int) D.28498;
  MEM[(guint32 *)code] = D.28499;
  code = code + 4;
  switch (size) <default: <D.28507>, case 1: <D.24689>>
  <D.24689>:
  MEM[(guint32 *)code] = 2802384896;
  code = code + 4;
  MEM[(guint32 *)code] = 2816016639;
  code = code + 4;
  D.28496 = dreg << 4;
  D.28500 = D.28496 | -1191051264;
  D.28501 = D.28500 | dreg;
  D.28502 = (unsigned int) D.28501;
  MEM[(guint32 *)code] = D.28502;
  code = code + 4;
  MEM[(guint32 *)code] = 2813591556;
  code = code + 4;
  MEM[(guint32 *)code] = 2802385024;
  code = code + 4;
  D.28496 = dreg << 4;
  D.28503 = D.28496 | -1182793715;
  D.28504 = (unsigned int) D.28503;
  MEM[(guint32 *)code] = D.28504;
  code = code + 4;
  D.28496 = dreg << 4;
  D.28505 = D.28496 | -1182728192;
  D.28506 = (unsigned int) D.28505;
  MEM[(guint32 *)code] = D.28506;
  code = code + 4;
  goto <D.24690>;
  <D.28507>:
  <D.24690>:
  goto <D.28508>;
  <D.28495>:
  {
    short int * o[1];

    try
      {
        MEM[(guint16 *)code] = 3536;
        code = code + 2;
        MEM[(guint32 *)code] = 2817785866;
        code = code + 4;
        MEM[(guint64 *)code] = 4746794007248502784;
        code = code + 8;
        MEM[(guint64 *)code] = 4751297606875873280;
        code = code + 8;
        D.28509 = (signed short) sreg;
        D.28510 = D.28509 | 10480;
        D.28511 = (short unsigned int) D.28510;
        MEM[(guint16 *)code] = D.28511;
        code = code + 2;
        MEM[(guint16 *)code] = 60912;
        code = code + 2;
        MEM[(guint32 *)code] = 3489923097;
        code = code + 4;
        MEM[(guint32 *)code] = 2806251520;
        code = code + 4;
        code.97 = (long unsigned int) code;
        D.28513 = code.97 + 18446744073709551614;
        D.28514 = (short int *) D.28513;
        o[0] = D.28514;
        MEM[(guint16 *)code] = 60912;
        code = code + 2;
        MEM[(guint32 *)code] = 3490447387;
        code = code + 4;
        D.28496 = dreg << 4;
        D.28515 = D.28496 | -1281789937;
        D.28516 = (unsigned int) D.28515;
        MEM[(guint32 *)code] = D.28516;
        code = code + 4;
        MEM[(guint32 *)code] = 2817785860;
        code = code + 4;
        D.28517 = o[0];
        code.97 = (long unsigned int) code;
        D.28517 = o[0];
        D.28518 = (long unsigned int) D.28517;
        D.28519 = code.97 - D.28518;
        D.28520 = (unsigned short) D.28519;
        D.28521 = D.28520 + 2;
        D.28522 = (short int) D.28521;
        D.28523 = D.28522 / 2;
        *D.28517 = D.28523;
        D.28496 = dreg << 4;
        D.28524 = D.28496 | -1281798144;
        D.28525 = D.28524 | sreg;
        D.28526 = (unsigned int) D.28525;
        MEM[(guint32 *)code] = D.28526;
        code = code + 4;
        switch (size) <default: <D.28529>, case 1: <D.24692>, case 2: <D.24694>>
        <D.24692>:
        MEM[(guint32 *)code] = 2802385151;
        code = code + 4;
        D.28496 = dreg << 4;
        D.28527 = D.28496 | -1182793728;
        D.28528 = (unsigned int) D.28527;
        MEM[(guint32 *)code] = D.28528;
        code = code + 4;
        goto <D.24693>;
        <D.24694>:
        MEM[(guint32 *)code] = 2802450431;
        code = code + 4;
        MEM[(guint16 *)code] = 60160;
        code = code + 2;
        MEM[(guint32 *)code] = 1048588;
        code = code + 4;
        D.28496 = dreg << 4;
        D.28527 = D.28496 | -1182793728;
        D.28528 = (unsigned int) D.28527;
        MEM[(guint32 *)code] = D.28528;
        code = code + 4;
        goto <D.24693>;
        <D.28529>:
        <D.24693>:
      }
    finally
      {
        o = {CLOBBER};
      }
  }
  <D.28508>:
  D.28530 = code;
  return D.28530;
}


g_slist_prepend_mempool (struct MonoMemPool * mp, struct GSList * list, void * data)
{
  struct GSList * D.28533;
  struct GSList * new_list;

  new_list = mono_mempool_alloc (mp, 16);
  new_list->data = data;
  new_list->next = list;
  D.28533 = new_list;
  return D.28533;
}


__attribute__((visibility ("hidden")))
mono_arch_register_lowlevel_calls ()
{

}


__attribute__((visibility ("hidden")))
mono_arch_patch_code (struct MonoMethod * method, struct MonoDomain * domain, guint8 * code, struct MonoJumpInfo * ji, struct MonoCodeManager * dyn_code_mp, gboolean run_cctors)
{
  int D.28535;
  sizetype D.28536;
  <unnamed type> D.28537;
  long unsigned int target.98;
  unsigned char * D.28539;
  long unsigned int ip.99;
  long unsigned int D.28541;
  long unsigned int D.28542;
  struct MonoJumpInfo * patch_info;

  patch_info = ji;
  goto <D.25099>;
  <D.25098>:
  {
    unsigned char * ip;
    const void * target;

    D.28535 = patch_info->ip.i;
    D.28536 = (sizetype) D.28535;
    ip = code + D.28536;
    target = 0B;
    target = mono_resolve_patch_target (method, domain, code, patch_info, run_cctors);
    D.28537 = patch_info->type;
    switch (D.28537) <default: <D.25097>, case 1: <D.25080>, case 3: <D.25081>, case 5: <D.25096>, case 6: <D.25089>, case 7: <D.25083>, case 8: <D.25088>, case 9: <D.25079>, case 10: <D.25075>, case 11: <D.25090>, case 12: <D.25091>, case 13: <D.25092>, case 15: <D.25084>, case 17: <D.25076>, case 18: <D.25078>, case 19: <D.25077>, case 20: <D.25094>, case 21: <D.25095>, case 22: <D.25074>, case 23: <D.25093>, case 32: <D.25085>, case 35: <D.25082>, case 36: <D.25086>>
    <D.25074>:
    <D.25075>:
    <D.25076>:
    <D.25077>:
    <D.25078>:
    <D.25079>:
    <D.25080>:
    <D.25081>:
    <D.25082>:
    <D.25083>:
    <D.25084>:
    <D.25085>:
    <D.25086>:
    target.98 = (long unsigned int) target;
    s390_patch_addr (ip, target.98);
    // predicted unlikely by continue predictor.
    goto <D.25087>;
    <D.25088>:
    D.28539 = ip + 6;
    MEM[(const void * *)D.28539] = target;
    // predicted unlikely by continue predictor.
    goto <D.25087>;
    <D.25089>:
    <D.25090>:
    <D.25091>:
    <D.25092>:
    <D.25093>:
    target.98 = (long unsigned int) target;
    ip.99 = (long unsigned int) ip;
    D.28541 = target.98 - ip.99;
    D.28542 = D.28541 / 2;
    target = (const void *) D.28542;
    target.98 = (long unsigned int) target;
    s390_patch_rel (ip, target.98);
    // predicted unlikely by continue predictor.
    goto <D.25087>;
    <D.25094>:
    <D.25095>:
    <D.25096>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 4937);
    <D.25097>:
    target.98 = (long unsigned int) target;
    ip.99 = (long unsigned int) ip;
    D.28541 = target.98 - ip.99;
    D.28542 = D.28541 / 2;
    target = (const void *) D.28542;
    ip = ip + 2;
    target.98 = (long unsigned int) target;
    s390_patch_rel (ip, target.98);
  }
  <D.25087>:
  patch_info = patch_info->next;
  <D.25099>:
  if (patch_info != 0B) goto <D.25098>; else goto <D.25100>;
  <D.25100>:
}


s390_patch_addr (guchar * code, guint64 target)
{
  guint64 * offset;

  offset = code;
  if (target != 0) goto <D.28543>; else goto <D.28544>;
  <D.28543>:
  *offset = target;
  <D.28544>:
}


s390_patch_rel (guchar * code, guint64 target)
{
  unsigned int D.28547;
  guint32 * offset;

  offset = code;
  if (target != 0) goto <D.28545>; else goto <D.28546>;
  <D.28545>:
  D.28547 = (unsigned int) target;
  *offset = D.28547;
  <D.28546>:
}


__attribute__((visibility ("hidden")))
mono_arch_emit_prolog (struct MonoCompile * cfg)
{
  struct MonoTraceSpec * mono_jit_trace_calls.100;
  int D.28552;
  unsigned int D.28554;
  unsigned int D.28555;
  unsigned int D.28556;
  unsigned int D.28557;
  long unsigned int D.28560;
  long unsigned int D.28561;
  unsigned int D.28564;
  long unsigned int D.28565;
  long int code.101;
  unsigned char * D.28567;
  long int D.28568;
  long int D.28569;
  int D.28570;
  int D.28571;
  int D.28574;
  int D.28575;
  unsigned int D.28576;
  unsigned int D.28577;
  unsigned int D.28578;
  long unsigned int D.28581;
  long unsigned int D.28582;
  int D.28583;
  unsigned int D.28584;
  int D.28585;
  unsigned long alloc_size.102;
  unsigned long D.28587;
  unsigned int D.28590;
  unsigned int D.28591;
  signed int D.28592;
  signed int D.28593;
  signed int D.28594;
  unsigned int D.28595;
  int D.28597;
  int D.28598;
  int D.28599;
  unsigned int D.28600;
  unsigned int D.28601;
  int D.28604;
  struct MonoInst * D.28605;
  short unsigned int D.28608;
  _Bool D.28609;
  long int D.28610;
  long int D.28611;
  int D.28614;
  int D.28615;
  long int D.28616;
  long int D.28617;
  signed int D.28618;
  signed int D.28619;
  signed int D.28620;
  long int D.28621;
  long int D.28622;
  signed int D.28623;
  signed int D.28624;
  signed int D.28625;
  signed int D.28626;
  unsigned int D.28627;
  int D.28628;
  unsigned int D.28629;
  short unsigned int D.28632;
  int D.28633;
  int D.28634;
  short unsigned int D.28635;
  sizetype D.28636;
  sizetype D.28637;
  guint8 * D.28638;
  unsigned char D.28639;
  long int D.28640;
  struct MonoMemPool * D.28641;
  unsigned int D.28642;
  short unsigned int D.28645;
  int D.28646;
  unsigned char D.28647;
  int D.28648;
  int D.28649;
  signed short D.28650;
  signed short D.28651;
  short unsigned int D.28652;
  int D.28653;
  int D.28654;
  long int D.28655;
  long int D.28656;
  signed int D.28657;
  signed int D.28658;
  signed int D.28659;
  long int D.28660;
  long int D.28661;
  signed int D.28662;
  signed int D.28663;
  signed int D.28664;
  signed int D.28665;
  unsigned int D.28666;
  struct ArgInfo[1] * D.28667;
  long unsigned int i.103;
  long unsigned int D.28669;
  struct MonoInst * * D.28670;
  long unsigned int pos.104;
  long unsigned int D.28672;
  struct MonoInst * * D.28673;
  short unsigned int D.28674;
  <unnamed type> D.28679;
  int D.28682;
  int D.28683;
  int D.28684;
  unsigned char D.28685;
  int D.28686;
  int D.28687;
  unsigned int D.28688;
  unsigned int D.28694;
  int D.28697;
  int D.28698;
  unsigned int D.28699;
  signed short D.28701;
  signed short D.28702;
  signed short D.28703;
  signed short D.28704;
  short unsigned int D.28705;
  signed int D.28709;
  signed int D.28710;
  signed int D.28711;
  unsigned int D.28712;
  signed short D.28713;
  short unsigned int D.28714;
  int D.28715;
  int D.28716;
  int D.28717;
  int D.28718;
  int D.28719;
  int D.28720;
  int D.28721;
  int D.28722;
  int D.28723;
  unsigned int D.28724;
  unsigned int D.28726;
  const char * D.28729;
  unsigned char D.28733;
  int D.28736;
  int D.28737;
  int D.28738;
  int D.28739;
  signed int D.28740;
  signed int D.28741;
  signed int D.28742;
  unsigned int D.28743;
  int D.28744;
  int D.28745;
  signed int D.28746;
  unsigned int D.28747;
  int D.28748;
  int D.28749;
  signed int D.28750;
  unsigned int D.28751;
  int D.28752;
  signed short D.28753;
  signed short D.28754;
  short unsigned int D.28755;
  int D.28765;
  int D.28766;
  signed int D.28767;
  unsigned int D.28768;
  int D.28772;
  int D.28773;
  signed int D.28774;
  unsigned int D.28775;
  guint32 iftmp.105;
  long unsigned int D.28784;
  struct MonoType * D.28787;
  struct MonoClass * D.28788;
  int D.28789;
  int D.28793;
  int D.28794;
  int D.28795;
  int D.28796;
  int D.28797;
  unsigned int D.28798;
  int D.28799;
  int D.28800;
  int D.28801;
  int D.28802;
  unsigned int D.28803;
  int D.28806;
  int D.28807;
  int D.28808;
  int D.28809;
  unsigned int D.28810;
  int D.28811;
  int D.28812;
  int D.28813;
  unsigned int D.28814;
  int D.28817;
  int D.28818;
  int D.28819;
  int D.28820;
  unsigned int D.28821;
  int D.28822;
  int D.28823;
  int D.28824;
  unsigned int D.28825;
  int D.28828;
  signed short D.28829;
  signed short D.28830;
  short unsigned int D.28831;
  int D.28832;
  int D.28833;
  int D.28834;
  int D.28835;
  int D.28836;
  int D.28837;
  int D.28838;
  int D.28839;
  unsigned int D.28840;
  short unsigned int D.28849;
  int D.28850;
  <unnamed-unsigned:1> D.28851;
  int D.28852;
  int D.28853;
  long int D.28854;
  unsigned int D.28857;
  unsigned int D.28858;
  int D.28859;
  int D.28860;
  unsigned int D.28861;
  int lmf_addr_tls_offset.106;
  int D.28866;
  int D.28867;
  int D.28868;
  int D.28869;
  int D.28870;
  int D.28871;
  int D.28872;
  int D.28873;
  unsigned int D.28874;
  long unsigned int method.107;
  long int D.28876;
  unsigned int D.28877;
  sizetype i.108;
  sizetype D.28879;
  void * D.28880;
  long int D.28881;
  unsigned int D.28882;
  unsigned int D.28883;
  unsigned int D.28884;
  unsigned int D.28885;
  unsigned int D.28888;
  unsigned int D.28889;
  _Bool D.28890;
  long int D.28891;
  long int D.28892;
  guint8 * D.28895;
  struct MonoMethod * method;
  struct MonoBasicBlock * bb;
  struct MonoMethodSignature * sig;
  struct MonoInst * inst;
  long int alloc_size;
  long int pos;
  long int max_offset;
  long int i;
  long int cfa_offset;
  guint8 * code;
  guint32 size;
  struct CallInfo * cinfo;
  int tracing;
  int lmfOffset;

  method = cfg->method;
  cfa_offset = 0;
  tracing = 0;
  cfg->code_size = 512;
  mono_jit_trace_calls.100 = mono_jit_trace_calls;
  if (mono_jit_trace_calls.100 != 0B) goto <D.28551>; else goto <D.28548>;
  <D.28551>:
  D.28552 = mono_trace_eval (method);
  if (D.28552 != 0) goto <D.28553>; else goto <D.28548>;
  <D.28553>:
  tracing = 1;
  D.28554 = cfg->code_size;
  D.28555 = D.28554 + 256;
  cfg->code_size = D.28555;
  goto <D.28549>;
  <D.28548>:
  D.28556 = cfg->prof_options;
  D.28557 = D.28556 & 4096;
  if (D.28557 != 0) goto <D.28558>; else goto <D.28559>;
  <D.28558>:
  D.28554 = cfg->code_size;
  D.28555 = D.28554 + 256;
  cfg->code_size = D.28555;
  <D.28559>:
  <D.28549>:
  D.28560 = BIT_FIELD_REF <*method, 64, 256>;
  D.28561 = D.28560 & 36028797018963968;
  if (D.28561 != 0) goto <D.28562>; else goto <D.28563>;
  <D.28562>:
  D.28554 = cfg->code_size;
  D.28564 = D.28554 + 200;
  cfg->code_size = D.28564;
  <D.28563>:
  D.28554 = cfg->code_size;
  D.28565 = (long unsigned int) D.28554;
  code = monoeg_malloc (D.28565);
  cfg->native_code = code;
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28570 = (int) D.28569;
  mono_emit_unwind_op (cfg, D.28570, 12, 15, 0);
  cfg->cfa_reg = 15;
  cfg->cfa_offset = 0;
  emit_unwind_regs (cfg, code, 6, 14, 48);
  MEM[(guint16 *)code] = 60270;
  code = code + 2;
  MEM[(guint32 *)code] = 4029677604;
  code = code + 4;
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28570 = (int) D.28569;
  mono_emit_unwind_op (cfg, D.28570, 128, 14, 112);
  D.28571 = cfg->arch.bkchain_reg;
  if (D.28571 != -1) goto <D.28572>; else goto <D.28573>;
  <D.28572>:
  D.28571 = cfg->arch.bkchain_reg;
  D.28574 = D.28571 << 4;
  D.28575 = D.28574 | -1190920177;
  D.28576 = (unsigned int) D.28575;
  MEM[(guint32 *)code] = D.28576;
  code = code + 4;
  <D.28573>:
  D.28577 = cfg->flags;
  D.28578 = D.28577 & 1;
  if (D.28578 != 0) goto <D.28579>; else goto <D.28580>;
  <D.28579>:
  D.28581 = cfg->used_int_regs;
  D.28582 = D.28581 | 2048;
  cfg->used_int_regs = D.28582;
  <D.28580>:
  D.28583 = cfg->stack_offset;
  alloc_size = (long int) D.28583;
  cfa_offset = alloc_size;
  D.28584 = (unsigned int) cfa_offset;
  cfg->stack_usage = D.28584;
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28570 = (int) D.28569;
  D.28585 = (int) alloc_size;
  mono_emit_unwind_op (cfg, D.28570, 14, 0, D.28585);
  D.28585 = (int) alloc_size;
  cfg->cfa_offset = D.28585;
  MEM[(guint32 *)code] = 3104047295;
  code = code + 4;
  alloc_size.102 = (unsigned long) alloc_size;
  D.28587 = alloc_size.102 + 32768;
  if (D.28587 <= 65535) goto <D.28588>; else goto <D.28589>;
  <D.28588>:
  D.28590 = (unsigned int) alloc_size;
  D.28591 = -D.28590;
  D.28592 = (signed int) D.28591;
  D.28593 = D.28592 & 65535;
  D.28594 = D.28593 | -1476722688;
  D.28595 = (unsigned int) D.28594;
  MEM[(guint32 *)code] = D.28595;
  code = code + 4;
  goto <D.28596>;
  <D.28589>:
  {
    int stackSize;

    stackSize = (int) alloc_size;
    goto <D.25145>;
    <D.25144>:
    MEM[(guint32 *)code] = 2818277377;
    code = code + 4;
    stackSize = stackSize + -32767;
    <D.25145>:
    if (stackSize > 32767) goto <D.25144>; else goto <D.25146>;
    <D.25146>:
    D.28597 = -stackSize;
    D.28598 = D.28597 & 65535;
    D.28599 = D.28598 | -1476722688;
    D.28600 = (unsigned int) D.28599;
    MEM[(guint32 *)code] = D.28600;
    code = code + 4;
  }
  <D.28596>:
  MEM[(guint16 *)code] = 58288;
  code = code + 2;
  MEM[(guint32 *)code] = 4026531876;
  code = code + 4;
  D.28601 = cfg->frame_reg;
  if (D.28601 != 15) goto <D.28602>; else goto <D.28603>;
  <D.28602>:
  MEM[(guint32 *)code] = 3104047295;
  code = code + 4;
  <D.28603>:
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28570 = (int) D.28569;
  D.28601 = cfg->frame_reg;
  D.28604 = (int) D.28601;
  mono_emit_unwind_op (cfg, D.28570, 13, D.28604, 0);
  D.28601 = cfg->frame_reg;
  D.28604 = (int) D.28601;
  cfg->cfa_reg = D.28604;
  D.28605 = cfg->rgctx_var;
  if (D.28605 != 0B) goto <D.28606>; else goto <D.28607>;
  <D.28606>:
  D.28605 = cfg->rgctx_var;
  D.28608 = D.28605->opcode;
  D.28609 = D.28608 != 367;
  D.28610 = (long int) D.28609;
  D.28611 = __builtin_expect (D.28610, 0);
  if (D.28611 != 0) goto <D.28612>; else goto <D.28613>;
  <D.28612>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5129, "cfg->rgctx_var->opcode == OP_REGOFFSET");
  <D.28613>:
  MEM[(guint16 *)code] = 58256;
  code = code + 2;
  D.28605 = cfg->rgctx_var;
  D.28614 = D.28605->sreg1;
  D.28615 = D.28614 << 28;
  D.28605 = cfg->rgctx_var;
  D.28616 = D.28605->data.op[0].const_val;
  D.28617 = D.28616 << 16;
  D.28618 = (signed int) D.28617;
  D.28619 = D.28618 & 268369920;
  D.28620 = D.28615 | D.28619;
  D.28605 = cfg->rgctx_var;
  D.28616 = D.28605->data.op[0].const_val;
  D.28621 = D.28616 >> 12;
  D.28622 = D.28621 << 8;
  D.28623 = (signed int) D.28622;
  D.28624 = D.28623 & 65535;
  D.28625 = D.28620 | D.28624;
  D.28626 = D.28625 | 36;
  D.28627 = (unsigned int) D.28626;
  MEM[(guint32 *)code] = D.28627;
  code = code + 4;
  <D.28607>:
  max_offset = 0;
  bb = cfg->bb_entry;
  goto <D.25152>;
  <D.25151>:
  {
    struct MonoInst * ins;

    D.28628 = (int) max_offset;
    bb->max_offset = D.28628;
    D.28556 = cfg->prof_options;
    D.28629 = D.28556 & 8192;
    if (D.28629 != 0) goto <D.28630>; else goto <D.28631>;
    <D.28630>:
    max_offset = max_offset + 6;
    <D.28631>:
    ins = bb->code;
    goto <D.25149>;
    <D.25148>:
    D.28632 = ins->opcode;
    D.28633 = (int) D.28632;
    D.28634 = D.28633 + -313;
    D.28635 = s390x_cpu_desc_idx[D.28634];
    D.28636 = (sizetype) D.28635;
    D.28637 = D.28636 + 4;
    D.28638 = &s390x_cpu_desc + D.28637;
    D.28639 = *D.28638;
    D.28640 = (long int) D.28639;
    max_offset = D.28640 + max_offset;
    ins = ins->next;
    <D.25149>:
    if (ins != 0B) goto <D.25148>; else goto <D.25150>;
    <D.25150>:
  }
  bb = bb->next_bb;
  <D.25152>:
  if (bb != 0B) goto <D.25151>; else goto <D.25153>;
  <D.25153>:
  sig = mono_method_signature (method);
  pos = 0;
  D.28641 = cfg->mempool;
  cinfo = get_call_info (cfg, D.28641, sig);
  D.28642 = cinfo->struct_ret;
  if (D.28642 != 0) goto <D.28643>; else goto <D.28644>;
  <D.28643>:
  {
    struct ArgInfo * ainfo;

    ainfo = &cinfo->ret;
    inst = cfg->vret_addr;
    D.28645 = ainfo->vtsize;
    D.28646 = (int) D.28645;
    inst->backend.size = D.28646;
    D.28647 = ainfo->reg;
    D.28648 = (int) D.28647;
    D.28649 = D.28648 << 4;
    D.28650 = (signed short) D.28649;
    D.28651 = D.28650 | -7424;
    D.28652 = (short unsigned int) D.28651;
    MEM[(guint16 *)code] = D.28652;
    code = code + 2;
    D.28653 = inst->sreg1;
    D.28654 = D.28653 << 28;
    D.28655 = inst->data.op[0].const_val;
    D.28656 = D.28655 << 16;
    D.28657 = (signed int) D.28656;
    D.28658 = D.28657 & 268369920;
    D.28659 = D.28654 | D.28658;
    D.28655 = inst->data.op[0].const_val;
    D.28660 = D.28655 >> 12;
    D.28661 = D.28660 << 8;
    D.28662 = (signed int) D.28661;
    D.28663 = D.28662 & 65535;
    D.28664 = D.28659 | D.28663;
    D.28665 = D.28664 | 36;
    D.28666 = (unsigned int) D.28665;
    MEM[(guint32 *)code] = D.28666;
    code = code + 4;
  }
  <D.28644>:
  i = 0;
  goto <D.25169>;
  <D.25168>:
  {
    struct ArgInfo * ainfo;

    D.28667 = &cinfo->args;
    i.103 = (long unsigned int) i;
    D.28669 = i.103 * 24;
    ainfo = D.28667 + D.28669;
    D.28670 = cfg->args;
    pos.104 = (long unsigned int) pos;
    D.28672 = pos.104 * 8;
    D.28673 = D.28670 + D.28672;
    inst = *D.28673;
    D.28674 = inst->opcode;
    if (D.28674 == 368) goto <D.28675>; else goto <D.28676>;
    <D.28675>:
    inst = inst->data.op[0].src;
    <D.28676>:
    D.28674 = inst->opcode;
    if (D.28674 == 366) goto <D.28677>; else goto <D.28678>;
    <D.28677>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 0) goto <D.28680>; else goto <D.28681>;
    <D.28680>:
    D.28682 = inst->dreg;
    D.28683 = D.28682 << 4;
    D.28684 = D.28683 | -1190920192;
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28687 = D.28684 | D.28686;
    D.28688 = (unsigned int) D.28687;
    MEM[(guint32 *)code] = D.28688;
    code = code + 4;
    goto <D.28689>;
    <D.28681>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 2) goto <D.28690>; else goto <D.28691>;
    <D.28690>:
    D.28682 = inst->dreg;
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    if (D.28682 != D.28686) goto <D.28692>; else goto <D.28693>;
    <D.28692>:
    D.28694 = ainfo->size;
    if (D.28694 == 4) goto <D.28695>; else goto <D.28696>;
    <D.28695>:
    D.28682 = inst->dreg;
    D.28683 = D.28682 << 4;
    D.28697 = D.28683 | -1287389184;
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28698 = D.28697 | D.28686;
    D.28699 = (unsigned int) D.28698;
    MEM[(guint32 *)code] = D.28699;
    code = code + 4;
    goto <D.28700>;
    <D.28696>:
    D.28682 = inst->dreg;
    D.28683 = D.28682 << 4;
    D.28701 = (signed short) D.28683;
    D.28702 = D.28701 | 10240;
    D.28685 = ainfo->reg;
    D.28703 = (signed short) D.28685;
    D.28704 = D.28702 | D.28703;
    D.28705 = (short unsigned int) D.28704;
    MEM[(guint16 *)code] = D.28705;
    code = code + 2;
    <D.28700>:
    <D.28693>:
    goto <D.28706>;
    <D.28691>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 1) goto <D.28707>; else goto <D.28708>;
    <D.28707>:
    MEM[(guint32 *)code] = 3104047327;
    code = code + 4;
    D.28709 = (signed int) alloc_size;
    D.28710 = D.28709 & 65535;
    D.28711 = D.28710 | -1478819840;
    D.28712 = (unsigned int) D.28711;
    MEM[(guint32 *)code] = D.28712;
    code = code + 4;
    D.28682 = inst->dreg;
    D.28683 = D.28682 << 4;
    D.28701 = (signed short) D.28683;
    D.28713 = D.28701 | -7424;
    D.28714 = (short unsigned int) D.28713;
    MEM[(guint16 *)code] = D.28714;
    code = code + 2;
    D.28715 = ainfo->offset;
    D.28716 = D.28715 << 16;
    D.28717 = D.28716 & 268369920;
    D.28718 = D.28717 | -805306368;
    D.28715 = ainfo->offset;
    D.28719 = D.28715 >> 12;
    D.28720 = D.28719 << 8;
    D.28721 = D.28720 & 65535;
    D.28722 = D.28718 | D.28721;
    D.28723 = D.28722 | 4;
    D.28724 = (unsigned int) D.28723;
    MEM[(guint32 *)code] = D.28724;
    code = code + 4;
    goto <D.28725>;
    <D.28708>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5189);
    <D.28725>:
    <D.28706>:
    <D.28689>:
    D.28726 = cfg->verbose_level;
    if (D.28726 > 2) goto <D.28727>; else goto <D.28728>;
    <D.28727>:
    D.28682 = inst->dreg;
    D.28729 = mono_arch_regname (D.28682);
    monoeg_g_print ("Argument %d assigned to register %s\n", pos, D.28729);
    <D.28728>:
    goto <D.28730>;
    <D.28678>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 0) goto <D.28731>; else goto <D.28732>;
    <D.28731>:
    D.28685 = ainfo->reg;
    D.28733 = D.28685 + 254;
    if (D.28733 > 4) goto <D.28734>; else goto <D.28735>;
    <D.28734>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5197);
    <D.28735>:
    D.28694 = ainfo->size;
    switch (D.28694) <default: <D.28756>, case 1: <D.25156>, case 2: <D.25158>, case 4: <D.25159>, case 8: <D.25160>>
    <D.25156>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28736 = D.28686 << 20;
    D.28737 = D.28736 | 1107296256;
    D.28653 = inst->sreg1;
    D.28738 = D.28653 << 12;
    D.28739 = D.28737 | D.28738;
    D.28655 = inst->data.op[0].const_val;
    D.28740 = (signed int) D.28655;
    D.28741 = D.28740 & 4095;
    D.28742 = D.28739 | D.28741;
    D.28743 = (unsigned int) D.28742;
    MEM[(guint32 *)code] = D.28743;
    code = code + 4;
    goto <D.25157>;
    <D.25158>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28736 = D.28686 << 20;
    D.28744 = D.28736 | 1073741824;
    D.28653 = inst->sreg1;
    D.28738 = D.28653 << 12;
    D.28745 = D.28744 | D.28738;
    D.28655 = inst->data.op[0].const_val;
    D.28740 = (signed int) D.28655;
    D.28741 = D.28740 & 4095;
    D.28746 = D.28745 | D.28741;
    D.28747 = (unsigned int) D.28746;
    MEM[(guint32 *)code] = D.28747;
    code = code + 4;
    goto <D.25157>;
    <D.25159>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28736 = D.28686 << 20;
    D.28748 = D.28736 | 1342177280;
    D.28653 = inst->sreg1;
    D.28738 = D.28653 << 12;
    D.28749 = D.28748 | D.28738;
    D.28655 = inst->data.op[0].const_val;
    D.28740 = (signed int) D.28655;
    D.28741 = D.28740 & 4095;
    D.28750 = D.28749 | D.28741;
    D.28751 = (unsigned int) D.28750;
    MEM[(guint32 *)code] = D.28751;
    code = code + 4;
    goto <D.25157>;
    <D.25160>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28752 = D.28686 << 4;
    D.28753 = (signed short) D.28752;
    D.28754 = D.28753 | -7424;
    D.28755 = (short unsigned int) D.28754;
    MEM[(guint16 *)code] = D.28755;
    code = code + 2;
    D.28653 = inst->sreg1;
    D.28654 = D.28653 << 28;
    D.28655 = inst->data.op[0].const_val;
    D.28656 = D.28655 << 16;
    D.28657 = (signed int) D.28656;
    D.28658 = D.28657 & 268369920;
    D.28659 = D.28654 | D.28658;
    D.28655 = inst->data.op[0].const_val;
    D.28660 = D.28655 >> 12;
    D.28661 = D.28660 << 8;
    D.28662 = (signed int) D.28661;
    D.28663 = D.28662 & 65535;
    D.28664 = D.28659 | D.28663;
    D.28665 = D.28664 | 36;
    D.28666 = (unsigned int) D.28665;
    MEM[(guint32 *)code] = D.28666;
    code = code + 4;
    goto <D.25157>;
    <D.28756>:
    <D.25157>:
    goto <D.28757>;
    <D.28732>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 1) goto <D.28758>; else goto <D.28759>;
    <D.28758>:
    goto <D.28760>;
    <D.28759>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 2) goto <D.28761>; else goto <D.28762>;
    <D.28761>:
    D.28694 = ainfo->size;
    if (D.28694 == 8) goto <D.28763>; else goto <D.28764>;
    <D.28763>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28736 = D.28686 << 20;
    D.28765 = D.28736 | 1610612736;
    D.28653 = inst->sreg1;
    D.28738 = D.28653 << 12;
    D.28766 = D.28765 | D.28738;
    D.28655 = inst->data.op[0].const_val;
    D.28740 = (signed int) D.28655;
    D.28741 = D.28740 & 4095;
    D.28767 = D.28766 | D.28741;
    D.28768 = (unsigned int) D.28767;
    MEM[(guint32 *)code] = D.28768;
    code = code + 4;
    goto <D.28769>;
    <D.28764>:
    D.28694 = ainfo->size;
    if (D.28694 == 4) goto <D.28770>; else goto <D.28771>;
    <D.28770>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28736 = D.28686 << 20;
    D.28772 = D.28736 | 1879048192;
    D.28653 = inst->sreg1;
    D.28738 = D.28653 << 12;
    D.28773 = D.28772 | D.28738;
    D.28655 = inst->data.op[0].const_val;
    D.28740 = (signed int) D.28655;
    D.28741 = D.28740 & 4095;
    D.28774 = D.28773 | D.28741;
    D.28775 = (unsigned int) D.28774;
    MEM[(guint32 *)code] = D.28775;
    code = code + 4;
    goto <D.28776>;
    <D.28771>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5219);
    <D.28776>:
    <D.28769>:
    goto <D.28777>;
    <D.28762>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 4) goto <D.28778>; else goto <D.28779>;
    <D.28778>:
    {
      int doffset;
      int reg;

      D.28655 = inst->data.op[0].const_val;
      doffset = (int) D.28655;
      D.28685 = ainfo->reg;
      if (D.28685 != 15) goto <D.28780>; else goto <D.28781>;
      <D.28780>:
      D.28685 = ainfo->reg;
      reg = (int) D.28685;
      goto <D.28782>;
      <D.28781>:
      reg = 0;
      MEM[(guint32 *)code] = 3104047327;
      code = code + 4;
      D.28709 = (signed int) alloc_size;
      D.28710 = D.28709 & 65535;
      D.28711 = D.28710 | -1478819840;
      D.28712 = (unsigned int) D.28711;
      MEM[(guint32 *)code] = D.28712;
      code = code + 4;
      <D.28782>:
      D.28560 = BIT_FIELD_REF <*method, 64, 256>;
      D.28784 = D.28560 & 4467570830351532032;
      if (D.28784 == 864691128455135232) goto <D.28785>; else goto <D.28786>;
      <D.28785>:
      D.28787 = inst->data.op[1].vtype;
      D.28788 = mono_class_from_mono_type (D.28787);
      D.28789 = mono_class_native_size (D.28788, 0B);
      iftmp.105 = (guint32) D.28789;
      goto <D.28790>;
      <D.28786>:
      iftmp.105 = ainfo->size;
      <D.28790>:
      size = iftmp.105;
      switch (size) <default: <D.28841>, case 1: <D.25163>, case 2: <D.25165>, case 4: <D.25166>, case 8: <D.25167>>
      <D.25163>:
      D.28685 = ainfo->reg;
      if (D.28685 == 15) goto <D.28791>; else goto <D.28792>;
      <D.28791>:
      D.28793 = reg << 20;
      D.28794 = D.28793 | 1124126720;
      D.28715 = ainfo->offset;
      D.28795 = D.28715 + 7;
      D.28796 = D.28795 & 4095;
      D.28797 = D.28794 | D.28796;
      D.28798 = (unsigned int) D.28797;
      MEM[(guint32 *)code] = D.28798;
      code = code + 4;
      <D.28792>:
      D.28793 = reg << 20;
      D.28799 = D.28793 | 1107296256;
      D.28653 = inst->sreg1;
      D.28738 = D.28653 << 12;
      D.28800 = D.28799 | D.28738;
      D.28801 = doffset & 4095;
      D.28802 = D.28800 | D.28801;
      D.28803 = (unsigned int) D.28802;
      MEM[(guint32 *)code] = D.28803;
      code = code + 4;
      goto <D.25164>;
      <D.25165>:
      D.28685 = ainfo->reg;
      if (D.28685 == 15) goto <D.28804>; else goto <D.28805>;
      <D.28804>:
      D.28793 = reg << 20;
      D.28806 = D.28793 | 1208012800;
      D.28715 = ainfo->offset;
      D.28807 = D.28715 + 6;
      D.28808 = D.28807 & 4095;
      D.28809 = D.28806 | D.28808;
      D.28810 = (unsigned int) D.28809;
      MEM[(guint32 *)code] = D.28810;
      code = code + 4;
      <D.28805>:
      D.28793 = reg << 20;
      D.28811 = D.28793 | 1073741824;
      D.28653 = inst->sreg1;
      D.28738 = D.28653 << 12;
      D.28812 = D.28811 | D.28738;
      D.28801 = doffset & 4095;
      D.28813 = D.28812 | D.28801;
      D.28814 = (unsigned int) D.28813;
      MEM[(guint32 *)code] = D.28814;
      code = code + 4;
      goto <D.25164>;
      <D.25166>:
      D.28685 = ainfo->reg;
      if (D.28685 == 15) goto <D.28815>; else goto <D.28816>;
      <D.28815>:
      D.28793 = reg << 20;
      D.28817 = D.28793 | 1476448256;
      D.28715 = ainfo->offset;
      D.28818 = D.28715 + 4;
      D.28819 = D.28818 & 4095;
      D.28820 = D.28817 | D.28819;
      D.28821 = (unsigned int) D.28820;
      MEM[(guint32 *)code] = D.28821;
      code = code + 4;
      <D.28816>:
      D.28793 = reg << 20;
      D.28822 = D.28793 | 1342177280;
      D.28653 = inst->sreg1;
      D.28738 = D.28653 << 12;
      D.28823 = D.28822 | D.28738;
      D.28801 = doffset & 4095;
      D.28824 = D.28823 | D.28801;
      D.28825 = (unsigned int) D.28824;
      MEM[(guint32 *)code] = D.28825;
      code = code + 4;
      goto <D.25164>;
      <D.25167>:
      D.28685 = ainfo->reg;
      if (D.28685 == 15) goto <D.28826>; else goto <D.28827>;
      <D.28826>:
      D.28828 = reg << 4;
      D.28829 = (signed short) D.28828;
      D.28830 = D.28829 | -7424;
      D.28831 = (short unsigned int) D.28830;
      MEM[(guint16 *)code] = D.28831;
      code = code + 2;
      D.28715 = ainfo->offset;
      D.28716 = D.28715 << 16;
      D.28717 = D.28716 & 268369920;
      D.28718 = D.28717 | -805306368;
      D.28715 = ainfo->offset;
      D.28719 = D.28715 >> 12;
      D.28720 = D.28719 << 8;
      D.28721 = D.28720 & 65535;
      D.28722 = D.28718 | D.28721;
      D.28723 = D.28722 | 4;
      D.28724 = (unsigned int) D.28723;
      MEM[(guint32 *)code] = D.28724;
      code = code + 4;
      <D.28827>:
      D.28828 = reg << 4;
      D.28829 = (signed short) D.28828;
      D.28830 = D.28829 | -7424;
      D.28831 = (short unsigned int) D.28830;
      MEM[(guint16 *)code] = D.28831;
      code = code + 2;
      D.28653 = inst->sreg1;
      D.28654 = D.28653 << 28;
      D.28832 = doffset << 16;
      D.28833 = D.28832 & 268369920;
      D.28834 = D.28654 | D.28833;
      D.28835 = doffset >> 12;
      D.28836 = D.28835 << 8;
      D.28837 = D.28836 & 65535;
      D.28838 = D.28834 | D.28837;
      D.28839 = D.28838 | 36;
      D.28840 = (unsigned int) D.28839;
      MEM[(guint32 *)code] = D.28840;
      code = code + 4;
      goto <D.25164>;
      <D.28841>:
      <D.25164>:
    }
    goto <D.28842>;
    <D.28779>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 6) goto <D.28843>; else goto <D.28844>;
    <D.28843>:
    D.28685 = ainfo->reg;
    D.28686 = (int) D.28685;
    D.28752 = D.28686 << 4;
    D.28753 = (signed short) D.28752;
    D.28754 = D.28753 | -7424;
    D.28755 = (short unsigned int) D.28754;
    MEM[(guint16 *)code] = D.28755;
    code = code + 2;
    D.28653 = inst->sreg1;
    D.28654 = D.28653 << 28;
    D.28655 = inst->data.op[0].const_val;
    D.28656 = D.28655 << 16;
    D.28657 = (signed int) D.28656;
    D.28658 = D.28657 & 268369920;
    D.28659 = D.28654 | D.28658;
    D.28655 = inst->data.op[0].const_val;
    D.28660 = D.28655 >> 12;
    D.28661 = D.28660 << 8;
    D.28662 = (signed int) D.28661;
    D.28663 = D.28662 & 65535;
    D.28664 = D.28659 | D.28663;
    D.28665 = D.28664 | 36;
    D.28666 = (unsigned int) D.28665;
    MEM[(guint32 *)code] = D.28666;
    code = code + 4;
    goto <D.28845>;
    <D.28844>:
    D.28679 = ainfo->regtype;
    if (D.28679 == 7) goto <D.28846>; else goto <D.28847>;
    <D.28846>:
    goto <D.28848>;
    <D.28847>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 5261);
    <D.28848>:
    <D.28845>:
    <D.28842>:
    <D.28777>:
    <D.28760>:
    <D.28757>:
    <D.28730>:
    pos = pos + 1;
  }
  i = i + 1;
  <D.25169>:
  D.28849 = sig->param_count;
  D.28850 = (int) D.28849;
  D.28851 = sig->hasthis;
  D.28852 = (int) D.28851;
  D.28853 = D.28850 + D.28852;
  D.28854 = (long int) D.28853;
  if (D.28854 > i) goto <D.25168>; else goto <D.25170>;
  <D.25170>:
  D.28560 = BIT_FIELD_REF <*method, 64, 256>;
  D.28561 = D.28560 & 36028797018963968;
  if (D.28561 != 0) goto <D.28855>; else goto <D.28856>;
  <D.28855>:
  D.28590 = (unsigned int) alloc_size;
  D.28857 = D.28590 + 4294966952;
  lmfOffset = (int) D.28857;
  D.28601 = cfg->frame_reg;
  D.28858 = D.28601 | 3104047312;
  MEM[(guint32 *)code] = D.28858;
  code = code + 4;
  D.28859 = lmfOffset & 65535;
  D.28860 = D.28859 | -1478819840;
  D.28861 = (unsigned int) D.28860;
  MEM[(guint32 *)code] = D.28861;
  code = code + 4;
  MEM[(guint16 *)code] = 60198;
  code = code + 2;
  MEM[(guint32 *)code] = 3492282404;
  code = code + 4;
  lmf_addr_tls_offset.106 = lmf_addr_tls_offset;
  if (lmf_addr_tls_offset.106 == -1) goto <D.28863>; else goto <D.28864>;
  <D.28863>:
  MEM[(guint16 *)code] = 3552;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28570 = (int) D.28569;
  mono_add_patch_info (cfg, D.28570, 7, "mono_get_lmf_addr");
  MEM[(guint64 *)code] = 0;
  code = code + 8;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3758358532;
  code = code + 4;
  MEM[(guint16 *)code] = 3553;
  code = code + 2;
  goto <D.28865>;
  <D.28864>:
  MEM[(guint32 *)code] = 2991521808;
  code = code + 4;
  MEM[(guint16 *)code] = 60177;
  code = code + 2;
  MEM[(guint32 *)code] = 2097165;
  code = code + 4;
  MEM[(guint32 *)code] = 2991521809;
  code = code + 4;
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  lmf_addr_tls_offset.106 = lmf_addr_tls_offset;
  D.28866 = lmf_addr_tls_offset.106 << 16;
  D.28867 = D.28866 & 268369920;
  D.28868 = D.28867 | 268435456;
  lmf_addr_tls_offset.106 = lmf_addr_tls_offset;
  D.28869 = lmf_addr_tls_offset.106 >> 12;
  D.28870 = D.28869 << 8;
  D.28871 = D.28870 & 65535;
  D.28872 = D.28868 | D.28871;
  D.28873 = D.28872 | 4;
  D.28874 = (unsigned int) D.28873;
  MEM[(guint32 *)code] = D.28874;
  code = code + 4;
  <D.28865>:
  MEM[(guint16 *)code] = 58144;
  code = code + 2;
  MEM[(guint32 *)code] = 3490185252;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 536870916;
  code = code + 4;
  MEM[(guint16 *)code] = 58320;
  code = code + 2;
  MEM[(guint32 *)code] = 536870948;
  code = code + 4;
  MEM[(guint16 *)code] = 58112;
  code = code + 2;
  MEM[(guint32 *)code] = 3489660964;
  code = code + 4;
  MEM[(guint16 *)code] = 3344;
  code = code + 2;
  MEM[(guint32 *)code] = 2817785862;
  code = code + 4;
  method.107 = (long unsigned int) method;
  MEM[(guint64 *)code] = method.107;
  code = code + 8;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 268697604;
  code = code + 4;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3490709540;
  code = code + 4;
  MEM[(guint16 *)code] = 58352;
  code = code + 2;
  MEM[(guint32 *)code] = 3491233828;
  code = code + 4;
  MEM[(guint16 *)code] = 3344;
  code = code + 2;
  MEM[(guint16 *)code] = 58128;
  code = code + 2;
  MEM[(guint32 *)code] = 3491758116;
  code = code + 4;
  MEM[(guint16 *)code] = 60204;
  code = code + 2;
  MEM[(guint32 *)code] = 3496476708;
  code = code + 4;
  i = 0;
  goto <D.25172>;
  <D.25171>:
  D.28876 = i << 20;
  D.28877 = (unsigned int) D.28876;
  i.108 = (sizetype) i;
  D.28879 = i.108 * 8;
  D.28880 = 216B + D.28879;
  D.28881 = (long int) D.28880;
  D.28882 = (unsigned int) D.28881;
  D.28883 = D.28882 & 4095;
  D.28884 = D.28877 | D.28883;
  D.28885 = D.28884 | 1610665984;
  MEM[(guint32 *)code] = D.28885;
  code = code + 4;
  i = i + 1;
  <D.25172>:
  if (i <= 15) goto <D.25171>; else goto <D.25173>;
  <D.25173>:
  MEM[(guint16 *)code] = 60198;
  code = code + 2;
  MEM[(guint32 *)code] = 3492282372;
  code = code + 4;
  <D.28856>:
  if (tracing != 0) goto <D.28886>; else goto <D.28887>;
  <D.28886>:
  code = mono_arch_instrument_prolog (cfg, enter_method, code, 1);
  <D.28887>:
  code.101 = (long int) code;
  D.28567 = cfg->native_code;
  D.28568 = (long int) D.28567;
  D.28569 = code.101 - D.28568;
  D.28888 = (unsigned int) D.28569;
  cfg->code_len = D.28888;
  D.28889 = cfg->code_len;
  D.28554 = cfg->code_size;
  D.28890 = D.28889 >= D.28554;
  D.28891 = (long int) D.28890;
  D.28892 = __builtin_expect (D.28891, 0);
  if (D.28892 != 0) goto <D.28893>; else goto <D.28894>;
  <D.28893>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5363, "cfg->code_len < cfg->code_size");
  <D.28894>:
  D.28895 = code;
  return D.28895;
}


enter_method (struct MonoMethod * method, struct RegParm * rParm, char * sp)
{
  void * ip.109;
  unsigned int D.28901;
  long int D.28904;
  void * D.28905;
  long unsigned int D.28906;
  long unsigned int D.28907;
  long int D.28910;
  struct MonoClass * D.28911;
  unsigned char D.28912;
  int D.28913;
  long unsigned int this.110;
  long unsigned int D.28917;
  long unsigned int D.28918;
  struct MonoVTable * D.28922;
  struct MonoClass * D.28925;
  char * D.28928;
  const char * D.28930;
  const char * D.28931;
  <unnamed type> D.28934;
  const char * D.28935;
  int D.28936;
  <unnamed type> D.28937;
  struct MonoType * D.28938;
  unsigned char D.28939;
  int D.28940;
  int D.28941;
  gint64 * D.28942;
  unsigned int D.28943;
  int D.28944;
  gdouble * D.28945;
  int D.28946;
  sizetype D.28947;
  char * D.28948;
  unsigned int D.28951;
  long unsigned int D.28952;
  long unsigned int D.28953;
  short unsigned int D.28955;
  unsigned int D.28956;
  int D.28957;
  char * D.28961;
  int D.28962;
  short unsigned int D.28966;
  int D.28967;
  int i;
  int oParm;
  int iParm;
  struct MonoClass * class;
  struct MonoObject * obj;
  struct MonoMethodSignature * sig;
  char * fname;
  guint64 ip;
  struct CallInfo * cinfo;
  struct ArgInfo * ainfo;
  void * curParm;

  oParm = 0;
  iParm = 0;
  fname = mono_method_full_name (method, 1);
  indent (1);
  printf ("ENTER: %s ", fname);
  monoeg_g_free (fname);
  ip = MEM[(guint64 *)sp + 112B];
  ip.109 = (void *) ip;
  printf ("ip: %p sp: %p - ", ip.109, sp);
  if (rParm == 0B) goto <D.28899>; else goto <D.28900>;
  <D.28899>:
  return;
  <D.28900>:
  sig = mono_method_signature (method);
  cinfo = get_call_info (0B, 0B, sig);
  D.28901 = cinfo->struct_ret;
  if (D.28901 != 0) goto <D.28902>; else goto <D.28903>;
  <D.28902>:
  D.28904 = rParm->gr[0];
  D.28905 = (void *) D.28904;
  printf ("[STRUCTRET:%p], ", D.28905);
  iParm = 1;
  <D.28903>:
  D.28906 = BIT_FIELD_REF <*sig, 64, 64>;
  D.28907 = D.28906 & 512;
  if (D.28907 != 0) goto <D.28908>; else goto <D.28909>;
  <D.28908>:
  {
    void * * this;

    D.28910 = rParm->gr[iParm];
    this = (void * *) D.28910;
    obj = this;
    D.28911 = method->klass;
    D.28912 = D.28911->this_arg.type;
    D.28913 = (int) D.28912;
    switch (D.28913) <default: <D.24178>, case 14: <D.24177>, case 17: <D.24174>>
    <D.24174>:
    if (obj != 0B) goto <D.28914>; else goto <D.28915>;
    <D.28914>:
    {
      guint64 * value;

      this.110 = (long unsigned int) this;
      D.28917 = this.110 + 16;
      value = (guint64 *) D.28917;
      D.28918 = *value;
      printf ("this:[value:%p:%016lx], ", this, D.28918);
    }
    goto <D.28919>;
    <D.28915>:
    printf ("this:[NULL], ");
    <D.28919>:
    goto <D.24176>;
    <D.24177>:
    if (obj != 0B) goto <D.28920>; else goto <D.28921>;
    <D.28920>:
    D.28922 = obj->vtable;
    if (D.28922 != 0B) goto <D.28923>; else goto <D.28924>;
    <D.28923>:
    D.28922 = obj->vtable;
    class = D.28922->klass;
    D.28925 = mono_defaults.string_class;
    if (D.28925 == class) goto <D.28926>; else goto <D.28927>;
    <D.28926>:
    D.28928 = mono_string_to_utf8 (obj);
    printf ("this:[STRING:%p:%s], ", obj, D.28928);
    goto <D.28929>;
    <D.28927>:
    D.28930 = class->name_space;
    D.28931 = class->name;
    printf ("this:%p[%s.%s], ", obj, D.28930, D.28931);
    <D.28929>:
    goto <D.28932>;
    <D.28924>:
    printf ("vtable:[NULL], ");
    <D.28932>:
    goto <D.28933>;
    <D.28921>:
    printf ("this:[NULL], ");
    <D.28933>:
    goto <D.24176>;
    <D.24178>:
    D.28911 = method->klass;
    D.28912 = D.28911->this_arg.type;
    D.28934 = (<unnamed type>) D.28912;
    D.28935 = cvtMonoType (D.28934);
    printf ("this[%s]: %p, ", D.28935, this);
    <D.24176>:
    oParm = oParm + 1;
  }
  <D.28909>:
  i = 0;
  goto <D.24188>;
  <D.24187>:
  D.28936 = i + oParm;
  ainfo = &cinfo->args[D.28936];
  D.28937 = ainfo->regtype;
  switch (D.28937) <default: <D.24186>, case 0: <D.24179>, case 1: <D.24182>, case 2: <D.24181>, case 4: <D.24183>, case 6: <D.24185>>
  <D.24179>:
  D.28938 = sig->params[i];
  D.28939 = ainfo->reg;
  D.28940 = (int) D.28939;
  D.28941 = D.28940 + -2;
  D.28942 = &rParm->gr[D.28941];
  D.28943 = ainfo->size;
  D.28944 = (int) D.28943;
  decodeParm (D.28938, D.28942, D.28944);
  goto <D.24180>;
  <D.24181>:
  D.28938 = sig->params[i];
  D.28939 = ainfo->reg;
  D.28940 = (int) D.28939;
  D.28945 = &rParm->fp[D.28940];
  D.28943 = ainfo->size;
  D.28944 = (int) D.28943;
  decodeParm (D.28938, D.28945, D.28944);
  goto <D.24180>;
  <D.24182>:
  D.28938 = sig->params[i];
  D.28946 = ainfo->offset;
  D.28947 = (sizetype) D.28946;
  D.28948 = sp + D.28947;
  D.28943 = ainfo->size;
  D.28944 = (int) D.28943;
  decodeParm (D.28938, D.28948, D.28944);
  goto <D.24180>;
  <D.24183>:
  D.28939 = ainfo->reg;
  if (D.28939 != 15) goto <D.28949>; else goto <D.28950>;
  <D.28949>:
  {
    int offset;

    D.28943 = ainfo->size;
    D.28951 = 8 - D.28943;
    offset = (int) D.28951;
    D.28939 = ainfo->reg;
    D.28940 = (int) D.28939;
    D.28941 = D.28940 + -2;
    D.28942 = &rParm->gr[D.28941];
    D.28952 = (long unsigned int) offset;
    D.28953 = D.28952 * 8;
    curParm = D.28942 + D.28953;
  }
  goto <D.28954>;
  <D.28950>:
  D.28946 = ainfo->offset;
  D.28947 = (sizetype) D.28946;
  curParm = sp + D.28947;
  <D.28954>:
  D.28955 = ainfo->vtsize;
  D.28956 = (unsigned int) D.28955;
  D.28957 = retFitsInReg (D.28956);
  if (D.28957 != 0) goto <D.28958>; else goto <D.28959>;
  <D.28958>:
  D.28938 = sig->params[i];
  D.28943 = ainfo->size;
  D.28944 = (int) D.28943;
  decodeParm (D.28938, curParm, D.28944);
  goto <D.28960>;
  <D.28959>:
  D.28938 = sig->params[i];
  D.28961 = MEM[(char * *)curParm];
  D.28955 = ainfo->vtsize;
  D.28962 = (int) D.28955;
  decodeParm (D.28938, D.28961, D.28962);
  <D.28960>:
  goto <D.24180>;
  <D.24185>:
  D.28939 = ainfo->reg;
  if (D.28939 != 15) goto <D.28963>; else goto <D.28964>;
  <D.28963>:
  D.28939 = ainfo->reg;
  D.28940 = (int) D.28939;
  D.28941 = D.28940 + -2;
  curParm = &rParm->gr[D.28941];
  goto <D.28965>;
  <D.28964>:
  D.28946 = ainfo->offset;
  D.28947 = (sizetype) D.28946;
  curParm = sp + D.28947;
  <D.28965>:
  D.28938 = sig->params[i];
  D.28961 = MEM[(char * *)curParm];
  D.28955 = ainfo->vtsize;
  D.28962 = (int) D.28955;
  decodeParm (D.28938, D.28961, D.28962);
  goto <D.24180>;
  <D.24186>:
  printf ("???, ");
  <D.24180>:
  i = i + 1;
  <D.24188>:
  D.28966 = sig->param_count;
  D.28967 = (int) D.28966;
  if (D.28967 > i) goto <D.24187>; else goto <D.24189>;
  <D.24189>:
  printf ("\n");
  monoeg_g_free (cinfo);
}


indent (int diff)
{
  int indent_level.111;
  int D.28972;
  int v.112;
  int v;

  if (diff < 0) goto <D.28969>; else goto <D.28970>;
  <D.28969>:
  indent_level.111 = indent_level;
  D.28972 = indent_level.111 + diff;
  indent_level = D.28972;
  <D.28970>:
  v = indent_level;
  printf ("[%3d] ", v);
  goto <D.24072>;
  <D.24071>:
  printf (". ");
  <D.24072>:
  v.112 = v;
  v = v.112 + -1;
  if (v.112 > 0) goto <D.24071>; else goto <D.24073>;
  <D.24073>:
  if (diff > 0) goto <D.28974>; else goto <D.28975>;
  <D.28974>:
  indent_level.111 = indent_level;
  D.28972 = indent_level.111 + diff;
  indent_level = D.28972;
  <D.28975>:
}


cvtMonoType (MonoTypeEnum t)
{
  const char * D.28976;

  switch (t) <default: <D.24112>, case 0: <D.24077>, case 1: <D.24078>, case 2: <D.24079>, case 3: <D.24080>, case 4: <D.24081>, case 5: <D.24082>, case 6: <D.24083>, case 7: <D.24084>, case 8: <D.24085>, case 9: <D.24086>, case 10: <D.24087>, case 11: <D.24088>, case 12: <D.24089>, case 13: <D.24090>, case 14: <D.24091>, case 15: <D.24092>, case 16: <D.24093>, case 17: <D.24094>, case 18: <D.24095>, case 19: <D.24096>, case 20: <D.24097>, case 21: <D.24098>, case 22: <D.24099>, case 24: <D.24100>, case 25: <D.24101>, case 27: <D.24102>, case 28: <D.24103>, case 29: <D.24104>, case 30: <D.24105>, case 31: <D.24106>, case 32: <D.24107>, case 33: <D.24108>, case 64: <D.24109>, case 65: <D.24110>, case 69: <D.24111>>
  <D.24077>:
  D.28976 = "MONO_TYPE_END";
  return D.28976;
  <D.24078>:
  D.28976 = "MONO_TYPE_VOID";
  return D.28976;
  <D.24079>:
  D.28976 = "MONO_TYPE_BOOLEAN";
  return D.28976;
  <D.24080>:
  D.28976 = "MONO_TYPE_CHAR";
  return D.28976;
  <D.24081>:
  D.28976 = "MONO_TYPE_I1";
  return D.28976;
  <D.24082>:
  D.28976 = "MONO_TYPE_U1";
  return D.28976;
  <D.24083>:
  D.28976 = "MONO_TYPE_I2";
  return D.28976;
  <D.24084>:
  D.28976 = "MONO_TYPE_U2";
  return D.28976;
  <D.24085>:
  D.28976 = "MONO_TYPE_I4";
  return D.28976;
  <D.24086>:
  D.28976 = "MONO_TYPE_U4";
  return D.28976;
  <D.24087>:
  D.28976 = "MONO_TYPE_I8";
  return D.28976;
  <D.24088>:
  D.28976 = "MONO_TYPE_U8";
  return D.28976;
  <D.24089>:
  D.28976 = "MONO_TYPE_R4";
  return D.28976;
  <D.24090>:
  D.28976 = "MONO_TYPE_R8";
  return D.28976;
  <D.24091>:
  D.28976 = "MONO_TYPE_STRING";
  return D.28976;
  <D.24092>:
  D.28976 = "MONO_TYPE_PTR";
  return D.28976;
  <D.24093>:
  D.28976 = "MONO_TYPE_BYREF";
  return D.28976;
  <D.24094>:
  D.28976 = "MONO_TYPE_VALUETYPE";
  return D.28976;
  <D.24095>:
  D.28976 = "MONO_TYPE_CLASS";
  return D.28976;
  <D.24096>:
  D.28976 = "MONO_TYPE_VAR";
  return D.28976;
  <D.24097>:
  D.28976 = "MONO_TYPE_ARRAY";
  return D.28976;
  <D.24098>:
  D.28976 = "MONO_TYPE_GENERICINST";
  return D.28976;
  <D.24099>:
  D.28976 = "MONO_TYPE_TYPEDBYREF";
  return D.28976;
  <D.24100>:
  D.28976 = "MONO_TYPE_I";
  return D.28976;
  <D.24101>:
  D.28976 = "MONO_TYPE_U";
  return D.28976;
  <D.24102>:
  D.28976 = "MONO_TYPE_FNPTR";
  return D.28976;
  <D.24103>:
  D.28976 = "MONO_TYPE_OBJECT";
  return D.28976;
  <D.24104>:
  D.28976 = "MONO_TYPE_SZARRAY";
  return D.28976;
  <D.24105>:
  D.28976 = "MONO_TYPE_MVAR";
  return D.28976;
  <D.24106>:
  D.28976 = "MONO_TYPE_CMOD_REQD";
  return D.28976;
  <D.24107>:
  D.28976 = "MONO_TYPE_CMOD_OPT";
  return D.28976;
  <D.24108>:
  D.28976 = "MONO_TYPE_INTERNAL";
  return D.28976;
  <D.24109>:
  D.28976 = "MONO_TYPE_MODIFIER";
  return D.28976;
  <D.24110>:
  D.28976 = "MONO_TYPE_SENTINEL";
  return D.28976;
  <D.24111>:
  D.28976 = "MONO_TYPE_PINNED";
  return D.28976;
  <D.24112>:
  D.28976 = "unknown";
  return D.28976;
}


retFitsInReg (guint32 size)
{
  gboolean D.28978;

  switch (size) <default: <D.24058>, case 0: <D.24053>, case 1: <D.24054>, case 2: <D.24055>, case 4: <D.24056>, case 8: <D.24057>>
  <D.24053>:
  <D.24054>:
  <D.24055>:
  <D.24056>:
  <D.24057>:
  D.28978 = 1;
  return D.28978;
  <D.24058>:
  D.28978 = 0;
  return D.28978;
}


decodeParm (struct MonoType * type, void * curParm, int size)
{
  long unsigned int D.28980;
  long unsigned int D.28981;
  char * D.28984;
  struct MonoType * D.28986;
  unsigned char D.28987;
  int * D.28988;
  long int D.28989;
  int D.28990;
  long unsigned int D.28991;
  struct MonoVTable * D.28994;
  struct MonoClass * D.28995;
  struct MonoClass * D.28996;
  _Bool D.28997;
  long int D.28998;
  long int D.28999;
  char * D.29002;
  struct MonoVTable * D.29007;
  char * D.29011;
  struct MonoClass * D.29013;
  gint32 * D.29016;
  int D.29017;
  const char * D.29019;
  const char * D.29020;
  void * * D.29021;
  float D.29022;
  double D.29023;
  double D.29024;
  struct MonoClass * D.29025;
  long unsigned int D.29026;
  long unsigned int D.29027;
  struct MonoType * D.29030;
  unsigned char D.29031;
  unsigned int D.29032;
  unsigned int D.29035;
  struct MonoClassField * D.29038;
  struct MonoType * D.29039;
  unsigned char D.29040;
  sizetype D.29049;
  guint8 * D.29050;
  unsigned char D.29051;
  int D.29052;
  sizetype D.29053;
  guint8 * D.29054;
  unsigned char D.29055;
  int D.29056;
  const char * D.29057;
  guint32 simpleType;
  void enum_parmtype = <<< error >>>;

  D.28980 = BIT_FIELD_REF <*type, 64, 64>;
  D.28981 = D.28980 & 8589934592;
  if (D.28981 != 0) goto <D.28982>; else goto <D.28983>;
  <D.28982>:
  D.28984 = MEM[(char * *)curParm];
  printf ("[BYREF:%p], ", D.28984);
  goto <D.28985>;
  <D.28983>:
  D.28986 = mono_type_get_underlying_type (type);
  D.28987 = D.28986->type;
  simpleType = (guint32) D.28987;
  enum_parmtype:
  switch (simpleType) <default: <D.24156>, case 2: <D.24123>, case 3: <D.24124>, case 4: <D.24125>, case 5: <D.24128>, case 6: <D.24126>, case 7: <D.24129>, case 8: <D.24127>, case 9: <D.24130>, case 10: <D.24142>, case 11: <D.24131>, case 12: <D.24143>, case 13: <D.24144>, case 14: <D.24132>, case 15: <D.24138>, case 17: <D.24145>, case 18: <D.24134>, case 20: <D.24140>, case 22: <D.24151>, case 24: <D.24120>, case 25: <D.24122>, case 27: <D.24139>, case 28: <D.24135>, case 29: <D.24141>>
  <D.24120>:
  D.28988 = MEM[(int * *)curParm];
  printf ("[INTPTR:%p], ", D.28988);
  goto <D.24121>;
  <D.24122>:
  D.28988 = MEM[(int * *)curParm];
  printf ("[UINTPTR:%p], ", D.28988);
  goto <D.24121>;
  <D.24123>:
  D.28989 = MEM[(gint64 *)curParm];
  printf ("[BOOL:%ld], ", D.28989);
  goto <D.24121>;
  <D.24124>:
  D.28990 = MEM[(int *)curParm];
  printf ("[CHAR:%c], ", D.28990);
  goto <D.24121>;
  <D.24125>:
  D.28989 = MEM[(gint64 *)curParm];
  printf ("[INT1:%ld], ", D.28989);
  goto <D.24121>;
  <D.24126>:
  D.28989 = MEM[(gint64 *)curParm];
  printf ("[INT2:%ld], ", D.28989);
  goto <D.24121>;
  <D.24127>:
  D.28989 = MEM[(gint64 *)curParm];
  printf ("[INT4:%ld], ", D.28989);
  goto <D.24121>;
  <D.24128>:
  D.28991 = MEM[(guint64 *)curParm];
  printf ("[UINT1:%lu], ", D.28991);
  goto <D.24121>;
  <D.24129>:
  D.28991 = MEM[(guint64 *)curParm];
  printf ("[UINT2:%lu], ", D.28991);
  goto <D.24121>;
  <D.24130>:
  D.28991 = MEM[(guint64 *)curParm];
  printf ("[UINT4:%lu], ", D.28991);
  goto <D.24121>;
  <D.24131>:
  D.28991 = MEM[(guint64 *)curParm];
  printf ("[UINT8:%lu], ", D.28991);
  goto <D.24121>;
  <D.24132>:
  {
    struct MonoString * s;

    s = MEM[(struct MonoString * *)curParm];
    if (s != 0B) goto <D.28992>; else goto <D.28993>;
    <D.28992>:
    D.28994 = MEM[(struct MonoObject *)s].vtable;
    D.28995 = D.28994->klass;
    D.28996 = mono_defaults.string_class;
    D.28997 = D.28995 != D.28996;
    D.28998 = (long int) D.28997;
    D.28999 = __builtin_expect (D.28998, 0);
    if (D.28999 != 0) goto <D.29000>; else goto <D.29001>;
    <D.29000>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 785, "((MonoObject *) s)->vtable->klass == mono_defaults.string_class");
    <D.29001>:
    D.29002 = mono_string_to_utf8 (s);
    printf ("[STRING:%p:%s], ", s, D.29002);
    goto <D.29003>;
    <D.28993>:
    printf ("[STRING:null], ");
    <D.29003>:
    goto <D.24121>;
  }
  <D.24134>:
  <D.24135>:
  {
    struct MonoObject * obj;
    struct MonoClass * class;

    obj = MEM[(struct MonoObject * *)curParm];
    if (obj != 0B) goto <D.29006>; else goto <D.29004>;
    <D.29006>:
    D.29007 = obj->vtable;
    if (D.29007 != 0B) goto <D.29008>; else goto <D.29004>;
    <D.29008>:
    printf ("[CLASS/OBJ:");
    D.29007 = obj->vtable;
    class = D.29007->klass;
    printf ("%p [%p] ", obj, curParm);
    D.28996 = mono_defaults.string_class;
    if (D.28996 == class) goto <D.29009>; else goto <D.29010>;
    <D.29009>:
    D.29011 = mono_string_to_utf8 (obj);
    printf ("[STRING:%p:%s]", obj, D.29011);
    goto <D.29012>;
    <D.29010>:
    D.29013 = mono_defaults.int32_class;
    if (D.29013 == class) goto <D.29014>; else goto <D.29015>;
    <D.29014>:
    D.29016 = obj + 16;
    D.29017 = *D.29016;
    printf ("[INT32:%p:%d]", obj, D.29017);
    goto <D.29018>;
    <D.29015>:
    D.29019 = class->name_space;
    D.29020 = class->name;
    printf ("[%s.%s:%p]", D.29019, D.29020, obj);
    <D.29018>:
    <D.29012>:
    printf ("], ");
    goto <D.29005>;
    <D.29004>:
    printf ("[OBJECT:null], ");
    <D.29005>:
    goto <D.24121>;
  }
  <D.24138>:
  D.29021 = MEM[(void * * *)curParm];
  printf ("[PTR:%p], ", D.29021);
  goto <D.24121>;
  <D.24139>:
  D.29021 = MEM[(void * * *)curParm];
  printf ("[FNPTR:%p], ", D.29021);
  goto <D.24121>;
  <D.24140>:
  D.29021 = MEM[(void * * *)curParm];
  printf ("[ARRAY:%p], ", D.29021);
  goto <D.24121>;
  <D.24141>:
  D.29021 = MEM[(void * * *)curParm];
  printf ("[SZARRAY:%p], ", D.29021);
  goto <D.24121>;
  <D.24142>:
  D.28989 = MEM[(gint64 *)curParm];
  printf ("[INT8:%ld], ", D.28989);
  goto <D.24121>;
  <D.24143>:
  D.29022 = MEM[(float *)curParm];
  D.29023 = (double) D.29022;
  printf ("[FLOAT4:%g], ", D.29023);
  goto <D.24121>;
  <D.24144>:
  D.29024 = MEM[(double *)curParm];
  printf ("[FLOAT8:%g], ", D.29024);
  goto <D.24121>;
  <D.24145>:
  {
    int i;
    struct MonoMarshalType * info;

    D.29025 = type->data.klass;
    D.29026 = BIT_FIELD_REF <*D.29025, 64, 256>;
    D.29027 = D.29026 & 576460752303423488;
    if (D.29027 != 0) goto <D.29028>; else goto <D.29029>;
    <D.29028>:
    D.29025 = type->data.klass;
    D.29030 = mono_class_enum_basetype (D.29025);
    D.29031 = D.29030->type;
    simpleType = (guint32) D.29031;
    printf ("{VALUETYPE} - ");
    goto enum_parmtype;
    <D.29029>:
    D.29025 = type->data.klass;
    info = mono_marshal_load_type_info (D.29025);
    D.29032 = info->native_size;
    if (D.29032 == 4) goto <D.29033>; else goto <D.29034>;
    <D.29033>:
    D.29035 = info->num_fields;
    if (D.29035 == 1) goto <D.29036>; else goto <D.29037>;
    <D.29036>:
    D.29038 = info->fields[0].field;
    D.29039 = D.29038->type;
    D.29040 = D.29039->type;
    if (D.29040 == 12) goto <D.29041>; else goto <D.29042>;
    <D.29041>:
    D.29022 = MEM[(float *)curParm];
    D.29023 = (double) D.29022;
    printf ("[FLOAT4:%f], ", D.29023);
    goto <D.24121>;
    <D.29042>:
    <D.29037>:
    <D.29034>:
    D.29032 = info->native_size;
    if (D.29032 == 8) goto <D.29043>; else goto <D.29044>;
    <D.29043>:
    D.29035 = info->num_fields;
    if (D.29035 == 1) goto <D.29045>; else goto <D.29046>;
    <D.29045>:
    D.29038 = info->fields[0].field;
    D.29039 = D.29038->type;
    D.29040 = D.29039->type;
    if (D.29040 == 13) goto <D.29047>; else goto <D.29048>;
    <D.29047>:
    D.29024 = MEM[(double *)curParm];
    printf ("[FLOAT8:%g], ", D.29024);
    goto <D.24121>;
    <D.29048>:
    <D.29046>:
    <D.29044>:
    printf ("[VALUETYPE:");
    i = 0;
    goto <D.24149>;
    <D.24148>:
    D.29049 = (sizetype) i;
    D.29050 = curParm + D.29049;
    D.29051 = *D.29050;
    D.29052 = (int) D.29051;
    printf ("%02x,", D.29052);
    i = i + 1;
    <D.24149>:
    if (i < size) goto <D.24148>; else goto <D.24150>;
    <D.24150>:
    printf ("], ");
    goto <D.24121>;
  }
  <D.24151>:
  {
    int i;

    printf ("[TYPEDBYREF:");
    i = 0;
    goto <D.24154>;
    <D.24153>:
    D.29053 = (sizetype) i;
    D.29054 = curParm + D.29053;
    D.29055 = *D.29054;
    D.29056 = (int) D.29055;
    printf ("%02x,", D.29056);
    i = i + 1;
    <D.24154>:
    if (i < size) goto <D.24153>; else goto <D.24155>;
    <D.24155>:
    printf ("]");
    goto <D.24121>;
  }
  <D.24156>:
  D.29057 = cvtMonoType (simpleType);
  printf ("[%s], ", D.29057);
  <D.24121>:
  <D.28985>:
}


emit_unwind_regs (struct MonoCompile * cfg, guint8 * code, int start, int end, long int offset)
{
  long int code.113;
  unsigned char * D.29059;
  long int D.29060;
  long int D.29061;
  int D.29062;
  int D.29063;
  long unsigned int offset.114;
  long unsigned int D.29065;
  int i;

  i = start;
  goto <D.24048>;
  <D.24047>:
  code.113 = (long int) code;
  D.29059 = cfg->native_code;
  D.29060 = (long int) D.29059;
  D.29061 = code.113 - D.29060;
  D.29062 = (int) D.29061;
  D.29063 = (int) offset;
  mono_emit_unwind_op (cfg, D.29062, 128, i, D.29063);
  offset.114 = (long unsigned int) offset;
  D.29065 = offset.114 + 8;
  offset = (long int) D.29065;
  i = i + 1;
  <D.24048>:
  if (i < end) goto <D.24047>; else goto <D.24049>;
  <D.24049>:
}


__attribute__((visibility ("hidden")))
mono_arch_emit_epilog (struct MonoCompile * cfg)
{
  struct MonoMethod * D.29066;
  long unsigned int D.29067;
  long unsigned int D.29068;
  struct MonoTraceSpec * mono_jit_trace_calls.115;
  unsigned int D.29075;
  unsigned int D.29076;
  unsigned int D.29079;
  unsigned int D.29080;
  unsigned char * D.29081;
  long unsigned int D.29082;
  void * D.29083;
  int D.29084;
  int D.29085;
  unsigned int D.29086;
  unsigned int max_epilog_size.116;
  unsigned int D.29088;
  unsigned int D.29089;
  sizetype D.29090;
  int D.29093;
  long unsigned int D.29096;
  long unsigned int D.29097;
  unsigned int D.29100;
  unsigned int D.29101;
  unsigned int D.29102;
  unsigned int D.29103;
  int D.29104;
  int D.29105;
  unsigned int D.29106;
  unsigned int D.29107;
  unsigned int D.29108;
  long int code.117;
  long int D.29113;
  long int D.29114;
  unsigned int D.29115;
  _Bool D.29116;
  long int D.29117;
  long int D.29118;
  struct MonoMethod * method;
  int tracing;
  guint8 * code;
  int max_epilog_size;

  method = cfg->method;
  tracing = 0;
  max_epilog_size = 96;
  D.29066 = cfg->method;
  D.29067 = BIT_FIELD_REF <*D.29066, 64, 256>;
  D.29068 = D.29067 & 36028797018963968;
  if (D.29068 != 0) goto <D.29069>; else goto <D.29070>;
  <D.29069>:
  max_epilog_size = max_epilog_size + 128;
  <D.29070>:
  mono_jit_trace_calls.115 = mono_jit_trace_calls;
  if (mono_jit_trace_calls.115 != 0B) goto <D.29072>; else goto <D.29073>;
  <D.29072>:
  max_epilog_size = max_epilog_size + 128;
  goto <D.29074>;
  <D.29073>:
  D.29075 = cfg->prof_options;
  D.29076 = D.29075 & 4096;
  if (D.29076 != 0) goto <D.29077>; else goto <D.29078>;
  <D.29077>:
  max_epilog_size = max_epilog_size + 128;
  <D.29078>:
  <D.29074>:
  goto <D.25182>;
  <D.25181>:
  D.29079 = cfg->code_size;
  D.29080 = D.29079 * 2;
  cfg->code_size = D.29080;
  D.29081 = cfg->native_code;
  D.29079 = cfg->code_size;
  D.29082 = (long unsigned int) D.29079;
  D.29083 = monoeg_realloc (D.29081, D.29082);
  cfg->native_code = D.29083;
  D.29084 = cfg->stat_code_reallocs;
  D.29085 = D.29084 + 1;
  cfg->stat_code_reallocs = D.29085;
  <D.25182>:
  D.29086 = cfg->code_len;
  max_epilog_size.116 = (unsigned int) max_epilog_size;
  D.29088 = D.29086 + max_epilog_size.116;
  D.29079 = cfg->code_size;
  D.29089 = D.29079 + 4294967280;
  if (D.29088 > D.29089) goto <D.25181>; else goto <D.25183>;
  <D.25183>:
  D.29081 = cfg->native_code;
  D.29086 = cfg->code_len;
  D.29090 = (sizetype) D.29086;
  code = D.29081 + D.29090;
  mono_jit_trace_calls.115 = mono_jit_trace_calls;
  if (mono_jit_trace_calls.115 != 0B) goto <D.29091>; else goto <D.29092>;
  <D.29091>:
  D.29093 = mono_trace_eval (method);
  if (D.29093 != 0) goto <D.29094>; else goto <D.29095>;
  <D.29094>:
  code = mono_arch_instrument_epilog (cfg, leave_method, code, 1);
  tracing = 1;
  <D.29095>:
  <D.29092>:
  D.29096 = BIT_FIELD_REF <*method, 64, 256>;
  D.29097 = D.29096 & 36028797018963968;
  if (D.29097 != 0) goto <D.29098>; else goto <D.29099>;
  <D.29098>:
  {
    int lmfOffset;

    lmfOffset = 0;
    D.29100 = cfg->frame_reg;
    D.29101 = D.29100 | 3104047312;
    MEM[(guint32 *)code] = D.29101;
    code = code + 4;
    D.29102 = cfg->stack_usage;
    D.29103 = D.29102 + 4294966952;
    lmfOffset = (int) D.29103;
    D.29104 = lmfOffset & 65535;
    D.29105 = D.29104 | -1478819840;
    D.29106 = (unsigned int) D.29105;
    MEM[(guint32 *)code] = D.29106;
    code = code + 4;
    MEM[(guint16 *)code] = 58208;
    code = code + 2;
    MEM[(guint32 *)code] = 3490185220;
    code = code + 4;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 3489660932;
    code = code + 4;
    MEM[(guint16 *)code] = 58320;
    code = code + 2;
    MEM[(guint32 *)code] = 1610612740;
    code = code + 4;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 1610612772;
    code = code + 4;
  }
  <D.29099>:
  D.29107 = cfg->flags;
  D.29108 = D.29107 & 1;
  if (D.29108 != 0) goto <D.29109>; else goto <D.29110>;
  <D.29109>:
  MEM[(guint16 *)code] = 58352;
  code = code + 2;
  MEM[(guint32 *)code] = 4026531844;
  code = code + 4;
  goto <D.29111>;
  <D.29110>:
  code = backUpStackPtr (cfg, code);
  <D.29111>:
  MEM[(guint16 *)code] = 60270;
  code = code + 2;
  MEM[(guint32 *)code] = 4029677572;
  code = code + 4;
  MEM[(guint16 *)code] = 2046;
  code = code + 2;
  code.117 = (long int) code;
  D.29081 = cfg->native_code;
  D.29113 = (long int) D.29081;
  D.29114 = code.117 - D.29113;
  D.29115 = (unsigned int) D.29114;
  cfg->code_len = D.29115;
  D.29086 = cfg->code_len;
  D.29079 = cfg->code_size;
  D.29116 = D.29086 >= D.29079;
  D.29117 = (long int) D.29116;
  D.29118 = __builtin_expect (D.29117, 0);
  if (D.29118 != 0) goto <D.29119>; else goto <D.29120>;
  <D.29119>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5420, "cfg->code_len < cfg->code_size");
  <D.29120>:
}


leave_method (struct MonoMethod * method)
{
  struct MonoMethodSignature * D.29121;
  unsigned char D.29122;
  int D.29123;
  struct MonoVTable * D.29129;
  struct MonoClass * D.29130;
  struct MonoClass * D.29131;
  _Bool D.29132;
  long int D.29133;
  long int D.29134;
  char * D.29137;
  struct MonoVTable * D.29142;
  struct MonoClass * D.29144;
  struct MonoClass * D.29145;
  guint8 * D.29148;
  unsigned char D.29149;
  int D.29150;
  struct MonoClass * D.29152;
  gint32 * D.29155;
  int D.29156;
  struct MonoClass * D.29158;
  gint64 * D.29161;
  long int D.29162;
  const char * D.29164;
  const char * D.29165;
  struct MonoClass * D.29166;
  long unsigned int D.29167;
  long unsigned int D.29168;
  unsigned int D.29171;
  unsigned int D.29174;
  struct MonoClassField * D.29177;
  struct MonoType * D.29178;
  unsigned char D.29179;
  sizetype D.29188;
  guint8 * D.29189;
  unsigned char D.29190;
  int D.29191;
  struct MonoMethodSignature * D.29193;
  struct MonoType * D.29194;
  unsigned char D.29195;
  int D.29196;
  void * D.29197;
  void * D.29198;
  void * ip.118;
  struct MonoType * type;
  char * fname;
  guint64 ip;
  struct  ap[1];
  void handle_enum = <<< error >>>;

  try
    {
      __builtin_va_start (&ap, 0);
      fname = mono_method_full_name (method, 1);
      indent (-1);
      printf ("LEAVE: %s", fname);
      monoeg_g_free (fname);
      D.29121 = mono_method_signature (method);
      type = D.29121->ret;
      handle_enum:
      D.29122 = type->type;
      D.29123 = (int) D.29122;
      switch (D.29123) <default: <D.24269>, case 1: <D.24198>, case 2: <D.24200>, case 3: <D.24202>, case 4: <D.24204>, case 5: <D.24206>, case 6: <D.24208>, case 7: <D.24210>, case 8: <D.24212>, case 9: <D.24214>, case 10: <D.24230>, case 11: <D.24232>, case 12: <D.24234>, case 13: <D.24236>, case 14: <D.24220>, case 15: <D.24225>, case 17: <D.24238>, case 18: <D.24222>, case 20: <D.24227>, case 22: <D.24255>, case 24: <D.24216>, case 25: <D.24218>, case 27: <D.24226>, case 28: <D.24223>, case 29: <D.24228>>
      <D.24198>:
      goto <D.24199>;
      <D.24200>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        if (val != 0) goto <D.29124>; else goto <D.29125>;
        <D.29124>:
        printf ("[TRUE:%d]", val);
        goto <D.29126>;
        <D.29125>:
        printf ("[FALSE]");
        <D.29126>:
        goto <D.24199>;
      }
      <D.24202>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[CHAR:%d]", val);
        goto <D.24199>;
      }
      <D.24204>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[INT1:%d]", val);
        goto <D.24199>;
      }
      <D.24206>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[UINT1:%d]", val);
        goto <D.24199>;
      }
      <D.24208>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[INT2:%d]", val);
        goto <D.24199>;
      }
      <D.24210>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[UINT2:%d]", val);
        goto <D.24199>;
      }
      <D.24212>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[INT4:%d]", val);
        goto <D.24199>;
      }
      <D.24214>:
      {
        int val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[UINT4:%d]", val);
        goto <D.24199>;
      }
      <D.24216>:
      {
        gint64 val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[INT:%ld]", val);
        printf ("]");
        goto <D.24199>;
      }
      <D.24218>:
      {
        gint64 val;

        val = VA_ARG (&ap, 0B, 0B);
        printf ("[UINT:%lu]", val);
        printf ("]");
        goto <D.24199>;
      }
      <D.24220>:
      {
        struct MonoString * s;

        s = VA_ARG (&ap, 0B, 0B);
        if (s != 0B) goto <D.29127>; else goto <D.29128>;
        <D.29127>:
        D.29129 = MEM[(struct MonoObject *)s].vtable;
        D.29130 = D.29129->klass;
        D.29131 = mono_defaults.string_class;
        D.29132 = D.29130 != D.29131;
        D.29133 = (long int) D.29132;
        D.29134 = __builtin_expect (D.29133, 0);
        if (D.29134 != 0) goto <D.29135>; else goto <D.29136>;
        <D.29135>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 1098, "((MonoObject *)s)->vtable->klass == mono_defaults.string_class");
        <D.29136>:
        D.29137 = mono_string_to_utf8 (s);
        printf ("[STRING:%p:%s]", s, D.29137);
        goto <D.29138>;
        <D.29128>:
        printf ("[STRING:null], ");
        <D.29138>:
        goto <D.24199>;
      }
      <D.24222>:
      <D.24223>:
      {
        struct MonoObject * o;

        o = VA_ARG (&ap, 0B, 0B);
        if (o != 0B) goto <D.29141>; else goto <D.29139>;
        <D.29141>:
        D.29142 = o->vtable;
        if (D.29142 != 0B) goto <D.29143>; else goto <D.29139>;
        <D.29143>:
        D.29142 = o->vtable;
        D.29144 = D.29142->klass;
        D.29145 = mono_defaults.boolean_class;
        if (D.29144 == D.29145) goto <D.29146>; else goto <D.29147>;
        <D.29146>:
        D.29148 = o + 16;
        D.29149 = *D.29148;
        D.29150 = (int) D.29149;
        printf ("[BOOLEAN:%p:%d]", o, D.29150);
        goto <D.29151>;
        <D.29147>:
        D.29142 = o->vtable;
        D.29144 = D.29142->klass;
        D.29152 = mono_defaults.int32_class;
        if (D.29144 == D.29152) goto <D.29153>; else goto <D.29154>;
        <D.29153>:
        D.29155 = o + 16;
        D.29156 = *D.29155;
        printf ("[INT32:%p:%d]", o, D.29156);
        goto <D.29157>;
        <D.29154>:
        D.29142 = o->vtable;
        D.29144 = D.29142->klass;
        D.29158 = mono_defaults.int64_class;
        if (D.29144 == D.29158) goto <D.29159>; else goto <D.29160>;
        <D.29159>:
        D.29161 = o + 16;
        D.29162 = *D.29161;
        printf ("[INT64:%p:%ld]", o, D.29162);
        goto <D.29163>;
        <D.29160>:
        D.29142 = o->vtable;
        D.29144 = D.29142->klass;
        D.29164 = D.29144->name_space;
        D.29142 = o->vtable;
        D.29144 = D.29142->klass;
        D.29165 = D.29144->name;
        printf ("[%s.%s:%p]", D.29164, D.29165, o);
        <D.29163>:
        <D.29157>:
        <D.29151>:
        goto <D.29140>;
        <D.29139>:
        printf ("[OBJECT:%p]", o);
        <D.29140>:
        goto <D.24199>;
      }
      <D.24225>:
      <D.24226>:
      <D.24227>:
      <D.24228>:
      {
        void * p;

        p = VA_ARG (&ap, 0B, 0B);
        printf ("[result=%p]", p);
        goto <D.24199>;
      }
      <D.24230>:
      {
        gint64 l;

        l = VA_ARG (&ap, 0B, 0B);
        printf ("[LONG:%ld]", l);
        goto <D.24199>;
      }
      <D.24232>:
      {
        guint64 l;

        l = VA_ARG (&ap, 0B, 0B);
        printf ("[ULONG:%lu]", l);
        goto <D.24199>;
      }
      <D.24234>:
      {
        double f;

        f = VA_ARG (&ap, 0B, 0B);
        printf ("[FLOAT4:%g]\n", f);
        goto <D.24199>;
      }
      <D.24236>:
      {
        double f;

        f = VA_ARG (&ap, 0B, 0B);
        printf ("[FLOAT8:%g]\n", f);
        goto <D.24199>;
      }
      <D.24238>:
      {
        struct MonoMarshalType * info;

        D.29166 = type->data.klass;
        D.29167 = BIT_FIELD_REF <*D.29166, 64, 256>;
        D.29168 = D.29167 & 576460752303423488;
        if (D.29168 != 0) goto <D.29169>; else goto <D.29170>;
        <D.29169>:
        D.29166 = type->data.klass;
        type = mono_class_enum_basetype (D.29166);
        goto handle_enum;
        <D.29170>:
        {
          int size;
          int align;

          try
            {
              D.29166 = type->data.klass;
              info = mono_marshal_load_type_info (D.29166);
              D.29171 = info->native_size;
              if (D.29171 == 4) goto <D.29172>; else goto <D.29173>;
              <D.29172>:
              D.29174 = info->num_fields;
              if (D.29174 == 1) goto <D.29175>; else goto <D.29176>;
              <D.29175>:
              D.29177 = info->fields[0].field;
              D.29178 = D.29177->type;
              D.29179 = D.29178->type;
              if (D.29179 == 12) goto <D.29180>; else goto <D.29181>;
              <D.29180>:
              {
                double f;

                f = VA_ARG (&ap, 0B, 0B);
                printf ("[FLOAT4:%g]\n", f);
                goto <D.24199>;
              }
              <D.29181>:
              <D.29176>:
              <D.29173>:
              D.29171 = info->native_size;
              if (D.29171 == 8) goto <D.29182>; else goto <D.29183>;
              <D.29182>:
              D.29174 = info->num_fields;
              if (D.29174 == 1) goto <D.29184>; else goto <D.29185>;
              <D.29184>:
              D.29177 = info->fields[0].field;
              D.29178 = D.29177->type;
              D.29179 = D.29178->type;
              if (D.29179 == 13) goto <D.29186>; else goto <D.29187>;
              <D.29186>:
              {
                double f;

                f = VA_ARG (&ap, 0B, 0B);
                printf ("[FLOAT8:%g]\n", f);
                goto <D.24199>;
              }
              <D.29187>:
              <D.29185>:
              <D.29183>:
              size = mono_type_size (type, &align);
              switch (size) <default: <D.24253>, case 1: <D.24244>, case 2: <D.24247>, case 4: <D.24249>, case 8: <D.24251>>
              <D.24244>:
              {
                guint32 p;

                p = VA_ARG (&ap, 0B, 0B);
                printf ("[%02x]\n", p);
                goto <D.24246>;
              }
              <D.24247>:
              {
                guint32 p;

                p = VA_ARG (&ap, 0B, 0B);
                printf ("[%04x]\n", p);
                goto <D.24246>;
              }
              <D.24249>:
              {
                guint32 p;

                p = VA_ARG (&ap, 0B, 0B);
                printf ("[%08x]\n", p);
                goto <D.24246>;
              }
              <D.24251>:
              {
                guint64 p;

                p = VA_ARG (&ap, 0B, 0B);
                printf ("[%016lx]\n", p);
                goto <D.24246>;
              }
              <D.24253>:
              {
                void * p;

                p = VA_ARG (&ap, 0B, 0B);
                printf ("[VALUETYPE] %p\n", p);
              }
              <D.24246>:
            }
          finally
            {
              align = {CLOBBER};
            }
        }
        goto <D.24199>;
      }
      <D.24255>:
      {
        guint8 * p;
        int j;
        int size;
        int align;

        try
          {
            p = VA_ARG (&ap, 0B, 0B);
            size = mono_type_size (type, &align);
            switch (size) <default: <D.24268>, case 1: <D.24260>, case 2: <D.24261>, case 4: <D.24262>, case 8: <D.24263>>
            <D.24260>:
            <D.24261>:
            <D.24262>:
            <D.24263>:
            printf ("[");
            j = 0;
            goto <D.24265>;
            <D.24264>:
            D.29188 = (sizetype) j;
            D.29189 = p + D.29188;
            D.29190 = *D.29189;
            D.29191 = (int) D.29190;
            printf ("%02x,", D.29191);
            j = j + 1;
            <D.24265>:
            if (p != 0B) goto <D.29192>; else goto <D.24266>;
            <D.29192>:
            if (j < size) goto <D.24264>; else goto <D.24266>;
            <D.24266>:
            printf ("]\n");
            goto <D.24267>;
            <D.24268>:
            printf ("[TYPEDBYREF]\n");
            <D.24267>:
          }
        finally
          {
            align = {CLOBBER};
          }
      }
      goto <D.24199>;
      <D.24269>:
      D.29193 = mono_method_signature (method);
      D.29194 = D.29193->ret;
      D.29195 = D.29194->type;
      D.29196 = (int) D.29195;
      printf ("(unknown return type %x)", D.29196);
      <D.24199>:
      D.29197 = __builtin_return_address (0);
      D.29198 = __builtin_extract_return_addr (D.29197);
      ip = (guint64) D.29198;
      ip.118 = (void *) ip;
      printf (" ip: %p\n", ip.118);
    }
  finally
    {
      ap = {CLOBBER};
    }
}


__attribute__((visibility ("hidden")))
mono_arch_emit_exceptions (struct MonoCompile * cfg)
{
  <unnamed type> D.29203;
  int D.29206;
  unsigned int D.29207;
  unsigned int D.29208;
  unsigned char * D.29209;
  long unsigned int D.29210;
  void * D.29211;
  int D.29212;
  int D.29213;
  unsigned int D.29214;
  unsigned int D.29215;
  unsigned int D.29216;
  sizetype D.29217;
  int D.29218;
  sizetype D.29219;
  guint8 * D.29220;
  long unsigned int code.119;
  long unsigned int ip.120;
  long unsigned int D.29223;
  long unsigned int D.29224;
  struct MonoImage * D.29225;
  const char * D.29226;
  _Bool D.29227;
  long int D.29228;
  long int D.29229;
  struct MonoClass * D.29232;
  guint8 * D.29236;
  long int D.29237;
  unsigned int D.29238;
  unsigned int D.29242;
  long unsigned int D.29243;
  sizetype D.29244;
  unsigned char * D.29245;
  long unsigned int D.29246;
  long unsigned int D.29247;
  long unsigned int D.29248;
  unsigned int D.29249;
  long int code.121;
  long int D.29251;
  long int D.29252;
  int D.29253;
  unsigned int D.29254;
  _Bool D.29255;
  long int D.29256;
  long int D.29257;
  struct MonoJumpInfo * patch_info;
  guint8 * code;
  int nThrows;
  int exc_count;
  int iExc;
  guint32 code_size;
  struct MonoClass * exc_classes[16];
  guint8 * exc_throw_start[16];

  try
    {
      nThrows = 0;
      exc_count = 0;
      patch_info = cfg->patch_info;
      goto <D.25197>;
      <D.25196>:
      D.29203 = patch_info->type;
      if (D.29203 == 9) goto <D.29204>; else goto <D.29205>;
      <D.29204>:
      exc_count = exc_count + 1;
      <D.29205>:
      patch_info = patch_info->next;
      <D.25197>:
      if (patch_info != 0B) goto <D.25196>; else goto <D.25198>;
      <D.25198>:
      D.29206 = exc_count * 48;
      code_size = (guint32) D.29206;
      goto <D.25200>;
      <D.25199>:
      D.29207 = cfg->code_size;
      D.29208 = D.29207 * 2;
      cfg->code_size = D.29208;
      D.29209 = cfg->native_code;
      D.29207 = cfg->code_size;
      D.29210 = (long unsigned int) D.29207;
      D.29211 = monoeg_realloc (D.29209, D.29210);
      cfg->native_code = D.29211;
      D.29212 = cfg->stat_code_reallocs;
      D.29213 = D.29212 + 1;
      cfg->stat_code_reallocs = D.29213;
      <D.25200>:
      D.29214 = cfg->code_len;
      D.29215 = D.29214 + code_size;
      D.29207 = cfg->code_size;
      D.29216 = D.29207 + 4294967280;
      if (D.29215 > D.29216) goto <D.25199>; else goto <D.25201>;
      <D.25201>:
      D.29209 = cfg->native_code;
      D.29214 = cfg->code_len;
      D.29217 = (sizetype) D.29214;
      code = D.29209 + D.29217;
      patch_info = cfg->patch_info;
      goto <D.25212>;
      <D.25211>:
      D.29203 = patch_info->type;
      switch (D.29203) <default: <D.25210>, case 9: <D.25202>>
      <D.25202>:
      {
        guint8 * ip;
        struct MonoClass * exc_class;
        guint64 throw_ip;

        D.29209 = cfg->native_code;
        D.29218 = patch_info->ip.i;
        D.29219 = (sizetype) D.29218;
        ip = D.29209 + D.29219;
        D.29220 = ip + 2;
        code.119 = (long unsigned int) code;
        ip.120 = (long unsigned int) ip;
        D.29223 = code.119 - ip.120;
        D.29224 = D.29223 / 2;
        s390_patch_rel (D.29220, D.29224);
        D.29225 = mono_defaults.corlib;
        D.29226 = patch_info->data.name;
        exc_class = mono_class_from_name (D.29225, "System", D.29226);
        D.29227 = exc_class == 0B;
        D.29228 = (long int) D.29227;
        D.29229 = __builtin_expect (D.29228, 0);
        if (D.29229 != 0) goto <D.29230>; else goto <D.29231>;
        <D.29230>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5481, "exc_class");
        <D.29231>:
        D.29218 = patch_info->ip.i;
        throw_ip = (guint64) D.29218;
        iExc = 0;
        goto <D.25208>;
        <D.25207>:
        D.29232 = exc_classes[iExc];
        if (D.29232 == exc_class) goto <D.25206>; else goto <D.29233>;
        <D.29233>:
        iExc = iExc + 1;
        <D.25208>:
        if (iExc < nThrows) goto <D.25207>; else goto <D.25206>;
        <D.25206>:
        if (iExc < nThrows) goto <D.29234>; else goto <D.29235>;
        <D.29234>:
        MEM[(guint16 *)code] = 49396;
        code = code + 2;
        D.29236 = exc_throw_start[iExc];
        D.29237 = (long int) D.29236;
        D.29238 = (unsigned int) D.29237;
        MEM[(guint32 *)code] = D.29238;
        code = code + 4;
        patch_info->type = 51;
        goto <D.29239>;
        <D.29235>:
        if (nThrows <= 15) goto <D.29240>; else goto <D.29241>;
        <D.29240>:
        exc_classes[nThrows] = exc_class;
        exc_throw_start[nThrows] = code;
        <D.29241>:
        MEM[(guint16 *)code] = 3536;
        code = code + 2;
        MEM[(guint32 *)code] = 2817785862;
        code = code + 4;
        D.29242 = exc_class->type_token;
        D.29243 = (long unsigned int) D.29242;
        MEM[(guint64 *)code] = D.29243;
        code = code + 8;
        MEM[(guint16 *)code] = 49376;
        code = code + 2;
        D.29209 = cfg->native_code;
        D.29218 = patch_info->ip.i;
        D.29219 = (sizetype) D.29218;
        D.29244 = D.29219 + 8;
        D.29245 = D.29209 + D.29244;
        D.29246 = (long unsigned int) D.29245;
        code.119 = (long unsigned int) code;
        D.29247 = D.29246 - code.119;
        D.29248 = D.29247 / 2;
        D.29249 = (unsigned int) D.29248;
        MEM[(guint32 *)code] = D.29249;
        code = code + 4;
        MEM[(guint16 *)code] = 58144;
        code = code + 2;
        MEM[(guint32 *)code] = 3489923076;
        code = code + 4;
        MEM[(guint16 *)code] = 3536;
        code = code + 2;
        MEM[(guint32 *)code] = 2817785862;
        code = code + 4;
        patch_info->type = 7;
        patch_info->data.name = "mono_arch_throw_corlib_exception";
        code.121 = (long int) code;
        D.29209 = cfg->native_code;
        D.29251 = (long int) D.29209;
        D.29252 = code.121 - D.29251;
        D.29253 = (int) D.29252;
        patch_info->ip.i = D.29253;
        MEM[(guint64 *)code] = 0;
        code = code + 8;
        MEM[(guint16 *)code] = 58128;
        code = code + 2;
        MEM[(guint32 *)code] = 3489923076;
        code = code + 4;
        MEM[(guint16 *)code] = 2033;
        code = code + 2;
        <D.29239>:
        goto <D.25209>;
      }
      <D.25210>:
      goto <D.25209>;
      <D.25209>:
      patch_info = patch_info->next;
      <D.25212>:
      if (patch_info != 0B) goto <D.25211>; else goto <D.25213>;
      <D.25213>:
      code.121 = (long int) code;
      D.29209 = cfg->native_code;
      D.29251 = (long int) D.29209;
      D.29252 = code.121 - D.29251;
      D.29254 = (unsigned int) D.29252;
      cfg->code_len = D.29254;
      D.29214 = cfg->code_len;
      D.29207 = cfg->code_size;
      D.29255 = D.29214 >= D.29207;
      D.29256 = (long int) D.29255;
      D.29257 = __builtin_expect (D.29256, 0);
      if (D.29257 != 0) goto <D.29258>; else goto <D.29259>;
      <D.29258>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5534, "cfg->code_len < cfg->code_size");
      <D.29259>:
    }
  finally
    {
      exc_classes = {CLOBBER};
      exc_throw_start = {CLOBBER};
    }
}


__attribute__((visibility ("hidden")))
mono_arch_finish_init ()
{
  int D.29261;
  int D.29262;
  int D.29263;

  D.29261 = mono_domain_get_tls_offset ();
  appdomain_tls_offset = D.29261;
  D.29262 = mono_get_lmf_tls_offset ();
  lmf_tls_offset = D.29262;
  D.29263 = mono_get_lmf_addr_tls_offset ();
  lmf_addr_tls_offset = D.29263;
}


__attribute__((visibility ("hidden")))
mono_arch_free_jit_tls_data (struct MonoJitTlsData * tls)
{

}


__attribute__((visibility ("hidden")))
mono_arch_emit_inst_for_method (struct MonoCompile * cfg, struct MonoMethod * cmethod, struct MonoMethodSignature * fsig, struct MonoInst * * args)
{
  struct MonoInst * D.29264;

  D.29264 = 0B;
  return D.29264;
}


__attribute__((visibility ("hidden")))
mono_arch_decompose_opts (struct MonoCompile * cfg, struct MonoInst * ins)
{
  short unsigned int D.29266;
  int D.29267;

  D.29266 = ins->opcode;
  D.29267 = (int) D.29266;
  switch (D.29267) <default: <D.25239>, case 507: <D.25235>, case 508: <D.25236>, case 511: <D.25237>, case 512: <D.25238>, case 595: <D.25233>, case 596: <D.25234>, case 599: <D.25230>, case 600: <D.25232>>
  <D.25230>:
  ins->opcode = 858;
  goto <D.25231>;
  <D.25232>:
  ins->opcode = 859;
  goto <D.25231>;
  <D.25233>:
  ins->opcode = 856;
  goto <D.25231>;
  <D.25234>:
  ins->opcode = 857;
  goto <D.25231>;
  <D.25235>:
  ins->opcode = 850;
  goto <D.25231>;
  <D.25236>:
  ins->opcode = 851;
  goto <D.25231>;
  <D.25237>:
  ins->opcode = 853;
  goto <D.25231>;
  <D.25238>:
  ins->opcode = 854;
  goto <D.25231>;
  <D.25239>:
  goto <D.25231>;
  <D.25231>:
}


__attribute__((visibility ("hidden")))
mono_arch_print_tree (struct MonoInst * tree, int arity)
{
  short unsigned int D.29269;
  int D.29270;
  long int D.29271;
  int D.29272;
  const char * D.29273;
  int D.29274;
  int D.29275;
  const char * D.29276;
  long int D.29277;
  const char * D.29278;
  const char * D.29279;
  const char * D.29280;
  const char * D.29281;
  const char * D.29282;
  gboolean D.29283;
  gboolean done;

  D.29269 = tree->opcode;
  D.29270 = (int) D.29269;
  switch (D.29270) <default: <D.25254>, case 791: <D.25252>, case 842: <D.25245>, case 843: <D.25246>, case 844: <D.25247>, case 845: <D.25249>, case 846: <D.25250>, case 847: <D.25251>, case 848: <D.25253>>
  <D.25245>:
  <D.25246>:
  <D.25247>:
  D.29271 = tree->data.op[0].const_val;
  D.29272 = tree->sreg1;
  D.29273 = mono_arch_regname (D.29272);
  printf ("[0x%lx(%s)]", D.29271, D.29273);
  done = 1;
  goto <D.25248>;
  <D.25249>:
  D.29271 = tree->data.op[0].const_val;
  printf ("[0x%lx(previous_frame)]", D.29271);
  done = 1;
  goto <D.25248>;
  <D.25250>:
  D.29271 = tree->data.op[0].const_val;
  D.29274 = tree->backend.size;
  D.29275 = tree->dreg;
  D.29276 = mono_arch_regname (D.29275);
  D.29277 = tree->data.op[1].const_val;
  D.29272 = tree->sreg1;
  D.29278 = mono_arch_regname (D.29272);
  printf ("[0x%lx(%d,%s),0x%lx(%s)]", D.29271, D.29274, D.29276, D.29277, D.29278);
  done = 1;
  goto <D.25248>;
  <D.25251>:
  D.29275 = tree->dreg;
  D.29279 = mono_arch_regname (D.29275);
  D.29272 = tree->sreg1;
  D.29280 = mono_arch_regname (D.29272);
  printf ("[f%s,f%s]", D.29279, D.29280);
  done = 1;
  goto <D.25248>;
  <D.25252>:
  D.29271 = tree->data.op[0].const_val;
  D.29277 = tree->data.op[1].const_val;
  D.29272 = tree->sreg1;
  D.29281 = mono_arch_regname (D.29272);
  printf ("[0x%lx(0x%lx,%s)]", D.29271, D.29277, D.29281);
  done = 1;
  goto <D.25248>;
  <D.25253>:
  D.29272 = tree->sreg1;
  D.29282 = mono_arch_regname (D.29272);
  printf ("[previous_frame(%s)]", D.29282);
  done = 1;
  <D.25254>:
  done = 0;
  <D.25248>:
  D.29283 = done;
  return D.29283;
}


__attribute__((visibility ("hidden")))
mono_arch_regalloc_cost (struct MonoCompile * cfg, struct MonoMethodVar * vmv)
{
  guint32 D.29285;

  D.29285 = 2;
  return D.29285;
}


__attribute__((visibility ("hidden")))
mono_arch_flush_register_windows ()
{

}


__attribute__((visibility ("hidden")))
mono_arch_is_inst_imm (gint64 imm)
{
  gboolean D.29287;
  unsigned long imm.122;
  unsigned long D.29289;
  _Bool D.29290;

  imm.122 = (unsigned long) imm;
  D.29289 = imm.122 + 32768;
  D.29290 = D.29289 <= 65535;
  D.29287 = (gboolean) D.29290;
  return D.29287;
}


__attribute__((visibility ("hidden")))
mono_arch_get_patch_offset (guint8 * code)
{
  guint32 D.29292;

  D.29292 = 0;
  return D.29292;
}


__attribute__((visibility ("hidden")))
mono_arch_context_get_int_reg (struct MonoContext * ctx, int reg)
{
  mgreg_t D.29294;
  long unsigned int D.29295;

  D.29295 = ctx->uc_mcontext.gregs[reg];
  D.29294 = (mgreg_t) D.29295;
  return D.29294;
}


__attribute__((visibility ("hidden")))
mono_arch_context_set_int_reg (struct MonoContext * ctx, int reg, mgreg_t val)
{
  long unsigned int val.123;

  val.123 = (long unsigned int) val;
  ctx->uc_mcontext.gregs[reg] = val.123;
}


__attribute__((visibility ("hidden")))
mono_arch_get_this_arg_from_call (mgreg_t * regs, guint8 * code)
{
  void * D.29298;
  long unsigned int D.29299;
  struct MonoLMF * lmf;

  lmf = regs + 18446744073709551272;
  D.29299 = lmf->gregs[2];
  D.29298 = (void *) D.29299;
  return D.29298;
}


__attribute__((visibility ("hidden")))
mono_arch_get_delegate_invoke_impls ()
{
  unsigned int code_len.124;
  struct MonoTrampInfo * D.29302;
  unsigned int i.125;
  struct MonoTrampInfo * D.29304;
  struct GSList * D.29305;
  struct GSList * res;
  guint8 * code;
  guint32 code_len;
  int i;
  char * tramp_name;

  try
    {
      res = 0B;
      code = get_delegate_invoke_impl (1, 0, &code_len, 1);
      code_len.124 = code_len;
      D.29302 = mono_tramp_info_create ("delegate_invoke_impl_has_target", code, code_len.124, 0B, 0B);
      res = monoeg_g_slist_prepend (res, D.29302);
      i = 0;
      goto <D.25305>;
      <D.25304>:
      i.125 = (unsigned int) i;
      code = get_delegate_invoke_impl (0, i.125, &code_len, 1);
      tramp_name = monoeg_g_strdup_printf ("delegate_invoke_impl_target_%d", i);
      code_len.124 = code_len;
      D.29304 = mono_tramp_info_create (tramp_name, code, code_len.124, 0B, 0B);
      res = monoeg_g_slist_prepend (res, D.29304);
      monoeg_g_free (tramp_name);
      i = i + 1;
      <D.25305>:
      if (i <= 6) goto <D.25304>; else goto <D.25306>;
      <D.25306>:
      D.29305 = res;
      return D.29305;
    }
  finally
    {
      code_len = {CLOBBER};
    }
}


get_delegate_invoke_impl (gboolean has_target, guint32 param_count, guint32 * code_len, gboolean aot)
{
  long int code.126;
  long int start.127;
  long int D.29312;
  long int D.29313;
  _Bool D.29314;
  long int D.29315;
  long int D.29316;
  unsigned int D.29320;
  unsigned int D.29321;
  int D.29322;
  int D.29323;
  int D.29324;
  int D.29325;
  int D.29326;
  unsigned int D.29327;
  unsigned int i.128;
  long int D.29329;
  _Bool D.29330;
  long int D.29331;
  long int D.29332;
  unsigned int D.29337;
  void * D.29338;
  guint8 * code;
  guint8 * start;

  if (has_target != 0) goto <D.29308>; else goto <D.29309>;
  <D.29308>:
  {
    int size;

    size = 32;
    code = mono_global_codeman_reserve (size);
    start = code;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 537919492;
    code = code + 4;
    MEM[(guint16 *)code] = 58144;
    code = code + 2;
    MEM[(guint32 *)code] = 538968068;
    code = code + 4;
    MEM[(guint16 *)code] = 2033;
    code = code + 2;
    code.126 = (long int) code;
    start.127 = (long int) start;
    D.29312 = code.126 - start.127;
    D.29313 = (long int) size;
    D.29314 = D.29312 > D.29313;
    D.29315 = (long int) D.29314;
    D.29316 = __builtin_expect (D.29315, 0);
    if (D.29316 != 0) goto <D.29317>; else goto <D.29318>;
    <D.29317>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5845, "(code - start) <= size");
    <D.29318>:
    mono_arch_flush_icache (start, size);
  }
  goto <D.29319>;
  <D.29309>:
  {
    int size;
    int i;

    D.29320 = param_count + 4;
    D.29321 = D.29320 * 8;
    size = (int) D.29321;
    code = mono_global_codeman_reserve (size);
    start = code;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 537919492;
    code = code + 4;
    i = 0;
    goto <D.25294>;
    <D.25293>:
    D.29322 = i + 2;
    D.29323 = D.29322 << 4;
    D.29324 = D.29323 | -1190920192;
    D.29325 = i + 3;
    D.29326 = D.29324 | D.29325;
    D.29327 = (unsigned int) D.29326;
    MEM[(guint32 *)code] = D.29327;
    code = code + 4;
    i = i + 1;
    <D.25294>:
    i.128 = (unsigned int) i;
    if (i.128 < param_count) goto <D.25293>; else goto <D.25295>;
    <D.25295>:
    MEM[(guint16 *)code] = 2033;
    code = code + 2;
    code.126 = (long int) code;
    start.127 = (long int) start;
    D.29312 = code.126 - start.127;
    D.29329 = (long int) size;
    D.29330 = D.29312 > D.29329;
    D.29331 = (long int) D.29330;
    D.29332 = __builtin_expect (D.29331, 0);
    if (D.29332 != 0) goto <D.29333>; else goto <D.29334>;
    <D.29333>:
    monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 5861, "(code - start) <= size");
    <D.29334>:
    mono_arch_flush_icache (start, size);
  }
  <D.29319>:
  if (code_len != 0B) goto <D.29335>; else goto <D.29336>;
  <D.29335>:
  code.126 = (long int) code;
  start.127 = (long int) start;
  D.29312 = code.126 - start.127;
  D.29337 = (unsigned int) D.29312;
  *code_len = D.29337;
  <D.29336>:
  D.29338 = start;
  return D.29338;
}


__attribute__((visibility ("hidden")))
mono_arch_get_delegate_invoke_impl (struct MonoMethodSignature * sig, gboolean has_target)
{
  struct MonoType * D.29340;
  int D.29341;
  void * D.29344;
  guint8 * cached.129;
  int mono_aot_only.130;
  short unsigned int D.29355;
  struct MonoType * D.29358;
  int D.29359;
  int D.29362;
  unsigned int D.29368;
  guint8 * code;
  guint8 * start;

  D.29340 = sig->ret;
  D.29341 = mono_type_is_struct (D.29340);
  if (D.29341 != 0) goto <D.29342>; else goto <D.29343>;
  <D.29342>:
  D.29344 = 0B;
  return D.29344;
  <D.29343>:
  if (has_target != 0) goto <D.29345>; else goto <D.29346>;
  <D.29345>:
  {
    static guint8 * cached = 0B;

    cached.129 = cached;
    if (cached.129 != 0B) goto <D.29348>; else goto <D.29349>;
    <D.29348>:
    D.29344 = cached;
    return D.29344;
    <D.29349>:
    mono_aot_only.130 = mono_aot_only;
    if (mono_aot_only.130 != 0) goto <D.29351>; else goto <D.29352>;
    <D.29351>:
    start = mono_aot_get_trampoline ("delegate_invoke_impl_has_target");
    goto <D.29353>;
    <D.29352>:
    start = get_delegate_invoke_impl (1, 0, 0B, 0);
    <D.29353>:
    mono_memory_barrier ();
    cached = start;
  }
  goto <D.29354>;
  <D.29346>:
  {
    static guint8 * cache[8] = {0B};
    int i;

    D.29355 = sig->param_count;
    if (D.29355 > 7) goto <D.29356>; else goto <D.29357>;
    <D.29356>:
    D.29344 = 0B;
    return D.29344;
    <D.29357>:
    i = 0;
    goto <D.25317>;
    <D.25316>:
    D.29358 = sig->params[i];
    D.29359 = mono_is_regsize_var (D.29358);
    if (D.29359 == 0) goto <D.29360>; else goto <D.29361>;
    <D.29360>:
    D.29344 = 0B;
    return D.29344;
    <D.29361>:
    i = i + 1;
    <D.25317>:
    D.29355 = sig->param_count;
    D.29362 = (int) D.29355;
    if (D.29362 > i) goto <D.25316>; else goto <D.25318>;
    <D.25318>:
    D.29355 = sig->param_count;
    D.29362 = (int) D.29355;
    code = cache[D.29362];
    if (code != 0B) goto <D.29363>; else goto <D.29364>;
    <D.29363>:
    D.29344 = code;
    return D.29344;
    <D.29364>:
    mono_aot_only.130 = mono_aot_only;
    if (mono_aot_only.130 != 0) goto <D.29365>; else goto <D.29366>;
    <D.29365>:
    {
      char * name;

      D.29355 = sig->param_count;
      D.29362 = (int) D.29355;
      name = monoeg_g_strdup_printf ("delegate_invoke_impl_target_%d", D.29362);
      start = mono_aot_get_trampoline (name);
      monoeg_g_free (name);
    }
    goto <D.29367>;
    <D.29366>:
    D.29355 = sig->param_count;
    D.29368 = (unsigned int) D.29355;
    start = get_delegate_invoke_impl (0, D.29368, 0B, 0);
    <D.29367>:
    mono_memory_barrier ();
    D.29355 = sig->param_count;
    D.29362 = (int) D.29355;
    cache[D.29362] = start;
  }
  <D.29354>:
  D.29344 = start;
  return D.29344;
}


mono_memory_barrier ()
{
  __sync_synchronize ();
}


__attribute__((visibility ("hidden")))
mono_arch_build_imt_thunk (struct MonoVTable * vtable, struct MonoDomain * domain, struct MonoIMTCheckItem * * imt_entries, int count, void * fail_tramp)
{
  long unsigned int D.29370;
  long unsigned int D.29371;
  struct MonoIMTCheckItem * * D.29372;
  unsigned char D.29373;
  int D.29376;
  unsigned char D.29379;
  unsigned char D.29382;
  unsigned char D.29383;
  unsigned char D.29384;
  unsigned char D.29387;
  unsigned char D.29389;
  unsigned char D.29393;
  unsigned char D.29396;
  long unsigned int D.29399;
  long unsigned int D.29400;
  struct MonoIMTCheckItem * * D.29401;
  struct MonoIMTCheckItem * D.29402;
  int D.29403;
  unsigned char D.29407;
  int D.29410;
  unsigned char D.29413;
  void * D.29416;
  long unsigned int D.29417;
  unsigned char D.29418;
  void * D.29421;
  long unsigned int D.29422;
  int D.29424;
  void * * D.29425;
  long unsigned int D.29426;
  _Bool D.29433;
  long int D.29434;
  long int D.29435;
  long unsigned int code.131;
  guint8 * D.29439;
  long unsigned int D.29440;
  long unsigned int D.29441;
  long unsigned int D.29442;
  guint8 * D.29443;
  long unsigned int target.132;
  long unsigned int fail_tramp.133;
  guint8 * D.29448;
  int D.29451;
  long unsigned int D.29454;
  long unsigned int D.29455;
  struct MonoIMTCheckItem * * D.29456;
  struct MonoIMTCheckItem * D.29457;
  guint8 * D.29458;
  long unsigned int D.29459;
  long unsigned int D.29460;
  long unsigned int D.29461;
  long unsigned int D.29462;
  guchar * D.29463;
  long unsigned int offset.134;
  long int code.135;
  long int start.136;
  long int D.29467;
  int D.29468;
  long unsigned int D.29471;
  long unsigned int D.29472;
  long unsigned int D.29473;
  long int D.29474;
  _Bool D.29475;
  long int D.29476;
  long int D.29477;
  void * D.29480;
  int i;
  int size;
  guchar * code;
  guchar * start;

  size = 0;
  i = 0;
  goto <D.25333>;
  <D.25332>:
  {
    struct MonoIMTCheckItem * item;

    D.29370 = (long unsigned int) i;
    D.29371 = D.29370 * 8;
    D.29372 = imt_entries + D.29371;
    item = *D.29372;
    D.29373 = item->is_equals;
    if (D.29373 != 0) goto <D.29374>; else goto <D.29375>;
    <D.29374>:
    D.29376 = item->check_target_idx;
    if (D.29376 != 0) goto <D.29377>; else goto <D.29378>;
    <D.29377>:
    D.29379 = item->compare_done;
    if (D.29379 == 0) goto <D.29380>; else goto <D.29381>;
    <D.29380>:
    D.29382 = item->chunk_size;
    D.29383 = D.29382 + 30;
    item->chunk_size = D.29383;
    <D.29381>:
    D.29384 = item->has_target_code;
    if (D.29384 != 0) goto <D.29385>; else goto <D.29386>;
    <D.29385>:
    D.29382 = item->chunk_size;
    D.29387 = D.29382 + 28;
    item->chunk_size = D.29387;
    goto <D.29388>;
    <D.29386>:
    D.29382 = item->chunk_size;
    D.29389 = D.29382 + 34;
    item->chunk_size = D.29389;
    <D.29388>:
    goto <D.29390>;
    <D.29378>:
    if (fail_tramp != 0B) goto <D.29391>; else goto <D.29392>;
    <D.29391>:
    D.29382 = item->chunk_size;
    D.29393 = D.29382 + 74;
    item->chunk_size = D.29393;
    D.29384 = item->has_target_code;
    if (D.29384 == 0) goto <D.29394>; else goto <D.29395>;
    <D.29394>:
    D.29382 = item->chunk_size;
    D.29396 = D.29382 + 6;
    item->chunk_size = D.29396;
    <D.29395>:
    goto <D.29397>;
    <D.29392>:
    D.29382 = item->chunk_size;
    D.29387 = D.29382 + 28;
    item->chunk_size = D.29387;
    <D.29397>:
    <D.29390>:
    goto <D.29398>;
    <D.29375>:
    D.29382 = item->chunk_size;
    D.29383 = D.29382 + 30;
    item->chunk_size = D.29383;
    D.29376 = item->check_target_idx;
    D.29399 = (long unsigned int) D.29376;
    D.29400 = D.29399 * 8;
    D.29401 = imt_entries + D.29400;
    D.29402 = *D.29401;
    D.29402->compare_done = 1;
    <D.29398>:
    D.29382 = item->chunk_size;
    D.29403 = (int) D.29382;
    size = D.29403 + size;
  }
  i = i + 1;
  <D.25333>:
  if (i < count) goto <D.25332>; else goto <D.25334>;
  <D.25334>:
  if (fail_tramp != 0B) goto <D.29404>; else goto <D.29405>;
  <D.29404>:
  code = mono_method_alloc_generic_virtual_thunk (domain, size);
  goto <D.29406>;
  <D.29405>:
  code = mono_domain_code_reserve (domain, size);
  <D.29406>:
  start = code;
  i = 0;
  goto <D.25338>;
  <D.25337>:
  {
    struct MonoIMTCheckItem * item;

    D.29370 = (long unsigned int) i;
    D.29371 = D.29370 * 8;
    D.29372 = imt_entries + D.29371;
    item = *D.29372;
    item->code_target = code;
    D.29407 = item->is_equals;
    if (D.29407 != 0) goto <D.29408>; else goto <D.29409>;
    <D.29408>:
    D.29410 = item->check_target_idx;
    if (D.29410 != 0) goto <D.29411>; else goto <D.29412>;
    <D.29411>:
    D.29413 = item->compare_done;
    if (D.29413 == 0) goto <D.29414>; else goto <D.29415>;
    <D.29414>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.29416 = item->key;
    D.29417 = (long unsigned int) D.29416;
    MEM[(guint64 *)code] = D.29417;
    code = code + 8;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint32 *)code] = 3105882121;
    code = code + 4;
    <D.29415>:
    item->jmp_code = code;
    MEM[(guint16 *)code] = 49268;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.29418 = item->has_target_code;
    if (D.29418 != 0) goto <D.29419>; else goto <D.29420>;
    <D.29419>:
    D.29421 = item->value.target_code;
    D.29422 = (long unsigned int) D.29421;
    MEM[(guint64 *)code] = D.29422;
    code = code + 8;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    goto <D.29423>;
    <D.29420>:
    D.29424 = item->value.vtable_slot;
    D.29425 = &vtable->vtable[D.29424];
    D.29426 = (long unsigned int) D.29425;
    MEM[(guint64 *)code] = D.29426;
    code = code + 8;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 268435460;
    code = code + 4;
    <D.29423>:
    MEM[(guint16 *)code] = 2033;
    code = code + 2;
    goto <D.29427>;
    <D.29412>:
    if (fail_tramp != 0B) goto <D.29428>; else goto <D.29429>;
    <D.29428>:
    {
      gint64 target;

      MEM[(guint16 *)code] = 3536;
      code = code + 2;
      MEM[(guint32 *)code] = 2817785862;
      code = code + 4;
      D.29416 = item->key;
      D.29417 = (long unsigned int) D.29416;
      MEM[(guint64 *)code] = D.29417;
      code = code + 8;
      MEM[(guint16 *)code] = 58112;
      code = code + 2;
      MEM[(guint32 *)code] = 3489923076;
      code = code + 4;
      MEM[(guint32 *)code] = 3105882121;
      code = code + 4;
      item->jmp_code = code;
      MEM[(guint16 *)code] = 49268;
      code = code + 2;
      MEM[(guint32 *)code] = 0;
      code = code + 4;
      MEM[(guint16 *)code] = 3536;
      code = code + 2;
      MEM[(guint32 *)code] = 2817785862;
      code = code + 4;
      D.29418 = item->has_target_code;
      if (D.29418 != 0) goto <D.29430>; else goto <D.29431>;
      <D.29430>:
      D.29421 = item->value.target_code;
      D.29422 = (long unsigned int) D.29421;
      MEM[(guint64 *)code] = D.29422;
      code = code + 8;
      MEM[(guint16 *)code] = 58128;
      code = code + 2;
      MEM[(guint32 *)code] = 3489923076;
      code = code + 4;
      goto <D.29432>;
      <D.29431>:
      D.29433 = vtable == 0B;
      D.29434 = (long int) D.29433;
      D.29435 = __builtin_expect (D.29434, 0);
      if (D.29435 != 0) goto <D.29436>; else goto <D.29437>;
      <D.29436>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 6067, "vtable");
      <D.29437>:
      D.29424 = item->value.vtable_slot;
      D.29425 = &vtable->vtable[D.29424];
      D.29426 = (long unsigned int) D.29425;
      MEM[(guint64 *)code] = D.29426;
      code = code + 8;
      MEM[(guint16 *)code] = 58128;
      code = code + 2;
      MEM[(guint32 *)code] = 3489923076;
      code = code + 4;
      MEM[(guint16 *)code] = 58128;
      code = code + 2;
      MEM[(guint32 *)code] = 268435460;
      code = code + 4;
      <D.29432>:
      MEM[(guint16 *)code] = 2033;
      code = code + 2;
      code.131 = (long unsigned int) code;
      D.29439 = item->jmp_code;
      D.29440 = (long unsigned int) D.29439;
      D.29441 = code.131 - D.29440;
      D.29442 = D.29441 / 2;
      target = (gint64) D.29442;
      D.29439 = item->jmp_code;
      D.29443 = D.29439 + 2;
      target.132 = (long unsigned int) target;
      s390_patch_rel (D.29443, target.132);
      MEM[(guint16 *)code] = 3536;
      code = code + 2;
      MEM[(guint32 *)code] = 2817785862;
      code = code + 4;
      fail_tramp.133 = (long unsigned int) fail_tramp;
      MEM[(guint64 *)code] = fail_tramp.133;
      code = code + 8;
      MEM[(guint16 *)code] = 58128;
      code = code + 2;
      MEM[(guint32 *)code] = 3489923076;
      code = code + 4;
      MEM[(guint16 *)code] = 2033;
      code = code + 2;
      item->jmp_code = 0B;
    }
    goto <D.29446>;
    <D.29429>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.29424 = item->value.vtable_slot;
    D.29425 = &vtable->vtable[D.29424];
    D.29426 = (long unsigned int) D.29425;
    MEM[(guint64 *)code] = D.29426;
    code = code + 8;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint16 *)code] = 58128;
    code = code + 2;
    MEM[(guint32 *)code] = 268435460;
    code = code + 4;
    MEM[(guint16 *)code] = 2033;
    code = code + 2;
    <D.29446>:
    <D.29427>:
    goto <D.29447>;
    <D.29409>:
    MEM[(guint16 *)code] = 3536;
    code = code + 2;
    MEM[(guint32 *)code] = 2817785862;
    code = code + 4;
    D.29416 = item->key;
    D.29417 = (long unsigned int) D.29416;
    MEM[(guint64 *)code] = D.29417;
    code = code + 8;
    MEM[(guint16 *)code] = 58112;
    code = code + 2;
    MEM[(guint32 *)code] = 3489923076;
    code = code + 4;
    MEM[(guint32 *)code] = 3105882256;
    code = code + 4;
    item->jmp_code = code;
    MEM[(guint16 *)code] = 49332;
    code = code + 2;
    MEM[(guint32 *)code] = 0;
    code = code + 4;
    <D.29447>:
  }
  i = i + 1;
  <D.25338>:
  if (i < count) goto <D.25337>; else goto <D.25339>;
  <D.25339>:
  i = 0;
  goto <D.25343>;
  <D.25342>:
  {
    struct MonoIMTCheckItem * item;

    D.29370 = (long unsigned int) i;
    D.29371 = D.29370 * 8;
    D.29372 = imt_entries + D.29371;
    item = *D.29372;
    D.29448 = item->jmp_code;
    if (D.29448 != 0B) goto <D.29449>; else goto <D.29450>;
    <D.29449>:
    D.29451 = item->check_target_idx;
    if (D.29451 != 0) goto <D.29452>; else goto <D.29453>;
    <D.29452>:
    {
      gint64 offset;

      D.29451 = item->check_target_idx;
      D.29454 = (long unsigned int) D.29451;
      D.29455 = D.29454 * 8;
      D.29456 = imt_entries + D.29455;
      D.29457 = *D.29456;
      D.29458 = D.29457->code_target;
      D.29459 = (long unsigned int) D.29458;
      D.29448 = item->jmp_code;
      D.29460 = (long unsigned int) D.29448;
      D.29461 = D.29459 - D.29460;
      D.29462 = D.29461 / 2;
      offset = (gint64) D.29462;
      D.29448 = item->jmp_code;
      D.29463 = D.29448 + 2;
      offset.134 = (long unsigned int) offset;
      s390_patch_rel (D.29463, offset.134);
    }
    <D.29453>:
    <D.29450>:
  }
  i = i + 1;
  <D.25343>:
  if (i < count) goto <D.25342>; else goto <D.25344>;
  <D.25344>:
  code.135 = (long int) code;
  start.136 = (long int) start;
  D.29467 = code.135 - start.136;
  D.29468 = (int) D.29467;
  mono_arch_flush_icache (start, D.29468);
  if (fail_tramp == 0B) goto <D.29469>; else goto <D.29470>;
  <D.29469>:
  D.29471 = mono_stats.imt_thunks_size;
  code.135 = (long int) code;
  start.136 = (long int) start;
  D.29467 = code.135 - start.136;
  D.29472 = (long unsigned int) D.29467;
  D.29473 = D.29471 + D.29472;
  mono_stats.imt_thunks_size = D.29473;
  <D.29470>:
  code.135 = (long int) code;
  start.136 = (long int) start;
  D.29467 = code.135 - start.136;
  D.29474 = (long int) size;
  D.29475 = D.29467 > D.29474;
  D.29476 = (long int) D.29475;
  D.29477 = __builtin_expect (D.29476, 0);
  if (D.29477 != 0) goto <D.29478>; else goto <D.29479>;
  <D.29478>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "mini-s390x.c", 6125, "code - start <= size");
  <D.29479>:
  D.29480 = start;
  return D.29480;
}


__attribute__((visibility ("hidden")))
mono_arch_find_imt_method (mgreg_t * regs, guint8 * code)
{
  struct MonoMethod * D.29482;
  long unsigned int D.29483;
  struct MonoLMF * lmf;

  lmf = regs + 18446744073709551272;
  D.29483 = lmf->gregs[9];
  D.29482 = (struct MonoMethod *) D.29483;
  return D.29482;
}


__attribute__((visibility ("hidden")))
mono_arch_find_static_call_vtable (mgreg_t * regs, guint8 * code)
{
  struct MonoVTable * D.29485;
  mgreg_t * D.29486;
  long int D.29487;
  mgreg_t * r;

  r = regs;
  D.29486 = r + 72;
  D.29487 = *D.29486;
  D.29485 = (struct MonoVTable *) D.29487;
  return D.29485;
}


__attribute__((visibility ("hidden")))
mono_arch_get_cie_program ()
{
  struct MonoUnwindOp * D.29489;
  struct GSList * D.29490;
  struct GSList * l;

  l = 0B;
  D.29489 = mono_create_unwind_op (0, 12, 15, 0);
  l = monoeg_g_slist_append (l, D.29489);
  D.29490 = l;
  return D.29490;
}


__attribute__((visibility ("hidden")))
mono_arch_set_breakpoint (struct MonoJitInfo * ji, guint8 * ip)
{
  void * bp_trigger_page.137;
  guint8 * code;

  code = ip;
  bp_trigger_page.137 = bp_trigger_page;
  breakpointCode.pTrigger = bp_trigger_page.137;
  memcpy (code, &breakpointCode, 26);
  code = code + 26;
}


__attribute__((visibility ("hidden")))
mono_arch_clear_breakpoint (struct MonoJitInfo * ji, guint8 * ip)
{
  unsigned int i.138;
  guint8 * code;
  int i;

  code = ip;
  i = 0;
  goto <D.25371>;
  <D.25370>:
  MEM[(guint16 *)code] = 1792;
  code = code + 2;
  i = i + 1;
  <D.25371>:
  i.138 = (unsigned int) i;
  if (i.138 <= 2) goto <D.25370>; else goto <D.25372>;
  <D.25372>:
}


__attribute__((visibility ("hidden")))
mono_arch_is_breakpoint_event (void * info, void * sigctx)
{
  void * D.29495;
  void * bp_trigger_page.139;
  guint8 * D.29498;
  gboolean D.29500;
  struct siginfo_t * sinfo;

  sinfo = info;
  D.29495 = sinfo->_sifields._sigfault.si_addr;
  bp_trigger_page.139 = bp_trigger_page;
  if (D.29495 >= bp_trigger_page.139) goto <D.29497>; else goto <D.29494>;
  <D.29497>:
  D.29495 = sinfo->_sifields._sigfault.si_addr;
  bp_trigger_page.139 = bp_trigger_page;
  D.29498 = bp_trigger_page.139 + 128;
  if (D.29495 <= D.29498) goto <D.29499>; else goto <D.29494>;
  <D.29499>:
  D.29500 = 1;
  return D.29500;
  <D.29494>:
  D.29500 = 0;
  return D.29500;
}


__attribute__((visibility ("hidden")))
mono_arch_skip_breakpoint (struct MonoContext * ctx, struct MonoJitInfo * ji)
{
  long unsigned int D.29502;
  long unsigned int D.29503;

  D.29502 = ctx->uc_mcontext.psw.addr;
  D.29503 = D.29502 + 26;
  ctx->uc_mcontext.gregs[14] = D.29503;
  D.29502 = ctx->uc_mcontext.psw.addr;
  D.29503 = D.29502 + 26;
  ctx->uc_mcontext.psw.addr = D.29503;
}


__attribute__((visibility ("hidden")))
mono_arch_start_single_stepping ()
{
  void * ss_trigger_page.140;
  int D.29505;
  long unsigned int D.29506;

  ss_trigger_page.140 = ss_trigger_page;
  D.29505 = mono_pagesize ();
  D.29506 = (long unsigned int) D.29505;
  mono_mprotect (ss_trigger_page.140, D.29506, 0);
}


__attribute__((visibility ("hidden")))
mono_arch_stop_single_stepping ()
{
  void * ss_trigger_page.141;
  int D.29508;
  long unsigned int D.29509;

  ss_trigger_page.141 = ss_trigger_page;
  D.29508 = mono_pagesize ();
  D.29509 = (long unsigned int) D.29508;
  mono_mprotect (ss_trigger_page.141, D.29509, 1);
}


__attribute__((visibility ("hidden")))
mono_arch_is_single_step_event (void * info, void * sigctx)
{
  void * D.29511;
  void * ss_trigger_page.142;
  guint8 * D.29514;
  gboolean D.29516;
  struct siginfo_t * sinfo;

  sinfo = info;
  D.29511 = sinfo->_sifields._sigfault.si_addr;
  ss_trigger_page.142 = ss_trigger_page;
  if (D.29511 >= ss_trigger_page.142) goto <D.29513>; else goto <D.29510>;
  <D.29513>:
  D.29511 = sinfo->_sifields._sigfault.si_addr;
  ss_trigger_page.142 = ss_trigger_page;
  D.29514 = ss_trigger_page.142 + 128;
  if (D.29511 <= D.29514) goto <D.29515>; else goto <D.29510>;
  <D.29515>:
  D.29516 = 1;
  return D.29516;
  <D.29510>:
  D.29516 = 0;
  return D.29516;
}


__attribute__((visibility ("hidden")))
mono_arch_skip_single_step (struct MonoContext * ctx)
{
  long unsigned int D.29518;
  long unsigned int D.29519;

  D.29518 = ctx->uc_mcontext.psw.addr;
  D.29519 = D.29518 + 26;
  ctx->uc_mcontext.gregs[14] = D.29519;
  D.29518 = ctx->uc_mcontext.psw.addr;
  D.29519 = D.29518 + 26;
  ctx->uc_mcontext.psw.addr = D.29519;
}


__attribute__((visibility ("hidden")))
mono_arch_get_seq_point_info (struct MonoDomain * domain, guint8 * code)
{
  void * D.29520;

  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "mini-s390x.c", 6358);
  D.29520 = 0B;
  return D.29520;
}


__attribute__((visibility ("hidden")))
mono_arch_init_lmf_ext (struct MonoLMFExt * ext, void * prev_lmf)
{
  void * D.29522;
  long int D.29523;
  long int D.29524;
  void * D.29525;
  long unsigned int ext.143;

  ext->lmf.previous_lmf = prev_lmf;
  D.29522 = ext->lmf.previous_lmf;
  D.29523 = (long int) D.29522;
  D.29524 = D.29523 | 2;
  D.29525 = (void *) D.29524;
  ext->lmf.previous_lmf = D.29525;
  ext.143 = (long unsigned int) ext;
  ext->lmf.ebp = ext.143;
}


