#include "run-time.h"

/* Typedefs for referenced classes */

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(5);
define__KLsimple_object_vectorGVKd(0);

typedef struct {
  D wrapper;
} _KLintegerGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
  D cache_header_engine_node_next_;
  D cache_header_engine_node_parent_;
} _KLsimple_typechecked_cache_header_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

#define  define__KLsimple_closure_methodGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D xep_; \
    D function_signature_; \
    D mep_; \
    D environment_size_; \
    D environment_element_[nrepeated+1]; \
  } _KLsimple_closure_methodGVKi_##nrepeated;
define__KLsimple_closure_methodGVKi(0);

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D mangler_;
  D cg_variables_;
  D registers_;
  D variables_;
} _KLharp_x86_back_endGVharp_x86;

typedef struct {
  D wrapper;
  D op_name_;
  D op_properties_;
  D op_disallow_fn_;
  D op_prefer_fn_;
  D op_clash_fn_;
  D op_destroys_fn_;
  D op_c_preserved_destroys_fn_;
  D op_implicit_uses_;
  D op_spread_;
  D op_code_gen_fn_;
  D op_reverse_op_;
  D op_constant_fold_op_;
  D op_info_;
} _KLopGYharp_opVharp;


/* Typedefs for defined classes */


/* Referenced object declarations */

extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLsealed_generic_functionGVKe KcolourYbase_harpVharp;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLunionGVKe KLdf_icSspill_refGYharp_templatesVharp;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kpush_doubleVharp_x86MM0I (D, D);
D Kemit_1Ybase_harpVharpMM0I (D, D, D, D);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLsealed_generic_functionGVKe Kemit_f_c_spill_operandVharp_x86;
extern _KLsimple_methodGVKe Kemit_branch_sdiVharp_x86MM0;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
D Kpattern_errorYbase_harpVharpMM0I (D);
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLharp_x86_back_endGVharp_x86;
extern _KLmm_wrapperGVKi_0 KLharp_x86_back_endGVharp_x86W;
extern _KLclassGVKd KLopGYharp_opVharp;
extern _KLmm_wrapperGVKi_0 KLopGYharp_opVharpW;
extern _KLunionGVKe KLsf_icSspill_refGYharp_templatesVharp;
D Kpush_singleVharp_x86MM0I (D, D);
D Kmodify_opYharp_opVharpMM0I (D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D);
extern D pentium_instructionsVharp_x86;
extern D eaxVharp_x86;

/* Defined object declarations */

static D Kdo_opF37I (D);
static D Kdo_opF36I (D);
static D Kdo_opF35I (D);
static D Kdo_opF34I (D);
static D Kdo_opF33I (D);
static _KLsimple_closure_methodGVKi_0 K31;
static D K31I (D, D, D, D, D);
static _KLsimple_closure_methodGVKi_0 K29;
static D K29I (D, D, D, D, D);
static _KLsimple_closure_methodGVKi_0 K27;
static D K27I (D, D, D, D, D);
static _KLsimple_closure_methodGVKi_0 K22;
static D K22I (D, D, D, D, D);
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K23;
D Kmake_flags_availVharp_x86MM0I (D, D, D);
static _KLsignatureGVKe K25;
static _KLsimple_object_vectorGVKd_5 K26;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K28;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K30;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K32;

/* Indirection variables */


/* Variables */


/* Objects */

static _KLsimple_closure_methodGVKi_0 K31 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_5,
  &K25,
  &K31I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 K29 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_5,
  &K25,
  &K29I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 K27 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_5,
  &K25,
  &K27I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 K22 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_5,
  &K25,
  &K22I,
  (D) 1
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K23 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 327737,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_f_c_spill_operandVharp_x86
};

static _KLsignatureGVKe K25 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040213,
  &K26
};

static _KLsimple_object_vectorGVKd_5 K26 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 21,
  &KLharp_x86_back_endGVharp_x86,
  &KLopGYharp_opVharp,
  &KLobjectGVKd,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K28 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 327737,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_f_c_spill_operandVharp_x86
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K30 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 327737,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_f_c_spill_operandVharp_x86
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K32 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 327737,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_f_c_spill_operandVharp_x86
};

/* Code */

static D Kdo_opF37I (D op_) {
  D T1;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  T1 = Kmodify_opYharp_opVharpMM0I(op_, &KPempty_vectorVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, (D) 477);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  MV_SET_COUNT(0);
  return(T1);
}

static D Kdo_opF36I (D op_) {
  D T1;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  T1 = Kmodify_opYharp_opVharpMM0I(op_, &KPempty_vectorVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, (D) 469);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  MV_SET_COUNT(0);
  return(T1);
}

static D Kdo_opF35I (D op_) {
  D T1;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  T1 = Kmodify_opYharp_opVharpMM0I(op_, &KPempty_vectorVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, (D) 457);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  MV_SET_COUNT(0);
  return(T1);
}

static D Kdo_opF34I (D op_) {
  D T1;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  T1 = Kmodify_opYharp_opVharpMM0I(op_, &KPempty_vectorVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, (D) 461);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  MV_SET_COUNT(0);
  return(T1);
}

static D Kdo_opF33I (D op_) {
  D T1;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  T1 = Kmodify_opYharp_opVharpMM0I(op_, &KPempty_vectorVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, &KPunboundVKi, (D) 473);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  MV_SET_COUNT(0);
  return(T1);
}

static D K31I (D a1D_, D a2D_, D a3D_, D a4D_, D a5D_) {
  D s2_;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_5 T19 = {&KLsimple_object_vectorGVKdW, (D) 21};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:65
  T16 = SLOT_VALUE_INITD(a2D_, 12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  T17 = primitive_instanceQ(T16,&KLintegerGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  if (T17 != &KPfalseVKi) {
    T14 = T16;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
    if (a3D_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
      if (a4D_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:65
        CONGRUENT_CALL_PROLOG(&KcolourYbase_harpVharp, 1);
        s2_ = CONGRUENT_CALL1(a5D_);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
        T18 = primitive_instanceQ(s2_,&KLsf_icSspill_refGYharp_templatesVharp);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
        if (T18 != &KPfalseVKi) {
          T15 = s2_;
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:66
          Kpush_singleVharp_x86MM0I(a1D_, a4D_);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:67
          Kemit_1Ybase_harpVharpMM0I(a1D_, (D) 865, &KPempty_vectorVKi, &KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:68
          ENGINE_NODE_CALL_PROLOG(&Kemit_f_c_spill_operandVharp_x86, &K32, 4);
          ENGINE_NODE_CALL4(&K32, a1D_, T15, (D) 97, &KPempty_vectorVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:69
          Kmake_flags_availVharp_x86MM0I(a1D_, &KPempty_vectorVKi, (D) 65537);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:70
          CALL3(&Kemit_branch_sdiVharp_x86MM0, a1D_, T14, a3D_);
          T7 = &KPtrueVKi;
        } else {
          T7 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
        T8 = T7;
      } else {
        T8 = &KPfalseVKi;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
      T9 = T8;
    } else {
      T9 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
    T10 = T9;
  } else {
    T10 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
    T12 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T13 = T12;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
    T19.vector_element_[0] = a1D_;
    T19.vector_element_[1] = a2D_;
    T19.vector_element_[2] = a3D_;
    T19.vector_element_[3] = a4D_;
    T19.vector_element_[4] = a5D_;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
    T11 = Kpattern_errorYbase_harpVharpMM0I(&T19);
    T13 = T11;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  return(T13);
}

static D K29I (D a1D_, D a2D_, D a3D_, D a4D_, D a5D_) {
  D s2_;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_5 T19 = {&KLsimple_object_vectorGVKdW, (D) 21};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:76
  T16 = SLOT_VALUE_INITD(a2D_, 12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T17 = primitive_instanceQ(T16,&KLintegerGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  if (T17 != &KPfalseVKi) {
    T14 = T16;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
    if (a3D_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
      if (a4D_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:76
        CONGRUENT_CALL_PROLOG(&KcolourYbase_harpVharp, 1);
        s2_ = CONGRUENT_CALL1(a5D_);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
        T18 = primitive_instanceQ(s2_,&KLsf_icSspill_refGYharp_templatesVharp);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
        if (T18 != &KPfalseVKi) {
          T15 = s2_;
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:77
          Kpush_singleVharp_x86MM0I(a1D_, a4D_);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:78
          Kemit_1Ybase_harpVharpMM0I(a1D_, (D) 865, &KPempty_vectorVKi, &KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:79
          ENGINE_NODE_CALL_PROLOG(&Kemit_f_c_spill_operandVharp_x86, &K30, 4);
          ENGINE_NODE_CALL4(&K30, a1D_, T15, (D) 97, &KPempty_vectorVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:80
          Kmake_flags_availVharp_x86MM0I(a1D_, &KPempty_vectorVKi, &KPfalseVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:81
          CALL3(&Kemit_branch_sdiVharp_x86MM0, a1D_, T14, a3D_);
          T7 = &KPtrueVKi;
        } else {
          T7 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
        T8 = T7;
      } else {
        T8 = &KPfalseVKi;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
      T9 = T8;
    } else {
      T9 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
    T10 = T9;
  } else {
    T10 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
    T12 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T13 = T12;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
    T19.vector_element_[0] = a1D_;
    T19.vector_element_[1] = a2D_;
    T19.vector_element_[2] = a3D_;
    T19.vector_element_[3] = a4D_;
    T19.vector_element_[4] = a5D_;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
    T11 = Kpattern_errorYbase_harpVharpMM0I(&T19);
    T13 = T11;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  return(T13);
}

static D K27I (D a1D_, D a2D_, D a3D_, D a4D_, D a5D_) {
  D s2_;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_5 T19 = {&KLsimple_object_vectorGVKdW, (D) 21};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:87
  T16 = SLOT_VALUE_INITD(a2D_, 12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  T17 = primitive_instanceQ(T16,&KLintegerGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  if (T17 != &KPfalseVKi) {
    T14 = T16;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
    if (a3D_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
      if (a4D_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:87
        CONGRUENT_CALL_PROLOG(&KcolourYbase_harpVharp, 1);
        s2_ = CONGRUENT_CALL1(a5D_);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
        T18 = primitive_instanceQ(s2_,&KLdf_icSspill_refGYharp_templatesVharp);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
        if (T18 != &KPfalseVKi) {
          T15 = s2_;
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:88
          Kpush_doubleVharp_x86MM0I(a1D_, a4D_);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:89
          Kemit_1Ybase_harpVharpMM0I(a1D_, (D) 881, &KPempty_vectorVKi, &KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:90
          ENGINE_NODE_CALL_PROLOG(&Kemit_f_c_spill_operandVharp_x86, &K28, 4);
          ENGINE_NODE_CALL4(&K28, a1D_, T15, (D) 97, &KPempty_vectorVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:91
          Kmake_flags_availVharp_x86MM0I(a1D_, &KPempty_vectorVKi, (D) 65537);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:92
          CALL3(&Kemit_branch_sdiVharp_x86MM0, a1D_, T14, a3D_);
          T7 = &KPtrueVKi;
        } else {
          T7 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
        T8 = T7;
      } else {
        T8 = &KPfalseVKi;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
      T9 = T8;
    } else {
      T9 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
    T10 = T9;
  } else {
    T10 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
    T12 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T13 = T12;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
    T19.vector_element_[0] = a1D_;
    T19.vector_element_[1] = a2D_;
    T19.vector_element_[2] = a3D_;
    T19.vector_element_[3] = a4D_;
    T19.vector_element_[4] = a5D_;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
    T11 = Kpattern_errorYbase_harpVharpMM0I(&T19);
    T13 = T11;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  return(T13);
}

static D K22I (D a1D_, D a2D_, D a3D_, D a4D_, D a5D_) {
  D s2_;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_5 T19 = {&KLsimple_object_vectorGVKdW, (D) 21};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:98
  T16 = SLOT_VALUE_INITD(a2D_, 12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T17 = primitive_instanceQ(T16,&KLintegerGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  if (T17 != &KPfalseVKi) {
    T14 = T16;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
    if (a3D_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
      if (a4D_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:98
        CONGRUENT_CALL_PROLOG(&KcolourYbase_harpVharp, 1);
        s2_ = CONGRUENT_CALL1(a5D_);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
        T18 = primitive_instanceQ(s2_,&KLdf_icSspill_refGYharp_templatesVharp);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
        if (T18 != &KPfalseVKi) {
          T15 = s2_;
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:99
          Kpush_doubleVharp_x86MM0I(a1D_, a4D_);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:100
          Kemit_1Ybase_harpVharpMM0I(a1D_, (D) 881, &KPempty_vectorVKi, &KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:101
          ENGINE_NODE_CALL_PROLOG(&Kemit_f_c_spill_operandVharp_x86, &K23, 4);
          ENGINE_NODE_CALL4(&K23, a1D_, T15, (D) 97, &KPempty_vectorVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:102
          Kmake_flags_availVharp_x86MM0I(a1D_, &KPempty_vectorVKi, &KPfalseVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:103
          CALL3(&Kemit_branch_sdiVharp_x86MM0, a1D_, T14, a3D_);
          T7 = &KPtrueVKi;
        } else {
          T7 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
        T8 = T7;
      } else {
        T8 = &KPfalseVKi;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
      T9 = T8;
    } else {
      T9 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
    T10 = T9;
  } else {
    T10 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
    T12 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T13 = T12;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
    T19.vector_element_[0] = a1D_;
    T19.vector_element_[1] = a2D_;
    T19.vector_element_[2] = a3D_;
    T19.vector_element_[3] = a4D_;
    T19.vector_element_[4] = a5D_;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
    T11 = Kpattern_errorYbase_harpVharpMM0I(&T19);
    T13 = T11;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  return(T13);
}

D Kmake_flags_availVharp_x86MM0I (D be_, D Urest_, D frig_) {
  D T4;
  D T5;
  D T6;
  D T7;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:53
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:55
  Kemit_1Ybase_harpVharpMM0I(be_, (D) 893, &KPempty_vectorVKi, &KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:55
  Kemit_1Ybase_harpVharpMM0I(be_, (D) 897, &KPempty_vectorVKi, &KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:56
  if (frig_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:57
    T5 = pentium_instructionsVharp_x86;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:57
    T6 = SLOT_VALUE(T5, 55);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:57
    T7 = SLOT_VALUE_INITD(T6, 9);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:57
    CALL5(T7, be_, T6, eaxVharp_x86, eaxVharp_x86, frig_);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:56
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:59
  T4 = Kemit_1Ybase_harpVharpMM0I(be_, (D) 633, &KPempty_vectorVKi, &KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:53
  return(T4);
}


/* SYSTEM INIT CODE */

void _Init_harp_x86__X_flt_branches_for_system () {
  extern D KPresolve_symbolVKiI(D);
  return;
}

/* USER INIT CODE */

void _Init_harp_x86__X_flt_branches_for_user () {
{
  D inst_set_;
  D T2;
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  inst_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  T3 = SLOT_VALUE(inst_set_, 222);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  Kdo_opF37I(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  T4 = SLOT_VALUE(inst_set_, 233);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:31
  T2 = Kdo_opF37I(T4);
  goto I0;
}
I0:

{
  D inst_set_;
  D T2;
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  inst_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  T3 = SLOT_VALUE(inst_set_, 227);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  Kdo_opF36I(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  T4 = SLOT_VALUE(inst_set_, 231);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:34
  T2 = Kdo_opF36I(T4);
  goto I2;
}
I2:

{
  D inst_set_;
  D T2;
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  inst_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  T3 = SLOT_VALUE(inst_set_, 226);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  Kdo_opF35I(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  T4 = SLOT_VALUE(inst_set_, 232);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:36
  T2 = Kdo_opF35I(T4);
  goto I4;
}
I4:

{
  D inst_set_;
  D T2;
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  inst_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  T3 = SLOT_VALUE(inst_set_, 223);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  Kdo_opF34I(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  T4 = SLOT_VALUE(inst_set_, 230);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:40
  T2 = Kdo_opF34I(T4);
  goto I6;
}
I6:

{
  D inst_set_;
  D T2;
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  inst_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  T3 = SLOT_VALUE(inst_set_, 225);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  Kdo_opF33I(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  T4 = SLOT_VALUE(inst_set_, 229);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:42
  T2 = Kdo_opF33I(T4);
  goto I8;
}
I8:

{
  D instruction_set_;
  D T2;
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  instruction_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  T3 = SLOT_VALUE(instruction_set_, 222);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  SLOT_VALUE_SETTER(&K31, T3, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:63
  T2 = &KPfalseVKi;
  goto I10;
}
I10:

{
  D instruction_set_;
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  instruction_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T3 = SLOT_VALUE(instruction_set_, 227);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  SLOT_VALUE_SETTER(&K29, T3, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T4 = SLOT_VALUE(instruction_set_, 225);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  SLOT_VALUE_SETTER(&K29, T4, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T5 = SLOT_VALUE(instruction_set_, 226);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  SLOT_VALUE_SETTER(&K29, T5, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T6 = SLOT_VALUE(instruction_set_, 223);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  SLOT_VALUE_SETTER(&K29, T6, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:74
  T2 = &KPfalseVKi;
  goto I13;
}
I13:

{
  D instruction_set_;
  D T2;
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  instruction_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  T3 = SLOT_VALUE(instruction_set_, 233);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  SLOT_VALUE_SETTER(&K27, T3, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:85
  T2 = &KPfalseVKi;
  goto I16;
}
I16:

{
  D instruction_set_;
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  instruction_set_ = pentium_instructionsVharp_x86;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T3 = SLOT_VALUE(instruction_set_, 231);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  SLOT_VALUE_SETTER(&K22, T3, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T4 = SLOT_VALUE(instruction_set_, 229);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  SLOT_VALUE_SETTER(&K22, T4, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T5 = SLOT_VALUE(instruction_set_, 232);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  SLOT_VALUE_SETTER(&K22, T5, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T6 = SLOT_VALUE(instruction_set_, 230);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  SLOT_VALUE_SETTER(&K22, T6, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/x86/flt-branches.dylan:96
  T2 = &KPfalseVKi;
  goto I19;
}
I19:

  return;
}


/* eof */
