#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;

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 head_;
  D tail_;
} _KLempty_listGVKd;

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(32);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(35);
define__KLbyte_stringGVKd(19);

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLpairGVKd;

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 signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

#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(3);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(4);
define__KLsimple_object_vectorGVKd(0);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(16);

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
} _KLcallGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D users_;
} _KLBmethodGVdfmc_modeling;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D private_Cfunction_signature_;
  D CPgf_cache_;
  D private_Cdebug_name_;
  D private_Pgeneric_function_methods_;
  D Cdiscriminator_;
  D Cgeneric_function_properties_;
  D private_signature_spec_;
  D private_Pgeneric_function_domains_;
  D parameters_dynamic_extent_;
  D Cgeneric_function_cache_info_;
} _KLBgeneric_functionGVdfmc_modeling;

typedef struct {
  D wrapper;
  D users_;
  D emitted_name_;
  D function_;
  D code_;
} _KLBiepGVdfmc_modeling;

typedef struct {
  D wrapper;
} _KLintegerGVKd;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D function_;
  D next_methods_;
} _KLmethod_callGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D function_;
  D engine_node_;
} _KLengine_node_callGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D function_;
} _KLsimple_callGVdfmc_flow_graph;

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 mangler_;
  D cg_variables_;
  D registers_;
  D variables_;
} _KLharp_back_endGYbase_harpVharp;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D function_;
} _KLfunction_callGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D type_error_value_;
  D type_error_expected_type_;
} _KLtype_errorGVKd;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLlistGVKd;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D users_;
  D private_Cfunction_signature_;
  D Pmep_;
  D private_debug_name_;
  D function_properties_;
  D private_signature_spec_;
  D parameters_dynamic_extent_;
  D private_lambda_heap_;
  D private_lambda_body_;
  D binding_name_;
  D c_modifiers_;
  D c_signature_;
  D alternate_name_;
  D dll_exportQ_;
} _KLBc_callable_functionGVdfmc_modeling;

typedef struct {
  D wrapper;
  D xep_;
} _KLfunctionGVKd;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D PinstanceQ_iep_;
  D CinstanceQ_function_;
  D private_Cdebug_name_;
  D private_raw_aggregate_members_;
  D private_raw_aggregate_options_;
} _KLBraw_aggregate_typeGVdfmc_modeling;

typedef struct {
  D wrapper;
  D virtual_register_id_;
  D virtual_register_name_;
  D virtual_register_named_indirections_;
  D virtual_register_colour_;
  D virtual_register_available_colours_;
  D virtual_register_clash_start_;
  D virtual_register_colour_pref_;
  D virtual_register_spill_set_;
  D virtual_register_clash_count_;
  D virtual_register_virtual_pref_;
  D virtual_register_vreg_state_;
} _KLsfregGYharp_registersVharp;

typedef struct {
  D wrapper;
  D virtual_register_id_;
  D virtual_register_name_;
  D virtual_register_named_indirections_;
  D virtual_register_colour_;
  D virtual_register_available_colours_;
  D virtual_register_clash_start_;
  D virtual_register_colour_pref_;
  D virtual_register_spill_set_;
  D virtual_register_clash_count_;
  D virtual_register_virtual_pref_;
  D virtual_register_vreg_state_;
} _KLdfregGYharp_registersVharp;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D users_;
  D private_Cfunction_signature_;
  D Pmep_;
  D private_debug_name_;
  D function_properties_;
  D private_signature_spec_;
  D parameters_dynamic_extent_;
  D private_lambda_heap_;
  D private_lambda_body_;
} _KLBlambdaGVdfmc_modeling;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
  D signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D entry_state_;
  D body_;
  D Plabel_;
} _KLbind_exitGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D entry_state_;
  D body_;
  D protected_end_;
  D cleanups_;
  D cleanups_end_;
} _KLunwind_protectGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D test_;
  D consequent_;
  D alternative_;
} _KLifGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D entry_state_;
} _KLend_blockGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D computation_value_;
} _KLreturnGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D computation_value_;
  D entry_state_;
} _KLexitGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
} _KLendGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
} _KLcomputationGVdfmc_flow_graph;


/* 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 _KLsealed_generic_functionGVKe Kcall_effective_functionPVdfmc_harp_cg;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLcallGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcallGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Ksignature_specVdfmc_modeling;
extern _KLsimple_methodGVKe Kspec_argument_optionalsQVdfmc_definitions;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLBmethodGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBmethodGVdfmc_modelingW;
D Ksignature_specVdfmc_modelingMM0I (D);
extern _KLsealed_generic_functionGVKe Kspec_argument_keyQVdfmc_definitions;
extern _KLsealed_generic_functionGVKe Kspec_argument_rest_variable_specVdfmc_definitions;
extern _KLclassGVKd KLBgeneric_functionGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBgeneric_functionGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KfunctionVdfmc_modeling;
extern _KLclassGVKd KLBiepGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBiepGVdfmc_modelingW;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLclassGVKd KLmethod_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLmethod_callGVdfmc_flow_graphW;
extern _KLclassGVKd KLengine_node_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLengine_node_callGVdfmc_flow_graphW;
extern _KLincremental_generic_functionGVKe KAVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLclassGVKd KLsimple_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLsimple_callGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Kcall_congruentQVdfmc_flow_graph;
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
D Knew_stack_allocated_dataQVdfmc_harp_cgI (D arg_);
extern _KLsealed_generic_functionGVKe KgeneratorVdfmc_flow_graph;
extern _KLsealed_generic_functionGVKe KargumentsVdfmc_flow_graph;
extern _KLincremental_generic_functionGVKe KsizeVKd;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LintegerG_typesVKi;
extern _KLclassGVKd KLharp_back_endGYbase_harpVharp;
extern _KLmm_wrapperGVKi_0 KLharp_back_endGYbase_harpVharpW;
extern _KLclassGVKd KLfunction_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLfunction_callGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe KparametersVdfmc_modeling;
extern _KLincremental_generic_functionGVKe K_VKd;
extern _KLincremental_generic_functionGVKe KLVKd;
D Kins__remYharp_instructionsVharpMM0I (D, D);
extern _KLsymbolGVKd KJvalue_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLsymbolGVKd KJtype_;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLclassGVKd KLtype_errorGVKd;
extern _KLmm_wrapperGVKi_0 KLtype_errorGVKdW;
extern _KLsealed_generic_functionGVKe KerrorVKd;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
D KputhashVKiI (D, D, D);
extern _KLsealed_generic_functionGVKe KenvironmentVdfmc_modeling;
extern _KLsimple_methodGVKe KclosureVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kclosure_sizeVdfmc_flow_graphMM0;
D Kins__moveYharp_instructionsVharpMM0I (D, D, D);
D Kop__environment_parameterVdfmc_harp_cgMM0I (D back_end_, D Urest_, D indirections_);
D KmakeVKdMM23I (D, D, D, D);
D Kclosure_environment_offsetPVdfmc_harp_cgI (D);
extern _KLsealed_generic_functionGVKe KnameVdfmc_common;
extern _KLsealed_generic_functionGVKe Klocal_mangleVdfmc_back_end;
D KmemberQVKdMM2I (D, D, D, D);
extern _KLincremental_generic_functionGVKe KEVKd;
D Kformat_to_stringYformatVioMM0I (D, D);
D Kelement_range_errorVKeI (D, D);
D Kconcatenate_asVKdMM3I (D, D, D);
extern _KLsealed_generic_functionGVKe KcellQVdfmc_flow_graph;
D KbytesPVdfmc_harp_cgMM0I (D back_end_, D word_);
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
D Kmake_indirection_variableYharp_debug_infoVharpMM0I (D, D, D, D, D);
extern _KLsimple_methodGVKe Kconcatenate_asVKdMM0;
extern _KLsimple_methodGVKe Kconcatenate_asVKdMM1;
extern _KLsealed_generic_functionGVKe KCfunction_nextQVdfmc_modeling;
D Kmake_g_registerYbase_harpVharpMM0I (D, D, D, D);
extern _KLsimple_methodGVKe Kemit_objectsVdfmc_harp_cg;
extern _KLclassGVKd KLBc_callable_functionGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBc_callable_functionGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KCfunction_signatureVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KCsignature_requiredVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Kop__move_outof_argumentPVdfmc_harp_cg;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLincremental_generic_functionGVKe KelementVKd;
extern _KLclassGVKd KLBraw_aggregate_typeGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBraw_aggregate_typeGVdfmc_modelingW;
extern _KLsimple_methodGVKe Kins__load_address_of_stack_arg_nYnative_instructionsVharp_nativeMM0;
extern _KLclassGVKd KLsfregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLsfregGYharp_registersVharpW;
D Kmake_n_registerYbase_harpVharpMM0I (D, D, D, D);
extern _KLsimple_methodGVKe Kins__load_stack_arg_nYharp_instructionsVharpMM0;
extern _KLsimple_methodGVKe Kins__move_to_sfregYnative_instructionsVharp_nativeMM0;
extern _KLclassGVKd KLdfregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLdfregGYharp_registersVharpW;
extern _KLsimple_methodGVKe Kins__dldYnative_instructionsVharp_nativeMM0;
D Kparameter_type_sizeVdfmc_harp_cgMM0I (D, D);
extern _KLsealed_generic_functionGVKe KbytesPVdfmc_harp_cg;
extern _KLclassGVKd KLBlambdaGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlambdaGVdfmc_modelingW;
D KerrorVKdMM1I (D, D);
extern _KLsimple_methodGVKe Kins__load_count_adjusting_stackYnative_instructionsVharp_nativeMM0;
extern _KLsimple_methodGVKe Kins__adjust_stackYnative_instructionsVharp_nativeMM0;
extern _KLsealed_generic_functionGVKe KbodyVdfmc_modeling;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_3VKi;
extern _KLsealed_generic_functionGVKe Kcurrent_back_endVdfmc_common;
extern _KLsealed_generic_functionGVKe Ktail_callQVdfmc_harp_cg;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLclassGVKd KLbind_exitGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLbind_exitGVdfmc_flow_graphW;
extern _KLclassGVKd KLunwind_protectGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLunwind_protectGVdfmc_flow_graphW;
extern _KLclassGVKd KLifGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLifGVdfmc_flow_graphW;
extern _KLclassGVKd KLend_blockGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLend_blockGVdfmc_flow_graphW;
extern _KLclassGVKd KLreturnGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLreturnGVdfmc_flow_graphW;
extern _KLclassGVKd KLexitGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLexitGVdfmc_flow_graphW;
extern _KLclassGVKd KLendGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLendGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Knext_computationVdfmc_flow_graph;
extern _KLclassGVKd KLcomputationGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcomputationGVdfmc_flow_graphW;
extern _KLincremental_generic_functionGVKe Kmake_tagYbase_harpVharp;
extern _KLsimple_methodGVKe Kins__lea0Ynative_instructionsVharp_nativeMM0;
D Kruntime_referenceVdfmc_harp_cgI (D);
extern _KLkeyword_methodGVKe Kins__jmpYnative_instructionsVharp_nativeMM0;
D Kins__tagYharp_instructionsVharpMM0I (D, D);
D KCfunction_signatureVdfmc_modelingMM1I (D);
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
extern _KLsimple_methodGVKe KCsignature_number_requiredVdfmc_modelingMM0;
D KelementVKdMM11I (D, D, D, D);
extern _KLsealed_generic_functionGVKe Kunsupplied_objectVKi;
D Kins__load_stack_arg_nYharp_instructionsVharpMM0I (D, D, D);
extern D Ttail_call_optimizeQTVdfmc_harp_cg;
extern D Ttail_callsTVdfmc_harp_cg;
extern D Ddylan_call_inVdfmc_harp_cg;
extern D Ddylan_call_in_syscallVdfmc_harp_cg;

/* Defined object declarations */

D Kreg_float_machine_argumentsPVdfmc_harp_cgMM0I (D);
D Kreg_machine_argumentsPVdfmc_harp_cgMM0I (D);
D Kemit_prologVdfmc_harp_cgMM0I (D, D);
extern _KLsealed_generic_functionGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cg;
D Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0I (D, D, D, D);
D Koptional_argumentsQVdfmc_harp_cgMM4I (D);
extern _KLsealed_generic_functionGVKe Koptional_argumentsQVdfmc_harp_cg;
extern _KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM0;
D Koptional_argumentsQVdfmc_harp_cgMM0I (D);
extern _KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM1;
D Koptional_argumentsQVdfmc_harp_cgMM1I (D lambda_);
extern _KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM2;
D Koptional_argumentsQVdfmc_harp_cgMM2I (D lambda_);
extern _KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM3;
D Koptional_argumentsQVdfmc_harp_cgMM3I (D);
extern _KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM4;
static _KLpairGVKd K16;
static _KLpairGVKd K17;
static _KLpairGVKd K18;
static _KLpairGVKd K19;
static _KLpairGVKd K20;
static _KLbyte_stringGVKd_19 K21;
static _KLsignatureGVKe K22;
static _KLsimple_object_vectorGVKd_1 K23;
static _KLsignatureAvaluesGVKi K24;
static _KLsimple_object_vectorGVKd_1 K25;
static _KLsignatureAvaluesGVKi K26;
static _KLsimple_object_vectorGVKd_1 K27;
static _KLsignatureAvaluesGVKi K28;
static _KLsimple_object_vectorGVKd_1 K29;
static _KLsignatureAvaluesGVKi K30;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K31;
extern _KLsimple_methodGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0;
D Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0I (D, D);
extern _KLsimple_methodGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1;
D Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1I (D, D);
static _KLpairGVKd K36;
static _KLpairGVKd K37;
static _KLbyte_stringGVKd_35 K38;
extern _KLsimple_methodGVKe Kstack_vector_sizeVdfmc_harp_cgMM0;
D Kstack_vector_sizeVdfmc_harp_cgMM0I (D, D);
static _KLsignatureAvaluesGVKi K41;
static _KLsimple_object_vectorGVKd_2 K42;
static _KLsignatureAvaluesGVKi K43;
static _KLsimple_object_vectorGVKd_2 K44;
static _KLsignatureAvaluesGVKi K45;
static _KLsimple_object_vectorGVKd_2 K46;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K47;
extern _KLsealed_generic_functionGVKe Kemit_ffi_pre_prologVdfmc_harp_cg;
static _KLbyte_stringGVKd_15 K49;
D Kmove_arguments_to_virtualsVdfmc_harp_cgMM0I (D, D);
D Kenvironment_prologVdfmc_harp_cgMM0I (D, D);
D Kclosure_indirectionsVdfmc_harp_cgMM0I (D, D);
static _KLbyte_stringGVKd_9 K53;
static _KLbyte_stringGVKd_4 K54;
static _KLbyte_stringGVKd_7 K55;
static _KLpairGVKd K56;
static _KLpairGVKd K57;
extern _KLsimple_methodGVKe Kmake_closure_indirectionVdfmc_harp_cgMM0;
D Kmake_closure_indirectionVdfmc_harp_cgMM0I (D, D, D, D);
static _KLsignatureGVKe K60;
static _KLsimple_object_vectorGVKd_4 K61;
D Kadjust_stack_for_lambdaVdfmc_harp_cgMM0I (D, D);
static _KLbyte_stringGVKd_26 K63;
D Karguments_passed_in_registersPVdfmc_harp_cgMM0I (D);
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K65;
D Kinitialize_temporariesVdfmc_harp_cgMM0I (D, D);
static _KLbyte_stringGVKd_32 K67;
D Kmaximum_tail_call_arg_ctVdfmc_harp_cgMM0I (D, D);
extern _KLsealed_generic_functionGVKe Ktail_call_walkVdfmc_harp_cg;
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM0;
D Ktail_call_walkVdfmc_harp_cgMM0I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM1;
D Ktail_call_walkVdfmc_harp_cgMM1I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM2;
D Ktail_call_walkVdfmc_harp_cgMM2I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM3;
D Ktail_call_walkVdfmc_harp_cgMM3I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM4;
D Ktail_call_walkVdfmc_harp_cgMM4I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM5;
D Ktail_call_walkVdfmc_harp_cgMM5I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM6;
D Ktail_call_walkVdfmc_harp_cgMM6I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM7;
D Ktail_call_walkVdfmc_harp_cgMM7I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM8;
D Ktail_call_walkVdfmc_harp_cgMM8I (D, D, D);
extern _KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM9;
D Ktail_call_walkVdfmc_harp_cgMM9I (D, D, D);
static _KLpairGVKd K90;
static _KLpairGVKd K91;
static _KLpairGVKd K92;
static _KLpairGVKd K93;
static _KLpairGVKd K94;
static _KLpairGVKd K95;
static _KLpairGVKd K96;
static _KLpairGVKd K97;
static _KLpairGVKd K98;
static _KLpairGVKd K99;
static _KLbyte_stringGVKd_14 K100;
extern _KLkeyword_methodGVKe Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0;
static _KLkeyword_signatureAvaluesGVKi K102;
static _KLsimple_object_vectorGVKd_2 K103;
static _KLsymbolGVKd KJsame_optionalsQ_;
static _KLbyte_stringGVKd_15 K105;
static _KLsimple_object_vectorGVKd_2 K106;
static _KLsimple_object_vectorGVKd_1 K107;
static _KLsignatureAvaluesGVKi K108;
static _KLsimple_object_vectorGVKd_3 K109;
static _KLsignatureAvaluesGVKi K110;
static _KLsimple_object_vectorGVKd_3 K111;
static _KLsignatureAvaluesGVKi K112;
static _KLsimple_object_vectorGVKd_3 K113;
static _KLsignatureAvaluesGVKi K114;
static _KLsimple_object_vectorGVKd_3 K115;
static _KLsignatureAvaluesGVKi K116;
static _KLsimple_object_vectorGVKd_3 K117;
static _KLsignatureAvaluesGVKi K118;
static _KLsimple_object_vectorGVKd_3 K119;
static _KLsignatureAvaluesGVKi K120;
static _KLsimple_object_vectorGVKd_3 K121;
static _KLsignatureAvaluesGVKi K122;
static _KLsimple_object_vectorGVKd_3 K123;
static _KLsignatureAvaluesGVKi K124;
static _KLsignatureAvaluesGVKi K125;
static _KLsimple_object_vectorGVKd_3 K126;
extern _KLsimple_methodGVKe Kemit_ffi_pre_prologVdfmc_harp_cgMM0;
D Kemit_ffi_pre_prologVdfmc_harp_cgMM0I (D, D);
extern _KLsimple_methodGVKe Kemit_ffi_pre_prologVdfmc_harp_cgMM1;
D Kemit_ffi_pre_prologVdfmc_harp_cgMM1I (D, D);
static _KLpairGVKd K131;
static _KLpairGVKd K132;
static _KLbyte_stringGVKd_19 K133;
static _KLbyte_stringGVKd_9 K134;
static _KLbyte_stringGVKd_28 K135;
D Karg_size_on_stack_in_wordsVdfmc_harp_cgMM0I (D, D);
static _KLsymbolGVKd KJarg_count_;
static _KLbyte_stringGVKd_9 K138;
static _KLsignatureGVKe K139;
static _KLsimple_object_vectorGVKd_2 K140;
static _KLsignatureGVKe K141;
extern _KLsimple_methodGVKe Kop__c_load_argumentsVdfmc_harp_cgMM0;
D Kop__c_load_argumentsVdfmc_harp_cgMM0I (D, D);
static _KLsignatureGVKe K144;
static _KLsimple_object_vectorGVKd_1 K145;

/* Indirection variables */

static D IKJsame_optionalsQ_ = &KJsame_optionalsQ_;
static D IKJarg_count_ = &KJarg_count_;

/* Variables */

D op__c_load_argumentsVdfmc_harp_cg = &Kop__c_load_argumentsVdfmc_harp_cgMM0;
D optional_argumentsQVdfmc_harp_cg = &Koptional_argumentsQVdfmc_harp_cg;
D stack_vector_sizeVdfmc_harp_cg = &Kstack_vector_sizeVdfmc_harp_cgMM0;
D number_of_stack_allocated_argumentsVdfmc_harp_cg = &Knumber_of_stack_allocated_argumentsVdfmc_harp_cg;

/* Objects */

_KLsealed_generic_functionGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cg = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (D) 5,
  &K38,
  &K36,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Koptional_argumentsQVdfmc_harp_cg = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (D) 1,
  &K21,
  &K16,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K30,
  &Koptional_argumentsQVdfmc_harp_cgMM0I
};

_KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K28,
  &Koptional_argumentsQVdfmc_harp_cgMM1I
};

_KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K26,
  &Koptional_argumentsQVdfmc_harp_cgMM2I
};

_KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K24,
  &Koptional_argumentsQVdfmc_harp_cgMM3I
};

_KLsimple_methodGVKe Koptional_argumentsQVdfmc_harp_cgMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K22,
  &Koptional_argumentsQVdfmc_harp_cgMM4I
};

static _KLpairGVKd K16 = {
  &KLpairGVKdW /* wrapper */,
  &Koptional_argumentsQVdfmc_harp_cgMM0,
  &K17
};

static _KLpairGVKd K17 = {
  &KLpairGVKdW /* wrapper */,
  &Koptional_argumentsQVdfmc_harp_cgMM1,
  &K18
};

static _KLpairGVKd K18 = {
  &KLpairGVKdW /* wrapper */,
  &Koptional_argumentsQVdfmc_harp_cgMM2,
  &K19
};

static _KLpairGVKd K19 = {
  &KLpairGVKdW /* wrapper */,
  &Koptional_argumentsQVdfmc_harp_cgMM3,
  &K20
};

static _KLpairGVKd K20 = {
  &KLpairGVKdW /* wrapper */,
  &Koptional_argumentsQVdfmc_harp_cgMM4,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_19 K21 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 77,
  "optional-arguments?"
};

static _KLsignatureGVKe K22 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944069,
  &K23
};

static _KLsimple_object_vectorGVKd_1 K23 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcallGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K24 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K25,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K25 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLBmethodGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K26 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K27,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K27 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLBgeneric_functionGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K28 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K29,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K29 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLBiepGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K30 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &KDsignature_LobjectG_typesVKi,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K31 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 65593,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &Knumber_of_stack_allocated_argumentsVdfmc_harp_cg
};

_KLsimple_methodGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K45,
  &Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0I
};

_KLsimple_methodGVKe Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K43,
  &Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1I
};

static _KLpairGVKd K36 = {
  &KLpairGVKdW /* wrapper */,
  &Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0,
  &K37
};

static _KLpairGVKd K37 = {
  &KLpairGVKdW /* wrapper */,
  &Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_35 K38 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 141,
  "number-of-stack-allocated-arguments"
};

_KLsimple_methodGVKe Kstack_vector_sizeVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K41,
  &Kstack_vector_sizeVdfmc_harp_cgMM0I
};

static _KLsignatureAvaluesGVKi K41 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K42,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K42 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLsimple_callGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K43 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K44,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K44 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLfunction_callGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K45 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K46,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K46 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLBiepGVdfmc_modeling
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K47 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 65593,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_ffi_pre_prologVdfmc_harp_cg
};

_KLsealed_generic_functionGVKe Kemit_ffi_pre_prologVdfmc_harp_cg = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (D) 5,
  &K133,
  &K131,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLbyte_stringGVKd_15 K49 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "function prolog"
};

static _KLbyte_stringGVKd_9 K53 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "anonymous"
};

static _KLbyte_stringGVKd_4 K54 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 17,
  "%s%d"
};

static _KLbyte_stringGVKd_7 K55 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 29,
  "closed_"
};

static _KLpairGVKd K56 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcatenate_asVKdMM1,
  &K57
};

static _KLpairGVKd K57 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcatenate_asVKdMM0,
  &KPempty_listVKi
};

_KLsimple_methodGVKe Kmake_closure_indirectionVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_4,
  &K60,
  &Kmake_closure_indirectionVdfmc_harp_cgMM0I
};

static _KLsignatureGVKe K60 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944081,
  &K61
};

static _KLsimple_object_vectorGVKd_4 K61 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KLharp_back_endGYbase_harpVharp,
  &KLbyte_stringGVKd,
  &KLintegerGVKd,
  &KLbooleanGVKd
};

static _KLbyte_stringGVKd_26 K63 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 105,
  "move arguments to virtuals"
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K65 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 65593,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &KbytesPVdfmc_harp_cg
};

static _KLbyte_stringGVKd_32 K67 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 129,
  "Fell through select cases on %=."
};

_KLsealed_generic_functionGVKe Ktail_call_walkVdfmc_harp_cg = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &KDsignature_LobjectG_object_rest_value_3VKi,
  (D) 1,
  &K100,
  &K90,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K125,
  &Ktail_call_walkVdfmc_harp_cgMM0I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K124,
  &Ktail_call_walkVdfmc_harp_cgMM1I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K122,
  &Ktail_call_walkVdfmc_harp_cgMM2I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K120,
  &Ktail_call_walkVdfmc_harp_cgMM3I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K118,
  &Ktail_call_walkVdfmc_harp_cgMM4I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM5 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K116,
  &Ktail_call_walkVdfmc_harp_cgMM5I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM6 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K114,
  &Ktail_call_walkVdfmc_harp_cgMM6I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM7 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K112,
  &Ktail_call_walkVdfmc_harp_cgMM7I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM8 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K110,
  &Ktail_call_walkVdfmc_harp_cgMM8I
};

_KLsimple_methodGVKe Ktail_call_walkVdfmc_harp_cgMM9 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K108,
  &Ktail_call_walkVdfmc_harp_cgMM9I
};

static _KLpairGVKd K90 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM0,
  &K91
};

static _KLpairGVKd K91 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM1,
  &K92
};

static _KLpairGVKd K92 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM2,
  &K93
};

static _KLpairGVKd K93 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM3,
  &K94
};

static _KLpairGVKd K94 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM4,
  &K95
};

static _KLpairGVKd K95 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM5,
  &K96
};

static _KLpairGVKd K96 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM6,
  &K97
};

static _KLpairGVKd K97 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM7,
  &K98
};

static _KLpairGVKd K98 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM8,
  &K99
};

static _KLpairGVKd K99 = {
  &KLpairGVKdW /* wrapper */,
  &Ktail_call_walkVdfmc_harp_cgMM9,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_14 K100 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "tail-call-walk"
};

_KLkeyword_methodGVKe Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K102,
  &key_mep_4,
  &Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0I,
  &K103
};

static _KLkeyword_signatureAvaluesGVKi K102 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817609,
  &K106,
  &K107,
  &KDsignature_LobjectG_typesVKi,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K103 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJsame_optionalsQ_,
  &KPfalseVKi
};

static _KLsymbolGVKd KJsame_optionalsQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K105
};

static _KLbyte_stringGVKd_15 K105 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "same-optionals?"
};

static _KLsimple_object_vectorGVKd_2 K106 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLobjectGVKd
};

static _KLsimple_object_vectorGVKd_1 K107 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KJsame_optionalsQ_
};

static _KLsignatureAvaluesGVKi K108 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K109,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K109 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLfunction_callGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K110 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K111,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K111 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLbind_exitGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K112 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K113,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K113 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLunwind_protectGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K114 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K115,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K115 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLifGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K116 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K117,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K117 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLend_blockGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K118 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K119,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K119 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLreturnGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K120 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K121,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K121 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLexitGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K122 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K123,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K123 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLendGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLsignatureAvaluesGVKi K124 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &KDsignature_LobjectG_typesVKi,
  &KDsignature_LintegerG_typesVKi
};

static _KLsignatureAvaluesGVKi K125 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K126,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_3 K126 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLcomputationGVdfmc_flow_graph,
  &KLobjectGVKd,
  &KLobjectGVKd
};

_KLsimple_methodGVKe Kemit_ffi_pre_prologVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K141,
  &Kemit_ffi_pre_prologVdfmc_harp_cgMM0I
};

_KLsimple_methodGVKe Kemit_ffi_pre_prologVdfmc_harp_cgMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K139,
  &Kemit_ffi_pre_prologVdfmc_harp_cgMM1I
};

static _KLpairGVKd K131 = {
  &KLpairGVKdW /* wrapper */,
  &Kemit_ffi_pre_prologVdfmc_harp_cgMM0,
  &K132
};

static _KLpairGVKd K132 = {
  &KLpairGVKdW /* wrapper */,
  &Kemit_ffi_pre_prologVdfmc_harp_cgMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_19 K133 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 77,
  "emit-ffi-pre-prolog"
};

static _KLbyte_stringGVKd_9 K134 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "__stdcall"
};

static _KLbyte_stringGVKd_28 K135 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 113,
  "call-in FFI entry pre-prolog"
};

static _KLsymbolGVKd KJarg_count_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K138
};

static _KLbyte_stringGVKd_9 K138 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "arg-count"
};

static _KLsignatureGVKe K139 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K140
};

static _KLsimple_object_vectorGVKd_2 K140 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLBc_callable_functionGVdfmc_modeling
};

static _KLsignatureGVKe K141 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K106
};

_KLsimple_methodGVKe Kop__c_load_argumentsVdfmc_harp_cgMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &rest_xep_1,
  &K144,
  &Kop__c_load_argumentsVdfmc_harp_cgMM0I
};

static _KLsignatureGVKe K144 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 42991621,
  &K145
};

static _KLsimple_object_vectorGVKd_1 K145 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_back_endGYbase_harpVharp
};

/* Code */

D Kreg_float_machine_argumentsPVdfmc_harp_cgMM0I (D back_end_) {
  D Uobject_;
  D T3_0;
  D T4_0;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10_0;
  D T11;
  D T12;
  D T13;
  D T14_0;
  _KLsimple_object_vectorGVKd_1 T15 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T16_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:340
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  T5 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  T6 = SLOT_VALUE_INITD(T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  Uobject_ = CONGRUENT_CALL1(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  T7 = primitive_instanceQ(Uobject_,&KLBc_callable_functionGVdfmc_modeling);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:342
    T8 = SLOT_VALUE(back_end_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:342
    T9 = SLOT_VALUE_INITD(T8, 30);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:342
    T10_0 = T9;
    T4_0 = T10_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
    T11 = primitive_instanceQ(Uobject_,&KLBlambdaGVdfmc_modeling);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
    if (T11 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:343
      T12 = SLOT_VALUE(back_end_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:343
      T13 = SLOT_VALUE_INITD(T12, 29);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:343
      T14_0 = T13;
      T3_0 = T14_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
      T15.vector_element_[0] = Uobject_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
      T16_0 = KerrorVKdMM1I(&K67, &T15);
      T3_0 = T16_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:341
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:340
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kreg_machine_argumentsPVdfmc_harp_cgMM0I (D back_end_) {
  D Uobject_;
  D T3_0;
  D T4_0;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10_0;
  D T11;
  D T12;
  D T13;
  D T14_0;
  _KLsimple_object_vectorGVKd_1 T15 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T16_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:333
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  T5 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  T6 = SLOT_VALUE_INITD(T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  Uobject_ = CONGRUENT_CALL1(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  T7 = primitive_instanceQ(Uobject_,&KLBc_callable_functionGVdfmc_modeling);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:335
    T8 = SLOT_VALUE(back_end_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:335
    T9 = SLOT_VALUE_INITD(T8, 28);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:335
    T10_0 = T9;
    T4_0 = T10_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
    T11 = primitive_instanceQ(Uobject_,&KLBlambdaGVdfmc_modeling);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
    if (T11 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:336
      T12 = SLOT_VALUE(back_end_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:336
      T13 = SLOT_VALUE_INITD(T12, 27);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:336
      T14_0 = T13;
      T3_0 = T14_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
      T15.vector_element_[0] = Uobject_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
      T16_0 = KerrorVKdMM1I(&K67, &T15);
      T3_0 = T16_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:334
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:333
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kemit_prologVdfmc_harp_cgMM0I (D back_end_, D o_) {
  D T3;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:8
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:9
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(o_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:9
  ENGINE_NODE_CALL_PROLOG(&Kemit_ffi_pre_prologVdfmc_harp_cg, &K47, 2);
  ENGINE_NODE_CALL2(&K47, back_end_, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:11
  Kins__remYharp_instructionsVharpMM0I(back_end_, &K49);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:12
  Kmove_arguments_to_virtualsVdfmc_harp_cgMM0I(back_end_, o_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:13
  T4 = Kenvironment_prologVdfmc_harp_cgMM0I(back_end_, o_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:8
  MV_SET_COUNT(0);
  return(T4);
}

D Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0I (D back_end_, D object_, D Urest_, D same_optionalsQ_) {
  D T5_0;
  D optionalsQ_;
  D T7;
  D T8_0;
  D T9_0;
  D T10;
  D T11_0;
  D T12_0;
  D T13_0;
  D T14_0;
  D T15_0;
  D T16_0;
  D T17_0;
  D T18_0;
  D T19_0;
  D T20_0;
  D T21_0;
  D T22_0;
  D ct_;
  D T24;
  D T25;
  D T26;
  D T27;
  D T28;
  D T29_0;
  D T30_0;
  D T31_0;
  D T32_0;
  D T33_0;
  D T34_0;
  D T35_0;
  D T36_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:270
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:273
  ENGINE_NODE_CALL_PROLOG(&Knumber_of_stack_allocated_argumentsVdfmc_harp_cg, &K31, 2);
  ct_ = ENGINE_NODE_CALL2(&K31, back_end_, object_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:274
  if (same_optionalsQ_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:276
    T5_0 = ct_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:276
    T29_0 = T5_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T5_0);
      primitive_type_check(T29_0, &KLintegerGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T22_0 = T29_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:278
    CONGRUENT_CALL_PROLOG(&Koptional_argumentsQVdfmc_harp_cg, 1);
    optionalsQ_ = CONGRUENT_CALL1(object_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:279
    if (optionalsQ_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
      T24 = primitive_instanceQ(object_,&KLmethod_callGVdfmc_flow_graph);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
      if (T24 != &KPfalseVKi) {
        T7 = T24;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
        T25 = primitive_instanceQ(object_,&KLengine_node_callGVdfmc_flow_graph);
        T7 = T25;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
      if (T7 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:282
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T8_0 = CONGRUENT_CALL2((D) 5, ct_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:282
        T31_0 = T8_0;
        {
          MV_CHECK_TYPE_PROLOGUE(T8_0);
          primitive_type_check(T31_0, &KLintegerGVKd);
          MV_CHECK_TYPE_EPILOGUE();
        }
        T19_0 = T31_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
        T26 = primitive_instanceQ(object_,&KLsimple_callGVdfmc_flow_graph);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
        if (T26 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
          T27 = primitive_instanceQ(optionalsQ_,&KLBiepGVdfmc_modeling);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
          if (T27 != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:285
            CONGRUENT_CALL_PROLOG(&KAVKd, 2);
            T9_0 = CONGRUENT_CALL2((D) 5, ct_);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:285
            T33_0 = T9_0;
            {
              MV_CHECK_TYPE_PROLOGUE(T9_0);
              primitive_type_check(T33_0, &KLintegerGVKd);
              MV_CHECK_TYPE_EPILOGUE();
            }
            T16_0 = T33_0;
          } else {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
            T28 = primitive_instanceQ(optionalsQ_,&KLBgeneric_functionGVdfmc_modeling);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
            if (T28 != &KPfalseVKi) {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:287
              CONGRUENT_CALL_PROLOG(&Kcall_congruentQVdfmc_flow_graph, 1);
              T10 = CONGRUENT_CALL1(object_);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:287
              if (T10 != &KPfalseVKi) {
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:287
                CONGRUENT_CALL_PROLOG(&KAVKd, 2);
                T11_0 = CONGRUENT_CALL2((D) 5, ct_);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:287
                T35_0 = T11_0;
                {
                  MV_CHECK_TYPE_PROLOGUE(T11_0);
                  primitive_type_check(T35_0, &KLintegerGVKd);
                  MV_CHECK_TYPE_EPILOGUE();
                }
                T13_0 = T35_0;
              } else {
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:288
                T12_0 = ct_;
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:288
                T36_0 = T12_0;
                {
                  MV_CHECK_TYPE_PROLOGUE(T12_0);
                  primitive_type_check(T36_0, &KLintegerGVKd);
                  MV_CHECK_TYPE_EPILOGUE();
                }
                T13_0 = T36_0;
              }
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:287
              T15_0 = T13_0;
            } else {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:289
              T14_0 = ct_;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:289
              T34_0 = T14_0;
              {
                MV_CHECK_TYPE_PROLOGUE(T14_0);
                primitive_type_check(T34_0, &KLintegerGVKd);
                MV_CHECK_TYPE_EPILOGUE();
              }
              T15_0 = T34_0;
            }
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
            T16_0 = T15_0;
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:284
          T18_0 = T16_0;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:291
          CONGRUENT_CALL_PROLOG(&KAVKd, 2);
          T17_0 = CONGRUENT_CALL2((D) 5, ct_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:291
          T32_0 = T17_0;
          {
            MV_CHECK_TYPE_PROLOGUE(T17_0);
            primitive_type_check(T32_0, &KLintegerGVKd);
            MV_CHECK_TYPE_EPILOGUE();
          }
          T18_0 = T32_0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
        T19_0 = T18_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:281
      T21_0 = T19_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:294
      T20_0 = ct_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:294
      T30_0 = T20_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T20_0);
        primitive_type_check(T30_0, &KLintegerGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T21_0 = T30_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:279
    T22_0 = T21_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:274
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:270
  MV_SET_COUNT(1);
  return(T22_0);
}

D Koptional_argumentsQVdfmc_harp_cgMM4I (D call_) {
  D f_;
  D T3;
  D T4_0;
  D T5_0;
  D T6_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:326
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:327
  CONGRUENT_CALL_PROLOG(&Kcall_effective_functionPVdfmc_harp_cg, 1);
  f_ = CONGRUENT_CALL1(call_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:329
  CONGRUENT_CALL_PROLOG(&Koptional_argumentsQVdfmc_harp_cg, 1);
  T3 = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:329
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:329
    T4_0 = f_;
    T6_0 = T4_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:329
    T5_0 = &KPfalseVKi;
    T6_0 = T5_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:329
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:326
  MV_SET_COUNT(1);
  return(T6_0);
}

D Koptional_argumentsQVdfmc_harp_cgMM0I (D lambda_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:310
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:311
  T2_0 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:310
  MV_SET_COUNT(1);
  return(T2_0);
}

D Koptional_argumentsQVdfmc_harp_cgMM1I (D lambda_) {
  D T2;
  D T3;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:314
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:315
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  T2 = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:315
  CONGRUENT_CALL_PROLOG(&Ksignature_specVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:315
  T4_0 = CALL1(&Kspec_argument_optionalsQVdfmc_definitions, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:314
  MV_SET_COUNT(1);
  return(T4_0);
}

D Koptional_argumentsQVdfmc_harp_cgMM2I (D lambda_) {
  D T2;
  D Utmp_;
  D T4;
  D T5;
  D T6;
  D T7_0;
  D T8_0;
  D T9_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:318
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  T2 = Ksignature_specVdfmc_modelingMM0I(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  CONGRUENT_CALL_PROLOG(&Kspec_argument_keyQVdfmc_definitions, 1);
  Utmp_ = CONGRUENT_CALL1(T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  if (Utmp_ != &KPfalseVKi) {
    T6 = Utmp_;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
    CONGRUENT_CALL_PROLOG(&Kspec_argument_rest_variable_specVdfmc_definitions, 1);
    T4 = CONGRUENT_CALL1(T2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
    if (T4 != &KPfalseVKi) {
      T5 = &KPtrueVKi;
    } else {
      T5 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
    T6 = T5;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  if (T6 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
    T7_0 = &KPtrueVKi;
    T9_0 = T7_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
    T8_0 = &KPfalseVKi;
    T9_0 = T8_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:319
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:318
  MV_SET_COUNT(1);
  return(T9_0);
}

D Koptional_argumentsQVdfmc_harp_cgMM3I (D lambda_) {
  D T2;
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:322
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:323
  CONGRUENT_CALL_PROLOG(&Ksignature_specVdfmc_modeling, 1);
  T2 = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:323
  T3_0 = CALL1(&Kspec_argument_optionalsQVdfmc_definitions, T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:322
  MV_SET_COUNT(1);
  return(T3_0);
}

D Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0I (D back_end_, D lambda_) {
  D T3;
  D T4;
  D T5;
  D T6_0;
  D T7;
  D T8;
  D T9_0;
  D T10_0;
  D T11;
  D T12;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:248
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  CONGRUENT_CALL_PROLOG(&KparametersVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
  T4 = CONGRUENT_CALL1(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:252
  T7 = SLOT_VALUE(back_end_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:252
  T8 = SLOT_VALUE_INITD(T7, 52);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  CONGRUENT_CALL_PROLOG(&K_VKd, 2);
  T5 = CONGRUENT_CALL2(T4, T8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  CONGRUENT_CALL_PROLOG(&KLVKd, 2);
  T10_0 = CONGRUENT_CALL2((D) 1, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  T11 = T10_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  if (T11 != &KPfalseVKi) {
    T12 = T5;
  } else {
    T12 = (D) 1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:251
  T9_0 = T12;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:248
  T6_0 = T9_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T9_0);
    primitive_type_check(T6_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:248
  MV_SET_COUNT(1);
  return(T6_0);
}

D Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM1I (D back_end_, D call_) {
  D T3;
  DWORD total_args_;
  D T5;
  D T6;
  D T7;
  DWORD T8;
  DWORD T9;
  DWORD T10;
  DWORD T11;
  D T12;
  D T13;
  DWORD T14;
  DWORD T15;
  DWORD T16;
  DWORD T17;
  D T18;
  DWORD T19;
  DWORD T20;
  D T21;
  D T22;
  DWORD T23;
  DWORD T24;
  DWORD T25;
  D T26;
  DWORD T27;
  D T28_0;
  D T29;
  D T30;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:255
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:258
  T5 = SLOT_VALUE_INITD(call_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:258
  T6 = SLOT_VALUE_INITD(T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:260
  T7 = Koptional_argumentsQVdfmc_harp_cgMM4I(call_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:260
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T3 = CALL2(&Kstack_vector_sizeVdfmc_harp_cgMM0, back_end_, call_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T8 = primitive_cast_integer_as_raw(T6);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T9 = primitive_cast_integer_as_raw(T3);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T10 = primitive_machine_word_logxor(T9,1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T11 = primitive_machine_word_add_signal_overflow(T8,T10);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T12 = SLOT_VALUE(back_end_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T13 = SLOT_VALUE_INITD(T12, 52);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T14 = primitive_cast_integer_as_raw(T13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T15 = primitive_machine_word_logxor(T8,1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T16 = primitive_machine_word_subtract_signal_overflow(T14,T15);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    T18 = primitive_machine_word_less_thanQ(1,T16);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    if (T18 != &KPfalseVKi) {
      T17 = T16;
    } else {
      T17 = 1;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:262
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T19 = primitive_machine_word_logxor(T17,1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:261
    T20 = primitive_machine_word_add_signal_overflow(T11,T19);
    total_args_ = T20;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
    T27 = primitive_cast_integer_as_raw(T6);
    total_args_ = T27;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:260
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T21 = SLOT_VALUE(back_end_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T22 = SLOT_VALUE_INITD(T21, 52);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T23 = primitive_cast_integer_as_raw(T22);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T24 = primitive_machine_word_logxor(T23,1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T25 = primitive_machine_word_subtract_signal_overflow(total_args_,T24);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T26 = primitive_cast_raw_as_integer(T25);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T30 = primitive_machine_word_less_thanQ(1,T25);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  if (T30 != &KPfalseVKi) {
    T29 = T26;
  } else {
    T29 = (D) 1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:267
  T28_0 = T29;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:255
  MV_SET_COUNT(1);
  return(T28_0);
}

D Kstack_vector_sizeVdfmc_harp_cgMM0I (D back_end_, D c_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D Utmp_;
  D T8_0;
  D T9_0;
  D T10_0;
  D T11;
  DWORD T12T, T12;
  D result_T, result_;
  D T14;
  D T15;
  DWORD T16;
  D T17;
  D T18;
  DWORD T19;
  D T20_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:300
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:303
  T11 = SLOT_VALUE_INITD(c_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
  T15 = SLOT_VALUE_INITD(T11, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
  T16 = primitive_cast_integer_as_raw(T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
  T12T = 1;
  result_T = &KPfalseVKi;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    T12 = T12T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    result_ = result_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    T17 = primitive_machine_word_equalQ(T12,T16);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    if (T17 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
      T18 = REPEATED_D_SLOT_VALUE_TAGGED(T11, 1, T12);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
      if (result_ == &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
        T19 = primitive_machine_word_add_signal_overflow(T12,4);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
        T14 = Knew_stack_allocated_dataQVdfmc_harp_cgI(T18);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
        T12T = T19;
        result_T = T14;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:302
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
  if (result_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:306
    CONGRUENT_CALL_PROLOG(&KgeneratorVdfmc_flow_graph, 1);
    T3 = CONGRUENT_CALL1(result_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:306
    T4 = CALL1(&KargumentsVdfmc_flow_graph, T3);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:306
    CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
    T5 = CONGRUENT_CALL1(T4);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:306
    CONGRUENT_CALL_PROLOG(&KAVKd, 2);
    T6 = CONGRUENT_CALL2(T5, (D) 9);
    Utmp_ = T6;
  } else {
    Utmp_ = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
  if (Utmp_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
    T8_0 = Utmp_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
    T20_0 = T8_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T8_0);
      primitive_type_check(T20_0, &KLintegerGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T10_0 = T20_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:307
    T9_0 = (D) 1;
    T10_0 = T9_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:305
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:300
  MV_SET_COUNT(1);
  return(T10_0);
}

D Kmove_arguments_to_virtualsVdfmc_harp_cgMM0I (D back_end_, D lambda_) {
  D function_;
  D stack_shft_;
  D T5;
  D T6;
  D tempF7;
  D T8;
  D parameters_;
  D T10;
  D T11;
  D signature_;
  D T13;
  DWORD T14T, T14;
  DWORD registers_T, registers_;
  DWORD parameter_indexF16T, parameter_indexF16;
  D op__move_outof_argument_;
  D T18;
  D tempF19;
  D tempF20;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;
  D stack_offset_;
  D T27;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37;
  D T38;
  D T39;
  D T40;
  D T41;
  D T42;
  DWORD T43;
  D T44;
  D T45;
  DWORD T46;
  D T47;
  D T48;
  D T49;
  D T50;
  D T51;
  D T52;
  D T53;
  D T54;
  DWORD T55;
  DWORD T56;
  DWORD T57;
  D T58;
  D T59;
  D T60;
  D T61;
  D T62;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:74
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:76
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  function_ = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:77
  stack_shft_ = Kadjust_stack_for_lambdaVdfmc_harp_cgMM0I(back_end_, lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:78
  Kins__remYharp_instructionsVharpMM0I(back_end_, &K63);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
  T36 = primitive_instanceQ(function_,&KLBmethodGVdfmc_modeling);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
  if (T36 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:12
    T35 = function_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
    CONGRUENT_CALL_PROLOG(&KCfunction_nextQVdfmc_modeling, 1);
    T5 = CONGRUENT_CALL1(T35);
    T6 = T5;
  } else {
    T6 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
  if (T6 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:81
    tempF7 = Kmake_g_registerYbase_harpVharpMM0I(back_end_, &KPempty_vectorVKi, &KPfalseVKi, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:82
    T37 = SLOT_VALUE(back_end_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:82
    T38 = SLOT_VALUE_INITD(T37, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:82
    Kins__moveYharp_instructionsVharpMM0I(back_end_, tempF7, T38);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:83
    T39 = SLOT_VALUE(back_end_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:83
    SLOT_VALUE_SETTER(tempF7, T39, 6);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:80
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:78
  stack_offset_ = stack_shft_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:86
  CONGRUENT_CALL_PROLOG(&KparametersVdfmc_modeling, 1);
  T8 = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:86
  parameters_ = CALL2(&Kemit_objectsVdfmc_harp_cg, back_end_, T8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:87
  T40 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:87
  SLOT_VALUE_SETTER(parameters_, T40, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:88
  T41 = primitive_instanceQ(function_,&KLBc_callable_functionGVdfmc_modeling);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:89
  if (T41 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:89
    CONGRUENT_CALL_PROLOG(&KCfunction_signatureVdfmc_modeling, 1);
    T10 = CONGRUENT_CALL1(function_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:89
    T11 = CALL1(&KCsignature_requiredVdfmc_modeling, T10);
    signature_ = T11;
  } else {
    signature_ = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:89
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:98
  T13 = Karguments_passed_in_registersPVdfmc_harp_cgMM0I(back_end_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:103
  T46 = primitive_cast_integer_as_raw(T13);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
  T42 = SLOT_VALUE_INITD(parameters_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
  T43 = primitive_cast_integer_as_raw(T42);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
  T14T = 1;
  registers_T = 1;
  parameter_indexF16T = 1;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    T14 = T14T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    registers_ = registers_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:103
    T48 = primitive_cast_raw_as_integer(registers_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    parameter_indexF16 = parameter_indexF16T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    T58 = primitive_cast_raw_as_integer(parameter_indexF16);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    T44 = primitive_machine_word_equalQ(T14,T43);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    if (T44 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
      T45 = REPEATED_D_SLOT_VALUE_TAGGED(parameters_, 1, T14);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:103
      T47 = primitive_machine_word_less_thanQ(registers_,T46);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:103
      if (T47 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:104
        CONGRUENT_CALL_PROLOG(&Kop__move_outof_argumentPVdfmc_harp_cg, 1);
        op__move_outof_argument_ = CONGRUENT_CALL1(T45);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:105
        primitive_type_check(op__move_outof_argument_, &KLfunctionGVKd);
        T18 = op__move_outof_argument_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:105
        CALL3(T18, back_end_, T45, T48);
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:107
        if (T41 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:92
          if (signature_ != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:93
            T49 = CALL2(&KelementVKd, signature_, T58);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:108
            T50 = T49;
            T51 = T50;
          } else {
            T51 = &KPfalseVKi;
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:92
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:109
          T52 = primitive_instanceQ(T51,&KLBraw_aggregate_typeGVdfmc_modeling);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:109
          if (T52 != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:110
            T34 = stack_offset_;
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:110
            CALL3(&Kins__load_address_of_stack_arg_nYnative_instructionsVharp_nativeMM0, back_end_, T45, T34);
          } else {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
            T53 = primitive_instanceQ(T45,&KLsfregGYharp_registersVharp);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
            if (T53 != &KPfalseVKi) {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:114
              tempF19 = Kmake_n_registerYbase_harpVharpMM0I(back_end_, &KPempty_vectorVKi, &KPfalseVKi, &KPempty_vectorVKi);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:115
              T33 = stack_offset_;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:115
              CALL3(&Kins__load_stack_arg_nYharp_instructionsVharpMM0, back_end_, tempF19, T33);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:116
              CALL3(&Kins__move_to_sfregYnative_instructionsVharp_nativeMM0, back_end_, T45, tempF19);
            } else {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
              T54 = primitive_instanceQ(T45,&KLdfregGYharp_registersVharp);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
              if (T54 != &KPfalseVKi) {
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:118
                tempF20 = Kmake_n_registerYbase_harpVharpMM0I(back_end_, &KPempty_vectorVKi, &KPfalseVKi, &KPempty_vectorVKi);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:119
                T32 = stack_offset_;
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:119
                CALL3(&Kins__load_address_of_stack_arg_nYnative_instructionsVharp_nativeMM0, back_end_, tempF20, T32);
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:120
                CALL4(&Kins__dldYnative_instructionsVharp_nativeMM0, back_end_, T45, tempF20, (D) 1);
              } else {
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:122
                T31 = stack_offset_;
                // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:122
                CALL3(&Kins__load_stack_arg_nYharp_instructionsVharpMM0, back_end_, T45, T31);
              }
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
            }
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:112
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:109
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:125
          T21 = Kparameter_type_sizeVdfmc_harp_cgMM0I(back_end_, T51);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:125
          T30 = stack_offset_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:125
          CONGRUENT_CALL_PROLOG(&KAVKd, 2);
          T22 = CONGRUENT_CALL2(T30, T21);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:125
          stack_offset_ = T22;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:127
          T29 = stack_offset_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:127
          CALL3(&Kins__load_stack_arg_nYharp_instructionsVharpMM0, back_end_, T45, T29);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:128
          T28 = stack_offset_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:128
          CONGRUENT_CALL_PROLOG(&KAVKd, 2);
          T23 = CONGRUENT_CALL2(T28, (D) 5);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:128
          stack_offset_ = T23;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:107
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:103
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
      T55 = primitive_machine_word_add_signal_overflow(T14,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
      T56 = primitive_machine_word_add_signal_overflow(registers_,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
      T57 = primitive_machine_word_add_signal_overflow(parameter_indexF16,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
      T14T = T55;
      registers_T = T56;
      parameter_indexF16T = T57;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:99
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
  T59 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
  T60 = SLOT_VALUE(T59, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
  if (T60 != &KPfalseVKi) {
    T24 = T60;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
    T27 = stack_offset_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
    ENGINE_NODE_CALL_PROLOG(&KbytesPVdfmc_harp_cg, &K65, 2);
    T61 = ENGINE_NODE_CALL2(&K65, back_end_, T27);
    T24 = T61;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:133
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:132
  T62 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:132
  SLOT_VALUE_SETTER(T24, T62, 4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:135
  T25 = Kinitialize_temporariesVdfmc_harp_cgMM0I(back_end_, lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:74
  MV_SET_COUNT(0);
  return(T25);
}

D Kenvironment_prologVdfmc_harp_cgMM0I (D back_end_, D o_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D indirections_;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  _KLsimple_object_vectorGVKd_4 T17 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T18;
  D T19;
  DWORD T20;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:61
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  T13 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  T14 = SLOT_VALUE(T13, 12);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  T15 = SLOT_VALUE_INITD(T14, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  T16 = primitive_instanceQ(&KPfalseVKi,T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  if (T16 == &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
    T17.vector_element_[0] = &KJvalue_;
    T17.vector_element_[1] = &KPfalseVKi;
    T17.vector_element_[2] = &KJtype_;
    T17.vector_element_[3] = T15;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T18 = CONGRUENT_CALL2(&KLtype_errorGVKd, &T17);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
    CONGRUENT_CALL_PROLOG(&KerrorVKd, 2);
    CONGRUENT_CALL2(T18, &KPempty_vectorVKi);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:62
  KputhashVKiI(&KPfalseVKi, T14, (D) 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(o_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
  T4 = CALL1(&KclosureVdfmc_flow_graphMM0, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
  T19 = primitive_idQ(T4,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
  if (T19 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
    T11 = &KPfalseVKi;
    T12 = T11;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
    T5 = CONGRUENT_CALL1(o_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    T6 = CALL1(&Kclosure_sizeVdfmc_flow_graphMM0, T5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    T20 = primitive_cast_integer_as_raw(T6);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    T21 = primitive_machine_word_less_thanQ(1,T20);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    if (T21 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:65
      indirections_ = Kclosure_indirectionsVdfmc_harp_cgMM0I(back_end_, o_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:67
      T22 = SLOT_VALUE(back_end_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:67
      T23 = SLOT_VALUE_INITD(T22, 3);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:68
      T24 = SLOT_VALUE(back_end_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:68
      T25 = SLOT_VALUE_INITD(T24, 4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:66
      Kins__moveYharp_instructionsVharpMM0I(back_end_, T23, T25);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:69
      T8 = Kop__environment_parameterVdfmc_harp_cgMM0I(back_end_, &KPempty_vectorVKi, indirections_);
      T10 = T8;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
      T9 = &KPfalseVKi;
      T10 = T9;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:64
    T12 = T10;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:63
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:61
  MV_SET_COUNT(0);
  return(T12);
}

D Kclosure_indirectionsVdfmc_harp_cgMM0I (D back_end_, D o_) {
  D env_;
  D closure_;
  D len_;
  D environment_offset_;
  D T7T, T7;
  DWORD iF8T, iF8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D value_cellQ_;
  D T15;
  D T16_0;
  D T17_0;
  D inds_;
  D T19_0;
  D TnamesT_;
  D T21;
  DWORD T22;
  D T23;
  D T24;
  D T25;
  D T26;
  D unique_name_;
  _KLsimple_object_vectorGVKd_2 T28 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T29;
  D ambiguousQ_;
  D T31;
  DWORD T32;
  D T33;
  D nameF34;
  _KLsimple_object_vectorGVKd_1 T35 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T36_0;
  D T37;
  DWORD T38;
  DWORD T39;
  DWORD T40;
  DWORD T41;
  D T42;
  D T43;
  DWORD T44;
  D T45;
  D T46;
  D T47_0;
  D T48_0;
  D T49;
  DWORD T50;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:370
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:373
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  env_ = CONGRUENT_CALL1(o_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:374
  closure_ = CALL1(&KclosureVdfmc_flow_graphMM0, env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:375
  len_ = CALL1(&Kclosure_sizeVdfmc_flow_graphMM0, env_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:376
  T17_0 = KmakeVKdMM23I(&KLsimple_object_vectorGVKd, &KPempty_vectorVKi, &KPfalseVKi, len_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:376
  inds_ = T17_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:377
  T19_0 = KmakeVKdMM23I(&KLsimple_object_vectorGVKd, &KPempty_vectorVKi, &KPfalseVKi, len_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:377
  TnamesT_ = T19_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:386
  environment_offset_ = Kclosure_environment_offsetPVdfmc_harp_cgI(back_end_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
  T38 = primitive_cast_integer_as_raw(environment_offset_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
  T7T = closure_;
  iF8T = 1;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    T7 = T7T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    iF8 = iF8T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    T24 = primitive_cast_raw_as_integer(iF8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    T21 = primitive_idQ(T7,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    if (T21 != &KPfalseVKi) {
      T9 = &KPtrueVKi;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T22 = primitive_cast_integer_as_raw(len_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T23 = primitive_machine_word_less_thanQ(iF8,T22);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T25 = primitive_not(T23);
      T9 = T25;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    if (T9 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T26 = SLOT_VALUE_INITD(T7, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:392
      CONGRUENT_CALL_PROLOG(&KnameVdfmc_common, 1);
      T10 = CONGRUENT_CALL1(T26);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:392
      if (T10 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:392
        CONGRUENT_CALL_PROLOG(&KnameVdfmc_common, 1);
        T11 = CONGRUENT_CALL1(T26);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:392
        CONGRUENT_CALL_PROLOG(&Klocal_mangleVdfmc_back_end, 2);
        T12 = CONGRUENT_CALL2(back_end_, T11);
        T13 = T12;
      } else {
        T13 = &K53;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:392
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:380
      ambiguousQ_ = KmemberQVKdMM2I(T13, TnamesT_, &KPempty_vectorVKi, &KEVKd);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:382
      if (ambiguousQ_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:382
        T28.vector_element_[0] = T13;
        T28.vector_element_[1] = T24;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:382
        T29 = Kformat_to_stringYformatVioMM0I(&K54, &T28);
        unique_name_ = T29;
      } else {
        unique_name_ = T13;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:382
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
      T31 = SLOT_VALUE_INITD(TnamesT_, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
      T32 = primitive_cast_integer_as_raw(T31);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
      T33 = primitive_machine_word_unsigned_less_thanQ(iF8,T32);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
      if (T33 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
        REPEATED_D_SLOT_VALUE_TAGGED_SETTER(unique_name_, TnamesT_, 1, iF8);
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
        Kelement_range_errorVKeI(TnamesT_, T24);
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:384
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:391
      T35.vector_element_[0] = unique_name_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:391
      MIEP_CALL_PROLOG(&K56);
      T36_0 = Kconcatenate_asVKdMM3I(&KLbyte_stringGVKd, &K55, &T35);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:391
      nameF34 = T36_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:394
      CONGRUENT_CALL_PROLOG(&KcellQVdfmc_flow_graph, 1);
      value_cellQ_ = CONGRUENT_CALL1(T26);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
      T37 = KbytesPVdfmc_harp_cgMM0I(back_end_, T24);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
      T39 = primitive_cast_integer_as_raw(T37);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
      T40 = primitive_machine_word_logxor(T39,1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
      T41 = primitive_machine_word_add_signal_overflow(T38,T40);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:395
      T42 = primitive_cast_raw_as_integer(T41);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      T15 = CALL4(&Kmake_closure_indirectionVdfmc_harp_cgMM0, back_end_, nameF34, T42, value_cellQ_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      T43 = SLOT_VALUE_INITD(inds_, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      T44 = primitive_cast_integer_as_raw(T43);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      T45 = primitive_machine_word_unsigned_less_thanQ(iF8,T44);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      if (T45 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
        REPEATED_D_SLOT_VALUE_TAGGED_SETTER(T15, inds_, 1, iF8);
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
        Kelement_range_errorVKeI(inds_, T24);
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:396
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T46 = SLOT_VALUE_INITD(T7, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T47_0 = T46;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T48_0 = T47_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T47_0);
        primitive_type_check(T48_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T49 = T48_0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T50 = primitive_machine_word_add_signal_overflow(iF8,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
      T7T = T49;
      iF8T = T50;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:387
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:398
  T16_0 = inds_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:370
  MV_SET_COUNT(1);
  return(T16_0);
}

D Kmake_closure_indirectionVdfmc_harp_cgMM0I (D back_end_, D name_, D offset_, D value_cellQ_) {
  D sub_;
  D T6_0;
  D T7_0;
  D T8_0;
  _KLsimple_object_vectorGVKd_1 T9 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T10;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:357
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:361
  if (value_cellQ_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:362
    sub_ = Kmake_indirection_variableYharp_debug_infoVharpMM0I(back_end_, (D) 17, &KPempty_vectorVKi, name_, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:364
    T9.vector_element_[0] = sub_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:364
    T10 = primitive_copy_vector(&T9);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:364
    T6_0 = Kmake_indirection_variableYharp_debug_infoVharpMM0I(back_end_, offset_, &KPempty_vectorVKi, &KPfalseVKi, T10);
    T8_0 = T6_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:366
    T7_0 = Kmake_indirection_variableYharp_debug_infoVharpMM0I(back_end_, offset_, &KPempty_vectorVKi, name_, &KPempty_vectorVKi);
    T8_0 = T7_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:361
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:357
  MV_SET_COUNT(1);
  return(T8_0);
}

D Kadjust_stack_for_lambdaVdfmc_harp_cgMM0I (D back_end_, D lambda_) {
  D T3;
  D T4;
  D T5_0;
  D no_of_stack_alloc_args_;
  DWORD T7;
  DWORD T8;
  DWORD T9;
  DWORD T10;
  DWORD T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16_0;
  D T17;
  D T18;
  D T19;
  D T20;
  D T21;
  DWORD T22;
  DWORD T23;
  DWORD T24;
  D T25;
  D T26;
  D T27;
  D T28;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:153
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:156
  no_of_stack_alloc_args_ = Knumber_of_stack_allocated_argumentsVdfmc_harp_cgMM0I(back_end_, lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T3 = Kmaximum_tail_call_arg_ctVdfmc_harp_cgMM0I(back_end_, lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T7 = primitive_cast_integer_as_raw(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T8 = primitive_cast_integer_as_raw(no_of_stack_alloc_args_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T9 = primitive_machine_word_logxor(T8,1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T10 = primitive_machine_word_subtract_signal_overflow(T7,T9);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  T12 = primitive_machine_word_less_thanQ(1,T10);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  if (T12 != &KPfalseVKi) {
    T11 = T10;
  } else {
    T11 = 1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:158
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:164
  T26 = primitive_cast_raw_as_integer(T11);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:159
  T13 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:159
  SLOT_VALUE_SETTER(T26, T13, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  T14 = CONGRUENT_CALL1(lambda_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  CONGRUENT_CALL_PROLOG(&Ksignature_specVdfmc_modeling, 1);
  T15 = CONGRUENT_CALL1(T14);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  T16_0 = CALL1(&Kspec_argument_optionalsQVdfmc_definitions, T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  T17 = T16_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  if (T17 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:161
    T4 = Kmake_g_registerYbase_harpVharpMM0I(back_end_, &KPempty_vectorVKi, &KPfalseVKi, &KPempty_vectorVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:161
    T18 = SLOT_VALUE(back_end_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:161
    SLOT_VALUE_SETTER(T4, T18, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:162
    T19 = SLOT_VALUE(back_end_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:162
    T20 = SLOT_VALUE(T19, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:163
    T21 = KbytesPVdfmc_harp_cgMM0I(back_end_, T26);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:164
    T22 = primitive_cast_integer_as_raw(no_of_stack_alloc_args_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:164
    T23 = primitive_machine_word_logxor(T22,1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:164
    T24 = primitive_machine_word_add_signal_overflow(T11,T23);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:164
    T25 = primitive_cast_raw_as_integer(T24);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:162
    CALL4(&Kins__load_count_adjusting_stackYnative_instructionsVharp_nativeMM0, back_end_, T20, T21, T25);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:166
    T27 = SLOT_VALUE(back_end_, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:166
    SLOT_VALUE_SETTER(&KPfalseVKi, T27, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:167
    T28 = KbytesPVdfmc_harp_cgMM0I(back_end_, T26);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:167
    CALL2(&Kins__adjust_stackYnative_instructionsVharp_nativeMM0, back_end_, T28);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:160
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:169
  T5_0 = T26;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:153
  MV_SET_COUNT(1);
  return(T5_0);
}

D Karguments_passed_in_registersPVdfmc_harp_cgMM0I (D back_end_) {
  D Uobject_;
  D T3_0;
  D T4_0;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10_0;
  D T11;
  D T12;
  D T13;
  D T14_0;
  _KLsimple_object_vectorGVKd_1 T15 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T16_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:347
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  T5 = SLOT_VALUE(back_end_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  T6 = SLOT_VALUE_INITD(T5, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
  Uobject_ = CONGRUENT_CALL1(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  T7 = primitive_instanceQ(Uobject_,&KLBc_callable_functionGVdfmc_modeling);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:349
    T8 = SLOT_VALUE(back_end_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:349
    T9 = SLOT_VALUE_INITD(T8, 53);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:349
    T10_0 = T9;
    T4_0 = T10_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
    T11 = primitive_instanceQ(Uobject_,&KLBlambdaGVdfmc_modeling);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
    if (T11 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:350
      T12 = SLOT_VALUE(back_end_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:350
      T13 = SLOT_VALUE_INITD(T12, 52);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:350
      T14_0 = T13;
      T3_0 = T14_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
      T15.vector_element_[0] = Uobject_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
      T16_0 = KerrorVKdMM1I(&K67, &T15);
      T3_0 = T16_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:348
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:347
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kinitialize_temporariesVdfmc_harp_cgMM0I (D back_end_, D lambda_) {
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:148
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:148
  T3 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:148
  MV_SET_COUNT(0);
  return(T3);
}

D Kmaximum_tail_call_arg_ctVdfmc_harp_cgMM0I (D back_end_, D lambda_) {
  D T3;
  D T4;
  D T5_0;
  D T6_0;
  D T7_0;
  D T8_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:175
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:177
  T3 = Ttail_call_optimizeQTVdfmc_harp_cg;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:177
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:178
    CONGRUENT_CALL_PROLOG(&KbodyVdfmc_modeling, 1);
    T4 = CONGRUENT_CALL1(lambda_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:178
    CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
    T5_0 = CONGRUENT_CALL3(T4, &KPfalseVKi, (D) 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:178
    T8_0 = T5_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T5_0);
      primitive_type_check(T8_0, &KLintegerGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T7_0 = T8_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:180
    T6_0 = (D) 1;
    T7_0 = T6_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:177
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:175
  MV_SET_COUNT(1);
  return(T7_0);
}

D Ktail_call_walkVdfmc_harp_cgMM0I (D c_, D last_, D ct_) {
  D T4_0;
  D T5;
  D T6_0;
  D T7;
  D T8_0;
  D T9_0;
  D T10_0;
  D T11;
  D T12_0;
  D T13_0;
  D T14_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:184
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:187
  T11 = primitive_idQ(c_,last_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:186
  if (T11 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:187
    T4_0 = ct_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:187
    T12_0 = T4_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T4_0);
      primitive_type_check(T12_0, &KLintegerGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T10_0 = T12_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:188
    CONGRUENT_CALL_PROLOG(&Knext_computationVdfmc_flow_graph, 1);
    T5 = CONGRUENT_CALL1(c_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:186
    if (T5 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:189
      CONGRUENT_CALL_PROLOG(&Knext_computationVdfmc_flow_graph, 1);
      T7 = CONGRUENT_CALL1(c_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:189
      CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
      T8_0 = CONGRUENT_CALL3(T7, last_, ct_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:189
      T13_0 = T8_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T8_0);
        primitive_type_check(T13_0, &KLintegerGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T9_0 = T13_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:188
      T6_0 = ct_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:188
      T14_0 = T6_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T6_0);
        primitive_type_check(T14_0, &KLintegerGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T9_0 = T14_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:186
    T10_0 = T9_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:186
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:184
  MV_SET_COUNT(1);
  return(T10_0);
}

D Ktail_call_walkVdfmc_harp_cgMM1I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:194
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:195
  T4_0 = ct_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:194
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:194
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM2I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:198
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:199
  T4_0 = ct_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:198
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:198
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM3I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:202
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:203
  T4_0 = ct_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:202
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:202
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM4I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:206
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:207
  T4_0 = ct_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:206
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:206
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM5I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:210
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:211
  T4_0 = ct_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:210
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:210
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM6I (D c_, D last_, D ct_) {
  D T4;
  D T5;
  D T6_0;
  D T7_0;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13_0;
  D T14;
  D T15;
  D T16_0;
  D T17;
  D T18;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:214
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:215
  T8 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:217
  T9 = SLOT_VALUE_INITD(c_, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:217
  T10 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:217
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T4 = CONGRUENT_CALL3(T9, T10, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:218
  T11 = SLOT_VALUE_INITD(c_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:218
  T12 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:218
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T5 = CONGRUENT_CALL3(T11, T12, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  CONGRUENT_CALL_PROLOG(&KLVKd, 2);
  T13_0 = CONGRUENT_CALL2(T4, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  T14 = T13_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  if (T14 != &KPfalseVKi) {
    T15 = ct_;
  } else {
    T15 = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  CONGRUENT_CALL_PROLOG(&KLVKd, 2);
  T16_0 = CONGRUENT_CALL2(T5, T15);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  T17 = T16_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  if (T17 != &KPfalseVKi) {
    T18 = T15;
  } else {
    T18 = T5;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:216
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:215
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T6_0 = CONGRUENT_CALL3(T8, last_, T18);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:214
  T7_0 = T6_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T6_0);
    primitive_type_check(T7_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:214
  MV_SET_COUNT(1);
  return(T7_0);
}

D Ktail_call_walkVdfmc_harp_cgMM7I (D c_, D last_, D ct_) {
  D T4;
  D T5_0;
  D T6_0;
  D T7;
  D T8;
  D T9;
  D T10_0;
  D T11;
  D T12;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:221
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:222
  T7 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:224
  T8 = SLOT_VALUE_INITD(c_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:224
  T9 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:224
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T4 = CONGRUENT_CALL3(T8, T9, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:223
  CONGRUENT_CALL_PROLOG(&KLVKd, 2);
  T10_0 = CONGRUENT_CALL2(T4, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:223
  T11 = T10_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:223
  if (T11 != &KPfalseVKi) {
    T12 = ct_;
  } else {
    T12 = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:223
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:222
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T5_0 = CONGRUENT_CALL3(T7, last_, T12);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:221
  T6_0 = T5_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T5_0);
    primitive_type_check(T6_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:221
  MV_SET_COUNT(1);
  return(T6_0);
}

D Ktail_call_walkVdfmc_harp_cgMM8I (D c_, D last_, D ct_) {
  D T4_0;
  D T5_0;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:227
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:228
  T6 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:228
  CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
  T4_0 = CONGRUENT_CALL3(T6, last_, ct_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:227
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:227
  MV_SET_COUNT(1);
  return(T5_0);
}

D Ktail_call_walkVdfmc_harp_cgMM9I (D c_, D last_, D ct_) {
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D ctF9;
  D T10_0;
  D T11_0;
  D T12_0;
  D T13_0;
  D T14_0;
  D T15;
  D T16_0;
  D T17;
  D T18;
  D T19;
  D T20;
  D T21;
  D T22_0;
  D T23_0;
  D T24_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:231
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:233
  CONGRUENT_CALL_PROLOG(&Kcurrent_back_endVdfmc_common, 0);
  T4 = CONGRUENT_CALL0();
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:233
  CONGRUENT_CALL_PROLOG(&Ktail_callQVdfmc_harp_cg, 2);
  T5 = CONGRUENT_CALL2(T4, c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:233
  if (T5 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:234
    T6 = primitive_read_thread_variable(Ttail_callsTVdfmc_harp_cg);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:234
    T15 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:234
    SLOT_VALUE_SETTER(c_, T15, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:234
    SLOT_VALUE_SETTER(T6, T15, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:234
    primitive_write_thread_variable(Ttail_callsTVdfmc_harp_cg, T15);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    CONGRUENT_CALL_PROLOG(&Kcurrent_back_endVdfmc_common, 0);
    T7 = CONGRUENT_CALL0();
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    T8 = CALL2(&Knumber_of_stack_allocated_slotsVdfmc_harp_cgMM0, T7, c_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    CONGRUENT_CALL_PROLOG(&KLVKd, 2);
    T16_0 = CONGRUENT_CALL2(ct_, T8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    T17 = T16_0;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    if (T17 != &KPfalseVKi) {
      T18 = T8;
    } else {
      T18 = ct_;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:235
    ctF9 = T18;
  } else {
    ctF9 = ct_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:233
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:241
  T19 = primitive_idQ(c_,last_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:240
  if (T19 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:241
    T10_0 = ctF9;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:241
    T22_0 = T10_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T10_0);
      primitive_type_check(T22_0, &KLintegerGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T14_0 = T22_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:242
    T20 = SLOT_VALUE_INITD(c_, 3);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:240
    if (T20 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:243
      T21 = SLOT_VALUE_INITD(c_, 3);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:243
      CONGRUENT_CALL_PROLOG(&Ktail_call_walkVdfmc_harp_cg, 3);
      T12_0 = CONGRUENT_CALL3(T21, last_, ctF9);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:243
      T23_0 = T12_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T12_0);
        primitive_type_check(T23_0, &KLintegerGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T13_0 = T23_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:242
      T11_0 = ctF9;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:242
      T24_0 = T11_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T11_0);
        primitive_type_check(T24_0, &KLintegerGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T13_0 = T24_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:240
    T14_0 = T13_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:240
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:231
  MV_SET_COUNT(1);
  return(T14_0);
}

D Kemit_ffi_pre_prologVdfmc_harp_cgMM0I (D back_end_, D fun_) {
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:17
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:17
  T3 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:17
  MV_SET_COUNT(0);
  return(T3);
}

D Kemit_ffi_pre_prologVdfmc_harp_cgMM1I (D back_end_, D fun_) {
  D T3;
  D callin_handler_;
  D real_entry_tag_;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:23
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:25
  T9 = SLOT_VALUE_INITD(fun_, 13);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:25
  CONGRUENT_CALL_PROLOG(&KEVKd, 2);
  T3 = CONGRUENT_CALL2(T9, &K134);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:25
  if (T3 != &KPfalseVKi) {
    callin_handler_ = Ddylan_call_inVdfmc_harp_cg;
  } else {
    callin_handler_ = Ddylan_call_in_syscallVdfmc_harp_cg;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:25
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:29
  CONGRUENT_CALL_PROLOG(&Kmake_tagYbase_harpVharp, 1);
  real_entry_tag_ = CONGRUENT_CALL1(back_end_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:30
  T10 = SLOT_VALUE(back_end_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:31
  T11 = SLOT_VALUE_INITD(T10, 11);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:32
  T12 = SLOT_VALUE_INITD(T10, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:34
  Kins__remYharp_instructionsVharpMM0I(back_end_, &K135);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:35
  CALL3(&Kins__lea0Ynative_instructionsVharp_nativeMM0, back_end_, T11, real_entry_tag_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:36
  T6 = Karg_size_on_stack_in_wordsVdfmc_harp_cgMM0I(back_end_, fun_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:36
  Kins__moveYharp_instructionsVharpMM0I(back_end_, T12, T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:37
  T7 = Kruntime_referenceVdfmc_harp_cgI(callin_handler_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:37
  CALL5(&Kins__jmpYnative_instructionsVharp_nativeMM0, back_end_, T7, (D) 5, IKJarg_count_, &KPtrueVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:40
  T8 = Kins__tagYharp_instructionsVharpMM0I(back_end_, real_entry_tag_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:23
  MV_SET_COUNT(0);
  return(T8);
}

D Karg_size_on_stack_in_wordsVdfmc_harp_cgMM0I (D back_end_, D function_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11T, T11;
  DWORD i_T, i_;
  D registers_T, registers_;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20;
  D T21_0;
  D T22_0;
  D total_;
  D T24;
  D T25;
  D signature_;
  D T27;
  D T28;
  DWORD T29;
  D T30;
  D T31;
  D T32;
  DWORD T33;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:44
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:46
  signature_ = KCfunction_signatureVdfmc_modelingMM1I(function_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:47
  total_ = (D) 1;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T3 = CALL1(&KCsignature_requiredVdfmc_modeling, signature_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T4 = CALL1(&Kforward_iteration_protocolVKd, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T5 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T6 = MV_GET_ELT(1);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T7 = MV_GET_ELT(2);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T8 = MV_GET_ELT(3);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T9 = MV_GET_ELT(5);
;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:50
  T10 = CALL1(&KCsignature_number_requiredVdfmc_modelingMM0, signature_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T29 = primitive_cast_integer_as_raw(T10);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:51
  T27 = SLOT_VALUE(back_end_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:51
  T28 = SLOT_VALUE_INITD(T27, 53);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  T11T = T5;
  i_T = 1;
  registers_T = T28;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    T11 = T11T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    i_ = i_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    registers_ = registers_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    T14 = CALL3(T8, T3, T11, T6);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    if (T14 != &KPfalseVKi) {
      T15 = &KPtrueVKi;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T30 = primitive_machine_word_less_thanQ(i_,T29);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T31 = primitive_not(T30);
      T15 = T31;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    if (T15 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T16 = CALL2(T9, T3, T11);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:52
      CONGRUENT_CALL_PROLOG(&KLVKd, 2);
      T32 = CONGRUENT_CALL2((D) 1, registers_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:52
      if (T32 == &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:53
        T17 = Kparameter_type_sizeVdfmc_harp_cgMM0I(back_end_, T16);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:53
        T25 = total_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:53
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T18 = CONGRUENT_CALL2(T25, T17);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:53
        total_ = T18;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:52
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T19 = CALL2(T7, T3, T11);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T33 = primitive_machine_word_add_signal_overflow(i_,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      CONGRUENT_CALL_PROLOG(&KAVKd, 2);
      T20 = CONGRUENT_CALL2(registers_, (D) -3);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
      T11T = T19;
      i_T = T33;
      registers_T = T20;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:49
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:57
  T24 = total_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:57
  T21_0 = T24;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:44
  T22_0 = T21_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T21_0);
    primitive_type_check(T22_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:44
  MV_SET_COUNT(1);
  return(T22_0);
}

D Kop__c_load_argumentsVdfmc_harp_cgMM0I (D be_, D regs_) {
  DWORD iF3T, iF3;
  DWORD iF4T, iF4;
  D T5;
  D T6;
  D T7;
  D T8;
  DWORD T9;
  DWORD T10;
  DWORD T11;
  D T12;
  D T13;
  D T14;
  DWORD T15;
  D T16;
  D T17;
  D T18;
  D T19;
  DWORD T20;
  D T21;
  D T22;
  D T23;
  DWORD T24;
  DWORD T25;
  D T26;
  DWORD T27;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:401
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  T6 = SLOT_VALUE_INITD(regs_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:405
  T7 = SLOT_VALUE(be_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:405
  T8 = SLOT_VALUE_INITD(T7, 53);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  T10 = primitive_cast_integer_as_raw(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  T11 = primitive_cast_integer_as_raw(T8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  T12 = primitive_machine_word_less_thanQ(T10,T11);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  if (T12 != &KPfalseVKi) {
    T9 = T10;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    T15 = primitive_cast_integer_as_raw(T8);
    T9 = T15;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:404
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
  iF3T = 1;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    iF3 = iF3T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    T14 = primitive_cast_raw_as_integer(iF3);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    T13 = primitive_machine_word_less_thanQ(iF3,T9);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    if (T13 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:407
      T16 = KelementVKdMM11I(regs_, T14, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:407
      T17 = SLOT_VALUE(be_, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:407
      T18 = SLOT_VALUE_INITD(T17, 28);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:407
      T19 = KelementVKdMM11I(T18, T14, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:407
      Kins__moveYharp_instructionsVharpMM0I(be_, T16, T19);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
      T20 = primitive_machine_word_add_signal_overflow(iF3,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
      iF3T = T20;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:406
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
  iF4T = T9;
L1: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    iF4 = iF4T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    T22 = primitive_cast_raw_as_integer(iF4);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    T21 = primitive_machine_word_less_thanQ(iF4,T10);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    if (T21 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:410
      T23 = KelementVKdMM11I(regs_, T22, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:410
      T24 = primitive_machine_word_logxor(T9,1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:410
      T25 = primitive_machine_word_subtract_signal_overflow(iF4,T24);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:410
      T26 = primitive_cast_raw_as_integer(T25);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:410
      Kins__load_stack_arg_nYharp_instructionsVharpMM0I(be_, T23, T26);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
      T27 = primitive_machine_word_add_signal_overflow(iF4,4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
      iF4T = T27;
      goto L1;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
    T5 = &KPfalseVKi;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:409
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/harp-cg/harp-prolog.dylan:401
  MV_SET_COUNT(0);
  return(T5);
}


/* SYSTEM INIT CODE */

void _Init_dfmc_harp_cg__X_harp_prolog_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsame_optionalsQ_);
    if (T0 != &KJsame_optionalsQ_) {
      primitive_repeated_slot_value_setter(T0, &K107, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K103, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJarg_count_);
    if (T0 != &KJarg_count_) {
      IKJarg_count_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_harp_cg__X_harp_prolog_for_user () {
  return;
}


/* eof */
