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

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 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(8);
define__KLbyte_stringGVKd(2);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(12);
define__KLbyte_stringGVKd(13);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(6);

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

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 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_;
} _KLvirtual_registerGYharp_registersVharp;

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 namespace_name_;
  D home_library_;
} _KLmoduleGVKe;

typedef struct {
  D wrapper;
} _KLintegerGVKd;

typedef struct {
  D wrapper;
  D vr_vect_;
  D green_vr_vect_;
  D next_vreg_id_;
  D allow_vreg_reuse_;
  D gregs_to_reuse_;
  D nregs_to_reuse_;
  D reused_vreg_count_;
  D fresh_vreg_count_;
  D dont_reuse_vregs_;
  D report_on_vreg_reuse_;
  D unique_registers_;
  D allocated_reals_;
  D allocated_preserved_;
  D number_preserved_;
  D raw_size_;
  D next_ng_spill_;
  D next_gc_spill_;
  D next_sf_spill_;
  D next_df_spill_;
  D ng_spill_central_;
  D gc_spill_central_;
  D sf_spill_central_;
  D df_spill_central_;
} _KLvreg_stateGYharp_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_;
} _KLgregGYharp_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_;
} _KLnregGYharp_registersVharp;

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

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 symbol_name_;
} _KLsymbolGVKd;

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

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 xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
} _KLregisterGYharp_registersVharp;

typedef struct {
  D wrapper;
  D sv_instructions_;
  D fp_instructions_;
  D current_bb_;
  D top_block_;
  D bb_colour_flag_;
  D all_the_sdis_;
  D optimize_leaf_case_;
  D all_preserved_mask_;
  D processor_specific_return_offset_;
  D debug_code_select_;
  D taag_no_;
  D blocks_coalesced_yet_;
  D current_instruction_can_be_moved_;
  D prev_instruction_can_be_moved_;
  D word_size_of_bit_set_;
  D block_fixed_offset_;
  D current_block_;
  D with_stack_;
  D code_vector_;
  D pgm_vect_;
  D in_back_end_;
  D building_stack_frame_;
  D bind_exit_frameQ_;
  D reload_registers_;
  D respill_registers_;
  D vreg_state_;
  D function_name_;
  D compiling_defasm_;
  D compiling_call_in_;
  D asm_line_pos_;
  D arg_spill_count_;
  D named_variables_tables_;
  D external_references_;
  D referenced_data_words_;
  D virtual_register_clashes_;
} _KLharp_variablesGYharp_varsVharp;

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


/* 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;
D Ksize_setterVKdMM1I (D, D);
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
D Ksize_setterVKdMM4I (D, D);
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
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 KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
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 KLvirtual_registerGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLvirtual_registerGYharp_registersVharpW;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLmoduleGVKe Kbase_harp_moduleYdylan_userVharp;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLclassGVKd KLvreg_stateGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLvreg_stateGYharp_registersVharpW;
D KaddXVKdMM3I (D, D);
extern _KLclassGVKd KLgregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLgregGYharp_registersVharpW;
extern _KLclassGVKd KLnregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLnregGYharp_registersVharpW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_no_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLsealed_generic_functionGVKe Kvirtual_register_spill_set_setterYharp_registersVharp;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsymbolGVKd KJname_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLharp_back_endGYbase_harpVharp;
extern _KLmm_wrapperGVKi_0 KLharp_back_endGYbase_harpVharpW;
extern _KLclassGVKd KLsfregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLsfregGYharp_registersVharpW;
extern _KLclassGVKd KLdfregGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLdfregGYharp_registersVharpW;
D KerrorVKdMM1I (D, D);
extern _KLincremental_generic_functionGVKe KmakeVKd;
D KaddXVKdMM6I (D, D);
extern _KLincremental_generic_functionGVKe KemptyQVKd;
D KemptyQVKdMM4I (D);
D Kelement_range_errorVKeI (D, D);
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLsimple_methodGVKe Kmove_regYbase_harpVharpMM0;
extern _KLclassGVKd KLregisterGYharp_registersVharp;
extern _KLmm_wrapperGVKi_0 KLregisterGYharp_registersVharpW;
extern _KLclassGVKd KLharp_variablesGYharp_varsVharp;
extern _KLmm_wrapperGVKi_0 KLharp_variablesGYharp_varsVharpW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LintegerG_typesVKi;
extern D Dspill_set_no_reusageYharp_registersVharp;

/* Defined object declarations */

extern _KLsealed_generic_functionGVKe KcolourYbase_harpVharp;
D Knote_vrvect_truncatedYbase_harpVharpMM0I (D, D);
D Kfactorial_addYbase_harpVharpMM0I (D);
extern _KLsimple_methodGVKe KcolourYbase_harpVharpMM0;
D KcolourYbase_harpVharpMM0I (D);
extern _KLsimple_methodGVKe KcolourYbase_harpVharpMM1;
D KcolourYbase_harpVharpMM1I (D);
static _KLpairGVKd K7;
static _KLpairGVKd K8;
static _KLsignatureGVKe K9;
static _KLbyte_stringGVKd_6 K10;
static _KLsignatureGVKe K11;
static _KLsimple_object_vectorGVKd_1 K12;
extern _KLincremental_generic_functionGVKe Karg_spill_locationYbase_harpVharp;
extern _KLsimple_methodGVKe Karg_spill_locationYbase_harpVharpMM0;
D Karg_spill_locationYbase_harpVharpMM0I (D);
extern _KLsimple_methodGVKe Karg_spill_locationYbase_harpVharpMM1;
D Karg_spill_locationYbase_harpVharpMM1I (D);
static _KLpairGVKd K18;
static _KLpairGVKd K19;
static _KLbyte_stringGVKd_18 K20;
extern _KLincremental_generic_functionGVKe Knote_vreg_deadYbase_harpVharp;
extern _KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM0;
D Knote_vreg_deadYbase_harpVharpMM0I (D, D);
extern _KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM1;
D Knote_vreg_deadYbase_harpVharpMM1I (D, D);
extern _KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM2;
D Knote_vreg_deadYbase_harpVharpMM2I (D, D);
static _KLpairGVKd K28;
static _KLpairGVKd K29;
static _KLpairGVKd K30;
static _KLsignatureGVKe K31;
static _KLbyte_stringGVKd_14 K32;
static _KLsimple_object_vectorGVKd_2 K33;
static _KLsignatureGVKe K34;
static _KLsimple_object_vectorGVKd_2 K35;
static _KLsignatureGVKe K36;
static _KLsimple_object_vectorGVKd_2 K37;
extern _KLincremental_generic_functionGVKe Kmark_vreg_no_reusageYbase_harpVharp;
extern _KLsimple_methodGVKe Kmark_vreg_no_reusageYbase_harpVharpMM0;
D Kmark_vreg_no_reusageYbase_harpVharpMM0I (D);
extern _KLsimple_methodGVKe Kmark_vreg_no_reusageYbase_harpVharpMM1;
D Kmark_vreg_no_reusageYbase_harpVharpMM1I (D);
static _KLpairGVKd K43;
static _KLpairGVKd K44;
static _KLbyte_stringGVKd_20 K45;
static _KLsignatureGVKe K46;
extern _KLsealed_generic_functionGVKe Kmake_registerYbase_harpVharp;
extern _KLkeyword_methodGVKe Kmake_registerYbase_harpVharpMM0;
D Kmake_registerYbase_harpVharpMM0I (D, D, D, D, D);
static _KLpairGVKd K50;
static _KLkeyword_signatureAvaluesGVKi K51;
static _KLbyte_stringGVKd_13 K52;
static _KLsimple_object_vectorGVKd_1 K53;
static _KLsimple_object_vectorGVKd_3 K54;
static _KLsymbolGVKd KJreg_class_;
static _KLsymbolGVKd KJindirections_;
static _KLbyte_stringGVKd_12 K57;
static _KLbyte_stringGVKd_9 K58;
D Kmake_g_registerYbase_harpVharpMM0I (D, D, D, D);
D Kmake_n_registerYbase_harpVharpMM0I (D, D, D, D);
D Kmake_sf_registerYbase_harpVharpMM0I (D, D, D, D);
D Kmake_df_registerYbase_harpVharpMM0I (D, D, D, D);
static _KLbyte_stringGVKd_26 K63;
D Kensure_nameYbase_harpVharpMM0I (D, D);
static _KLsymbolGVKd KJid_;
static _KLbyte_stringGVKd_2 K66;
static _KLbyte_stringGVKd_13 K67;
D Kreally_new_nregYbase_harpVharpMM0I (D, D, D);
D Kreally_new_gregYbase_harpVharpMM0I (D, D, D);
static _KLkeyword_signatureAvaluesGVKi K70;
static _KLsimple_object_vectorGVKd_6 K71;
static _KLsimple_object_vectorGVKd_3 K72;
extern _KLincremental_generic_functionGVKe Kmove_regYbase_harpVharp;
static _KLpairGVKd K74;
static _KLsignatureGVKe K75;
static _KLbyte_stringGVKd_8 K76;
static _KLsimple_object_vectorGVKd_3 K77;
extern _KLincremental_generic_functionGVKe Kmake_temp_registerYbase_harpVharp;
extern _KLsimple_methodGVKe Kmake_temp_registerYbase_harpVharpMM0;
D Kmake_temp_registerYbase_harpVharpMM0I (D, D);
static _KLpairGVKd K81;
static _KLsignatureGVKe K82;
static _KLbyte_stringGVKd_18 K83;
static _KLsimple_object_vectorGVKd_2 K84;
extern _KLkeyword_methodGVKe Kmake_sf_registerYbase_harpVharpMM0;
static _KLkeyword_signatureAvaluesGVKi K86;
static _KLsimple_object_vectorGVKd_4 K87;
static _KLsimple_object_vectorGVKd_2 K88;
static _KLsimple_object_vectorGVKd_1 K89;
extern _KLkeyword_methodGVKe Kmake_df_registerYbase_harpVharpMM0;
static _KLkeyword_signatureAvaluesGVKi K91;
static _KLsimple_object_vectorGVKd_1 K92;
extern _KLkeyword_methodGVKe Kmake_g_registerYbase_harpVharpMM0;
static _KLkeyword_signatureAvaluesGVKi K94;
static _KLsimple_object_vectorGVKd_1 K95;
extern _KLkeyword_methodGVKe Kmake_n_registerYbase_harpVharpMM0;
static _KLkeyword_signatureAvaluesGVKi K97;
static _KLsimple_object_vectorGVKd_1 K98;
extern _KLsimple_methodGVKe Knote_vrvect_truncatedYbase_harpVharpMM0;
static _KLsignatureGVKe K100;
static _KLsimple_object_vectorGVKd_2 K101;
extern _KLsimple_methodGVKe Kvirtual_registers_clashYbase_harpVharpMM0;
D Kvirtual_registers_clashYbase_harpVharpMM0I (D vars_, D v1_, D v1_id_, D v2_, D v2_id_);
static _KLsignatureGVKe K104;
static _KLsimple_object_vectorGVKd_5 K105;
extern _KLsimple_methodGVKe Kfactorial_addYbase_harpVharpMM0;
static _KLsignatureAvaluesGVKi K107;

/* Indirection variables */

static D IKJreg_class_ = &KJreg_class_;
static D IKJindirections_ = &KJindirections_;
static D IKJid_ = &KJid_;

/* Variables */

D factorial_addYbase_harpVharp = &Kfactorial_addYbase_harpVharpMM0;
D virtual_registers_clashYbase_harpVharp = &Kvirtual_registers_clashYbase_harpVharpMM0;
D note_vrvect_truncatedYbase_harpVharp = &Knote_vrvect_truncatedYbase_harpVharpMM0;
D make_n_registerYbase_harpVharp = &Kmake_n_registerYbase_harpVharpMM0;
D make_g_registerYbase_harpVharp = &Kmake_g_registerYbase_harpVharpMM0;
D make_df_registerYbase_harpVharp = &Kmake_df_registerYbase_harpVharpMM0;
D make_sf_registerYbase_harpVharp = &Kmake_sf_registerYbase_harpVharpMM0;
D make_temp_registerYbase_harpVharp = &Kmake_temp_registerYbase_harpVharp;
D move_regYbase_harpVharp = &Kmove_regYbase_harpVharp;
D make_registerYbase_harpVharp = &Kmake_registerYbase_harpVharp;
D mark_vreg_no_reusageYbase_harpVharp = &Kmark_vreg_no_reusageYbase_harpVharp;
D note_vreg_deadYbase_harpVharp = &Knote_vreg_deadYbase_harpVharp;
D colourYbase_harpVharp = &KcolourYbase_harpVharp;
D arg_spill_locationYbase_harpVharp = &Karg_spill_locationYbase_harpVharp;

/* Objects */

_KLsealed_generic_functionGVKe KcolourYbase_harpVharp = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K9,
  (D) 1,
  &K10,
  &K7,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe KcolourYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K11,
  &KcolourYbase_harpVharpMM0I
};

_KLsimple_methodGVKe KcolourYbase_harpVharpMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K9,
  &KcolourYbase_harpVharpMM1I
};

static _KLpairGVKd K7 = {
  &KLpairGVKdW /* wrapper */,
  &KcolourYbase_harpVharpMM0,
  &K8
};

static _KLpairGVKd K8 = {
  &KLpairGVKdW /* wrapper */,
  &KcolourYbase_harpVharpMM1,
  &KPempty_listVKi
};

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

static _KLbyte_stringGVKd_6 K10 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 25,
  "colour"
};

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

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

_KLincremental_generic_functionGVKe Karg_spill_locationYbase_harpVharp = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K9,
  &KPfalseVKi,
  &K20,
  &K18,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kbase_harp_moduleYdylan_userVharp,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Karg_spill_locationYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K11,
  &Karg_spill_locationYbase_harpVharpMM0I
};

_KLsimple_methodGVKe Karg_spill_locationYbase_harpVharpMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K9,
  &Karg_spill_locationYbase_harpVharpMM1I
};

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

static _KLpairGVKd K19 = {
  &KLpairGVKdW /* wrapper */,
  &Karg_spill_locationYbase_harpVharpMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_18 K20 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "arg-spill-location"
};

_KLincremental_generic_functionGVKe Knote_vreg_deadYbase_harpVharp = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K31,
  &KPfalseVKi,
  &K32,
  &K28,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kbase_harp_moduleYdylan_userVharp,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K36,
  &Knote_vreg_deadYbase_harpVharpMM0I
};

_KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K34,
  &Knote_vreg_deadYbase_harpVharpMM1I
};

_KLsimple_methodGVKe Knote_vreg_deadYbase_harpVharpMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K31,
  &Knote_vreg_deadYbase_harpVharpMM2I
};

static _KLpairGVKd K28 = {
  &KLpairGVKdW /* wrapper */,
  &Knote_vreg_deadYbase_harpVharpMM0,
  &K29
};

static _KLpairGVKd K29 = {
  &KLpairGVKdW /* wrapper */,
  &Knote_vreg_deadYbase_harpVharpMM1,
  &K30
};

static _KLpairGVKd K30 = {
  &KLpairGVKdW /* wrapper */,
  &Knote_vreg_deadYbase_harpVharpMM2,
  &KPempty_listVKi
};

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

static _KLbyte_stringGVKd_14 K32 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "note-vreg-dead"
};

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

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

static _KLsimple_object_vectorGVKd_2 K35 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLvreg_stateGYharp_registersVharp,
  &KLgregGYharp_registersVharp
};

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

static _KLsimple_object_vectorGVKd_2 K37 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLvreg_stateGYharp_registersVharp,
  &KLnregGYharp_registersVharp
};

_KLincremental_generic_functionGVKe Kmark_vreg_no_reusageYbase_harpVharp = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_no_rest_value_1VKi,
  &KPfalseVKi,
  &K45,
  &K43,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kbase_harp_moduleYdylan_userVharp,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kmark_vreg_no_reusageYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K46,
  &Kmark_vreg_no_reusageYbase_harpVharpMM0I
};

_KLsimple_methodGVKe Kmark_vreg_no_reusageYbase_harpVharpMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_no_rest_value_1VKi,
  &Kmark_vreg_no_reusageYbase_harpVharpMM1I
};

static _KLpairGVKd K43 = {
  &KLpairGVKdW /* wrapper */,
  &Kmark_vreg_no_reusageYbase_harpVharpMM0,
  &K44
};

static _KLpairGVKd K44 = {
  &KLpairGVKdW /* wrapper */,
  &Kmark_vreg_no_reusageYbase_harpVharpMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_20 K45 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "mark-vreg-no-reusage"
};

static _KLsignatureGVKe K46 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943045,
  &K12
};

_KLsealed_generic_functionGVKe Kmake_registerYbase_harpVharp = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_1,
  &K51,
  &KPfalseVKi,
  &K52,
  &K50,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLkeyword_methodGVKe Kmake_registerYbase_harpVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K70,
  &key_mep_5,
  &Kmake_registerYbase_harpVharpMM0I,
  &K71
};

static _KLpairGVKd K50 = {
  &KLpairGVKdW /* wrapper */,
  &Kmake_registerYbase_harpVharpMM0,
  &KPempty_listVKi
};

static _KLkeyword_signatureAvaluesGVKi K51 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K54,
  &KDsignature_LobjectG_typesVKi,
  &K12
};

static _KLbyte_stringGVKd_13 K52 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "make-register"
};

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

static _KLsimple_object_vectorGVKd_3 K54 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KJreg_class_,
  &KJname_,
  &KJindirections_
};

static _KLsymbolGVKd KJreg_class_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K58
};

static _KLsymbolGVKd KJindirections_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K57
};

static _KLbyte_stringGVKd_12 K57 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "indirections"
};

static _KLbyte_stringGVKd_9 K58 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "reg-class"
};

static _KLbyte_stringGVKd_26 K63 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 105,
  "Invalid register class %=."
};

static _KLsymbolGVKd KJid_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K66
};

static _KLbyte_stringGVKd_2 K66 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 9,
  "id"
};

static _KLbyte_stringGVKd_13 K67 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "_Environment_"
};

static _KLkeyword_signatureAvaluesGVKi K70 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K54,
  &K72,
  &K12
};

static _KLsimple_object_vectorGVKd_6 K71 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KJreg_class_,
  &KLgregGYharp_registersVharp,
  &KJname_,
  &KPfalseVKi,
  &KJindirections_,
  &KPempty_vectorVKi
};

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

_KLincremental_generic_functionGVKe Kmove_regYbase_harpVharp = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &K75,
  &KPfalseVKi,
  &K76,
  &K74,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kbase_harp_moduleYdylan_userVharp,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

static _KLpairGVKd K74 = {
  &KLpairGVKdW /* wrapper */,
  &Kmove_regYbase_harpVharpMM0,
  &KPempty_listVKi
};

static _KLsignatureGVKe K75 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943053,
  &K77
};

static _KLbyte_stringGVKd_8 K76 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 33,
  "move-reg"
};

static _KLsimple_object_vectorGVKd_3 K77 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLharp_back_endGYbase_harpVharp,
  &KLregisterGYharp_registersVharp,
  &KLregisterGYharp_registersVharp
};

_KLincremental_generic_functionGVKe Kmake_temp_registerYbase_harpVharp = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K82,
  &KPfalseVKi,
  &K83,
  &K81,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kbase_harp_moduleYdylan_userVharp,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

_KLsimple_methodGVKe Kmake_temp_registerYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K82,
  &Kmake_temp_registerYbase_harpVharpMM0I
};

static _KLpairGVKd K81 = {
  &KLpairGVKdW /* wrapper */,
  &Kmake_temp_registerYbase_harpVharpMM0,
  &KPempty_listVKi
};

static _KLsignatureGVKe K82 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040201,
  &K84
};

static _KLbyte_stringGVKd_18 K83 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "make-temp-register"
};

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

_KLkeyword_methodGVKe Kmake_sf_registerYbase_harpVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K86,
  &key_mep_4,
  &Kmake_sf_registerYbase_harpVharpMM0I,
  &K87
};

static _KLkeyword_signatureAvaluesGVKi K86 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K88,
  &KDsignature_LobjectG_typesVKi,
  &K89
};

static _KLsimple_object_vectorGVKd_4 K87 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJname_,
  &KPfalseVKi,
  &KJindirections_,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_2 K88 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJname_,
  &KJindirections_
};

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

_KLkeyword_methodGVKe Kmake_df_registerYbase_harpVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K91,
  &key_mep_4,
  &Kmake_df_registerYbase_harpVharpMM0I,
  &K87
};

static _KLkeyword_signatureAvaluesGVKi K91 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K88,
  &KDsignature_LobjectG_typesVKi,
  &K92
};

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

_KLkeyword_methodGVKe Kmake_g_registerYbase_harpVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K94,
  &key_mep_4,
  &Kmake_g_registerYbase_harpVharpMM0I,
  &K87
};

static _KLkeyword_signatureAvaluesGVKi K94 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K88,
  &KDsignature_LobjectG_typesVKi,
  &K95
};

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

_KLkeyword_methodGVKe Kmake_n_registerYbase_harpVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K97,
  &key_mep_4,
  &Kmake_n_registerYbase_harpVharpMM0I,
  &K87
};

static _KLkeyword_signatureAvaluesGVKi K97 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 33817605,
  &K53,
  &K88,
  &KDsignature_LobjectG_typesVKi,
  &K98
};

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

_KLsimple_methodGVKe Knote_vrvect_truncatedYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K100,
  &Knote_vrvect_truncatedYbase_harpVharpMM0I
};

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

static _KLsimple_object_vectorGVKd_2 K101 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLvreg_stateGYharp_registersVharp,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Kvirtual_registers_clashYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_5,
  &K104,
  &Kvirtual_registers_clashYbase_harpVharpMM0I
};

static _KLsignatureGVKe K104 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943061,
  &K105
};

static _KLsimple_object_vectorGVKd_5 K105 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 21,
  &KLharp_variablesGYharp_varsVharp,
  &KLvirtual_registerGYharp_registersVharp,
  &KLintegerGVKd,
  &KLvirtual_registerGYharp_registersVharp,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Kfactorial_addYbase_harpVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K107,
  &Kfactorial_addYbase_harpVharpMM0I
};

static _KLsignatureAvaluesGVKi K107 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &KDsignature_LintegerG_typesVKi,
  &KDsignature_LintegerG_typesVKi
};

/* Code */

D Knote_vrvect_truncatedYbase_harpVharpMM0I (D state_, D new_end_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  DWORD T8;
  DWORD T9;
  D T10;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:165
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:167
  T4 = SLOT_VALUE_INITD(state_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:167
  if (T4 == &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:168
    T5 = SLOT_VALUE(state_, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:168
    Ksize_setterVKdMM1I((D) 1, T5);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:169
    T6 = SLOT_VALUE(state_, 4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:169
    Ksize_setterVKdMM1I((D) 1, T6);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:167
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:171
  T7 = SLOT_VALUE(state_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:171
  Ksize_setterVKdMM4I(new_end_, T7);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:172
  T8 = primitive_cast_integer_as_raw(new_end_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:172
  T9 = primitive_machine_word_subtract_signal_overflow(T8,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:172
  T10 = primitive_cast_raw_as_integer(T9);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:172
  SLOT_VALUE_SETTER(T10, state_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:172
  T3 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:165
  MV_SET_COUNT(0);
  return(T3);
}

D Kfactorial_addYbase_harpVharpMM0I (D n_) {
  DWORD T2;
  DWORD T3;
  DWORD T4;
  DWORD T5;
  DWORD T6;
  DWORD T7;
  DWORD T8_0;
  DWORD T8_1;
  DWORD quotient_;
  DWORD T10;
  DWORD T11;
  D T12;
  D T13_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:312
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T2 = primitive_cast_integer_as_raw(n_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T3 = primitive_machine_word_add_signal_overflow(T2,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T4 = primitive_machine_word_logxor(T2,1);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T5 = primitive_machine_word_shift_right(T3,2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T6 = primitive_machine_word_multiply_signal_overflow(T4,T5);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T7 = primitive_machine_word_shift_right(T6,2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T8_0 = primitive_machine_word_truncateS_byref(T7,2,(DWORD*)&T8_1);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  quotient_ = T8_0;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T10 = primitive_machine_word_shift_left_signal_overflow(quotient_,2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T11 = primitive_machine_word_logior(T10,1);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T12 = primitive_cast_raw_as_integer(T11);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:314
  T13_0 = T12;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:312
  MV_SET_COUNT(1);
  return(T13_0);
}

D KcolourYbase_harpVharpMM0I (D x_) {
  D T2;
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:178
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:179
  T2 = SLOT_VALUE_INITD(x_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:179
  T3_0 = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:178
  MV_SET_COUNT(1);
  return(T3_0);
}

D KcolourYbase_harpVharpMM1I (D x_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:182
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:183
  T2_0 = x_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:182
  MV_SET_COUNT(1);
  return(T2_0);
}

D Karg_spill_locationYbase_harpVharpMM0I (D x_) {
  D T2_0;
  D T3_0;
  D T4_0;
  D T5;
  D T6;
  D T7;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:192
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:193
  T6 = SLOT_VALUE_INITD(x_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:194
  T7 = primitive_instanceQ(T6,&KLintegerGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:194
  if (T7 != &KPfalseVKi) {
    T5 = T6;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:195
    T2_0 = T5;
    T4_0 = T2_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:197
    T3_0 = &KPfalseVKi;
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:194
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:192
  MV_SET_COUNT(1);
  return(T4_0);
}

D Karg_spill_locationYbase_harpVharpMM1I (D x_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:201
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:202
  T2_0 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:201
  MV_SET_COUNT(1);
  return(T2_0);
}

D Knote_vreg_deadYbase_harpVharpMM0I (D state_, D vreg_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:150
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
  T6 = SLOT_VALUE_INITD(state_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
  if (T6 != &KPfalseVKi) {
    T3 = T6;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
    T7 = SLOT_VALUE(vreg_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
    T8 = primitive_idQ(T7,Dspill_set_no_reusageYharp_registersVharp);
    T3 = T8;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
    T4 = &KPfalseVKi;
    T5 = T4;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:152
    T9 = SLOT_VALUE(state_, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:152
    T10 = KaddXVKdMM3I(T9, vreg_);
    T5 = T10;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:151
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:150
  MV_SET_COUNT(0);
  return(T5);
}

D Knote_vreg_deadYbase_harpVharpMM1I (D state_, D vreg_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:156
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
  T6 = SLOT_VALUE_INITD(state_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
  if (T6 != &KPfalseVKi) {
    T3 = T6;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
    T7 = SLOT_VALUE(vreg_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
    T8 = primitive_idQ(T7,Dspill_set_no_reusageYharp_registersVharp);
    T3 = T8;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
    T4 = &KPfalseVKi;
    T5 = T4;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:158
    T9 = SLOT_VALUE(state_, 4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:158
    T10 = KaddXVKdMM3I(T9, vreg_);
    T5 = T10;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:157
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:156
  MV_SET_COUNT(0);
  return(T5);
}

D Knote_vreg_deadYbase_harpVharpMM2I (D state_, D vreg_) {
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:162
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:162
  T3 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:162
  MV_SET_COUNT(0);
  return(T3);
}

D Kmark_vreg_no_reusageYbase_harpVharpMM0I (D reg_) {
  D T2;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:140
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:141
  CALL2(&Kvirtual_register_spill_set_setterYharp_registersVharp, Dspill_set_no_reusageYharp_registersVharp, reg_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:141
  T2 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:140
  MV_SET_COUNT(0);
  return(T2);
}

D Kmark_vreg_no_reusageYbase_harpVharpMM1I (D reg_) {
  D T2;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:144
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:144
  T2 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:144
  MV_SET_COUNT(0);
  return(T2);
}

D Kmake_registerYbase_harpVharpMM0I (D backend_, D Urest_, D reg_class_, D name_, D indirections_) {
  D reg_classF6;
  D T7_0;
  D T8_0;
  D T9_0;
  D T10_0;
  D T11_0;
  D T12_0;
  D T13_0;
  D T14_0;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_1 T19 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T20_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:124
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:124
  primitive_type_check(reg_class_, &KLclassGVKd);
  reg_classF6 = reg_class_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
  T15 = primitive_idQ(reg_classF6,&KLgregGYharp_registersVharp);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
  if (T15 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:129
    T7_0 = Kmake_g_registerYbase_harpVharpMM0I(backend_, &KPempty_vectorVKi, name_, indirections_);
    T14_0 = T7_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
    T16 = primitive_idQ(reg_classF6,&KLnregGYharp_registersVharp);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
    if (T16 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:130
      T8_0 = Kmake_n_registerYbase_harpVharpMM0I(backend_, &KPempty_vectorVKi, name_, indirections_);
      T13_0 = T8_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
      T17 = primitive_idQ(reg_classF6,&KLsfregGYharp_registersVharp);
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
      if (T17 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:131
        T9_0 = Kmake_sf_registerYbase_harpVharpMM0I(backend_, &KPempty_vectorVKi, name_, indirections_);
        T12_0 = T9_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
        T18 = primitive_idQ(reg_classF6,&KLdfregGYharp_registersVharp);
        // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
        if (T18 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:132
          T10_0 = Kmake_df_registerYbase_harpVharpMM0I(backend_, &KPempty_vectorVKi, name_, indirections_);
          T11_0 = T10_0;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:133
          T19.vector_element_[0] = reg_classF6;
          // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:133
          T20_0 = KerrorVKdMM1I(&K63, &T19);
          T11_0 = T20_0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
        T12_0 = T11_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
      T13_0 = T12_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
    T14_0 = T13_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:128
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:124
  MV_SET_COUNT(1);
  return(T14_0);
}

D Kmake_g_registerYbase_harpVharpMM0I (D backend_, D Urest_, D name_, D indirections_) {
  D nameF5;
  D Utmp_;
  D T7;
  D T8_0;
  D T9_0;
  D T10_0;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  DWORD T17;
  DWORD T18;
  D T19;
  D T20;
  D T21;
  D T22;
  DWORD T23;
  DWORD T24;
  D T25;
  D T26;
  D T27;
  DWORD T28;
  D T29;
  D T30;
  D T31_0;
  D T32;
  D T33;
  D T34_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:70
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:73
  T11 = SLOT_VALUE(backend_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:73
  T12 = SLOT_VALUE(T11, 25);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:74
  nameF5 = Kensure_nameYbase_harpVharpMM0I(name_, indirections_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  T13 = SLOT_VALUE_INITD(T12, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  if (T13 != &KPfalseVKi) {
    Utmp_ = T13;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
    T14 = SLOT_VALUE(T12, 4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
    T15 = KemptyQVKdMM4I(T14);
    Utmp_ = T15;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  if (Utmp_ != &KPfalseVKi) {
    T7 = Utmp_;
  } else {
    T7 = nameF5;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:76
    T8_0 = Kreally_new_gregYbase_harpVharpMM0I(T12, nameF5, indirections_);
    T10_0 = T8_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:78
    T16 = SLOT_VALUE_INITD(T12, 6);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:78
    T17 = primitive_cast_integer_as_raw(T16);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:78
    T18 = primitive_machine_word_add_signal_overflow(T17,4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:78
    T19 = primitive_cast_raw_as_integer(T18);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:78
    SLOT_VALUE_SETTER(T19, T12, 6);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T20 = SLOT_VALUE(T12, 4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T21 = SLOT_VALUE_INITD(T20, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T22 = SLOT_VALUE_INITD(T21, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T23 = primitive_cast_integer_as_raw(T22);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T24 = primitive_machine_word_subtract_signal_overflow(T23,4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T25 = primitive_cast_raw_as_integer(T24);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T26 = SLOT_VALUE_INITD(T20, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T27 = SLOT_VALUE_INITD(T26, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T28 = primitive_cast_integer_as_raw(T27);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T29 = primitive_machine_word_unsigned_less_thanQ(T24,T28);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    if (T29 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
      T30 = REPEATED_D_SLOT_VALUE_TAGGED(T26, 2, T24);
      T33 = T30;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
      T31_0 = Kelement_range_errorVKeI(T20, T25);
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
      T32 = T31_0;
      T33 = T32;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    Ksize_setterVKdMM1I(T25, T20);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T9_0 = T33;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:79
    T34_0 = T9_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T9_0);
      primitive_type_check(T34_0, &KLgregGYharp_registersVharp);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T10_0 = T34_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:75
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:70
  MV_SET_COUNT(1);
  return(T10_0);
}

D Kmake_n_registerYbase_harpVharpMM0I (D backend_, D Urest_, D name_, D indirections_) {
  D nameF5;
  D Utmp_;
  D T7;
  D T8_0;
  D T9_0;
  D T10_0;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  DWORD T17;
  DWORD T18;
  D T19;
  D T20;
  D T21;
  D T22;
  DWORD T23;
  DWORD T24;
  D T25;
  D T26;
  D T27;
  DWORD T28;
  D T29;
  D T30;
  D T31_0;
  D T32;
  D T33;
  D T34_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:83
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:86
  T11 = SLOT_VALUE(backend_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:86
  T12 = SLOT_VALUE(T11, 25);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:87
  nameF5 = Kensure_nameYbase_harpVharpMM0I(name_, indirections_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  T13 = SLOT_VALUE_INITD(T12, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  if (T13 != &KPfalseVKi) {
    Utmp_ = T13;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
    T14 = SLOT_VALUE(T12, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
    T15 = KemptyQVKdMM4I(T14);
    Utmp_ = T15;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  if (Utmp_ != &KPfalseVKi) {
    T7 = Utmp_;
  } else {
    T7 = nameF5;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:89
    T8_0 = Kreally_new_nregYbase_harpVharpMM0I(T12, nameF5, indirections_);
    T10_0 = T8_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:91
    T16 = SLOT_VALUE_INITD(T12, 6);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:91
    T17 = primitive_cast_integer_as_raw(T16);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:91
    T18 = primitive_machine_word_add_signal_overflow(T17,4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:91
    T19 = primitive_cast_raw_as_integer(T18);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:91
    SLOT_VALUE_SETTER(T19, T12, 6);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T20 = SLOT_VALUE(T12, 5);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T21 = SLOT_VALUE_INITD(T20, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T22 = SLOT_VALUE_INITD(T21, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T23 = primitive_cast_integer_as_raw(T22);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T24 = primitive_machine_word_subtract_signal_overflow(T23,4);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T25 = primitive_cast_raw_as_integer(T24);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T26 = SLOT_VALUE_INITD(T20, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T27 = SLOT_VALUE_INITD(T26, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T28 = primitive_cast_integer_as_raw(T27);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T29 = primitive_machine_word_unsigned_less_thanQ(T24,T28);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    if (T29 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
      T30 = REPEATED_D_SLOT_VALUE_TAGGED(T26, 2, T24);
      T33 = T30;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
      T31_0 = Kelement_range_errorVKeI(T20, T25);
      // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
      T32 = T31_0;
      T33 = T32;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    Ksize_setterVKdMM1I(T25, T20);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T9_0 = T33;
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:92
    T34_0 = T9_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T9_0);
      primitive_type_check(T34_0, &KLnregGYharp_registersVharp);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T10_0 = T34_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:83
  MV_SET_COUNT(1);
  return(T10_0);
}

D Kmake_sf_registerYbase_harpVharpMM0I (D backend_, D Urest_, D name_, D indirections_) {
  D nameF5;
  D reg_;
  D T7_0;
  D T8;
  D T9;
  D T10;
  DWORD T11;
  DWORD T12;
  D T13;
  _KLsimple_object_vectorGVKd_6 T14 = {&KLsimple_object_vectorGVKdW, (D) 25};
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:46
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:49
  T8 = SLOT_VALUE(backend_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:49
  T9 = SLOT_VALUE(T8, 25);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:50
  nameF5 = Kensure_nameYbase_harpVharpMM0I(name_, indirections_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  T10 = SLOT_VALUE_INITD(T9, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  T11 = primitive_cast_integer_as_raw(T10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  T12 = primitive_machine_word_add_signal_overflow(T11,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  T13 = primitive_cast_raw_as_integer(T12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  SLOT_VALUE_SETTER(T13, T9, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  T14.vector_element_[0] = IKJid_;
  T14.vector_element_[1] = T13;
  T14.vector_element_[2] = &KJname_;
  T14.vector_element_[3] = nameF5;
  T14.vector_element_[4] = IKJindirections_;
  T14.vector_element_[5] = indirections_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:51
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  reg_ = CONGRUENT_CALL2(&KLsfregGYharp_registersVharp, &T14);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:53
  SLOT_VALUE_SETTER(T9, reg_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:54
  T15 = SLOT_VALUE(T9, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:54
  KaddXVKdMM6I(T15, reg_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:55
  T7_0 = reg_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:46
  MV_SET_COUNT(1);
  return(T7_0);
}

D Kmake_df_registerYbase_harpVharpMM0I (D backend_, D Urest_, D name_, D indirections_) {
  D nameF5;
  D reg_;
  D T7_0;
  D T8;
  D T9;
  D T10;
  DWORD T11;
  DWORD T12;
  D T13;
  _KLsimple_object_vectorGVKd_6 T14 = {&KLsimple_object_vectorGVKdW, (D) 25};
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:58
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:61
  T8 = SLOT_VALUE(backend_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:61
  T9 = SLOT_VALUE(T8, 25);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:62
  nameF5 = Kensure_nameYbase_harpVharpMM0I(name_, indirections_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  T10 = SLOT_VALUE_INITD(T9, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  T11 = primitive_cast_integer_as_raw(T10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  T12 = primitive_machine_word_add_signal_overflow(T11,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  T13 = primitive_cast_raw_as_integer(T12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  SLOT_VALUE_SETTER(T13, T9, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  T14.vector_element_[0] = IKJid_;
  T14.vector_element_[1] = T13;
  T14.vector_element_[2] = &KJname_;
  T14.vector_element_[3] = nameF5;
  T14.vector_element_[4] = IKJindirections_;
  T14.vector_element_[5] = indirections_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:63
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  reg_ = CONGRUENT_CALL2(&KLdfregGYharp_registersVharp, &T14);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:65
  SLOT_VALUE_SETTER(T9, reg_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:66
  T15 = SLOT_VALUE(T9, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:66
  KaddXVKdMM6I(T15, reg_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:67
  T7_0 = reg_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:58
  MV_SET_COUNT(1);
  return(T7_0);
}

D Kensure_nameYbase_harpVharpMM0I (D name_, D indirections_) {
  D T3;
  D T4;
  D T5_0;
  D T6_0;
  D T7_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:39
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:40
  if (name_ != &KPfalseVKi) {
    T4 = name_;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:40
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T3 = CONGRUENT_CALL1(indirections_);
    T4 = T3;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:40
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:40
  if (T4 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:41
    T5_0 = name_;
    T7_0 = T5_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:42
    T6_0 = &K67;
    T7_0 = T6_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:40
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:39
  MV_SET_COUNT(1);
  return(T7_0);
}

D Kreally_new_nregYbase_harpVharpMM0I (D state_, D name_, D indirections_) {
  D reg_;
  D T5_0;
  D T6;
  DWORD T7;
  DWORD T8;
  D T9;
  _KLsimple_object_vectorGVKd_6 T10 = {&KLsimple_object_vectorGVKdW, (D) 25};
  D T11;
  D T12;
  DWORD T13;
  DWORD T14;
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:25
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  T6 = SLOT_VALUE_INITD(state_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  T7 = primitive_cast_integer_as_raw(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  T8 = primitive_machine_word_add_signal_overflow(T7,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  T9 = primitive_cast_raw_as_integer(T8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  SLOT_VALUE_SETTER(T9, state_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  T10.vector_element_[0] = IKJid_;
  T10.vector_element_[1] = T9;
  T10.vector_element_[2] = &KJname_;
  T10.vector_element_[3] = name_;
  T10.vector_element_[4] = IKJindirections_;
  T10.vector_element_[5] = indirections_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:27
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  reg_ = CONGRUENT_CALL2(&KLnregGYharp_registersVharp, &T10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:29
  SLOT_VALUE_SETTER(state_, reg_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:30
  T11 = SLOT_VALUE(state_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:30
  KaddXVKdMM6I(T11, reg_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:31
  T12 = SLOT_VALUE_INITD(state_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:31
  T13 = primitive_cast_integer_as_raw(T12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:31
  T14 = primitive_machine_word_add_signal_overflow(T13,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:31
  T15 = primitive_cast_raw_as_integer(T14);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:31
  SLOT_VALUE_SETTER(T15, state_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:32
  T5_0 = reg_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:25
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kreally_new_gregYbase_harpVharpMM0I (D state_, D name_, D indirections_) {
  D reg_;
  D T5_0;
  D T6;
  DWORD T7;
  DWORD T8;
  D T9;
  _KLsimple_object_vectorGVKd_6 T10 = {&KLsimple_object_vectorGVKdW, (D) 25};
  D T11;
  D T12;
  DWORD T13;
  DWORD T14;
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:15
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  T6 = SLOT_VALUE_INITD(state_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  T7 = primitive_cast_integer_as_raw(T6);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  T8 = primitive_machine_word_add_signal_overflow(T7,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  T9 = primitive_cast_raw_as_integer(T8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  SLOT_VALUE_SETTER(T9, state_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  T10.vector_element_[0] = IKJid_;
  T10.vector_element_[1] = T9;
  T10.vector_element_[2] = &KJname_;
  T10.vector_element_[3] = name_;
  T10.vector_element_[4] = IKJindirections_;
  T10.vector_element_[5] = indirections_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:17
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  reg_ = CONGRUENT_CALL2(&KLgregGYharp_registersVharp, &T10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:19
  SLOT_VALUE_SETTER(state_, reg_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:20
  T11 = SLOT_VALUE(state_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:20
  KaddXVKdMM6I(T11, reg_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:21
  T12 = SLOT_VALUE_INITD(state_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:21
  T13 = primitive_cast_integer_as_raw(T12);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:21
  T14 = primitive_machine_word_add_signal_overflow(T13,4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:21
  T15 = primitive_cast_raw_as_integer(T14);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:21
  SLOT_VALUE_SETTER(T15, state_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:22
  T5_0 = reg_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:15
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kmake_temp_registerYbase_harpVharpMM0I (D be_, D n_) {
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:104
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:106
  T3 = Kmake_n_registerYbase_harpVharpMM0I(be_, &KPempty_vectorVKi, &KPfalseVKi, &KPempty_vectorVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:104
  return(T3);
}

D Kvirtual_registers_clashYbase_harpVharpMM0I (D vars_, D v1_, D v1_id_, D v2_, D v2_id_) {
  D T6_0;
  D T6_1;
  D v1F7;
  D v2_idF8;
  DWORD T9;
  DWORD T10;
  D T11;
  D T12_0;
  D T12_1;
  D T13_0;
  D T13_1;
  D T14;
  D T15;
  DWORD T16;
  DWORD T17;
  DWORD T18;
  DWORD T19;
  DWORD T20;
  DWORD T21;
  DWORD T22;
  DWORD T23;
  DWORD T24;
  DWORD T25;
  DWORD T26;
  DWORD T27;
  D T28;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:244
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:250
  T9 = primitive_cast_integer_as_raw(v2_id_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:250
  T10 = primitive_cast_integer_as_raw(v1_id_);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:250
  T11 = primitive_machine_word_less_thanQ(T9,T10);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:250
  if (T11 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:253
    T13_0 = v2_;
    T13_1 = v1_id_;
    T6_0 = T13_0;
    T6_1 = T13_1;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:251
    T12_0 = v1_;
    T12_1 = v2_id_;
    T6_0 = T12_0;
    T6_1 = T12_1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:250
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:249
  v1F7 = T6_0;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:249
  v2_idF8 = T6_1;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T14 = SLOT_VALUE_INITD(vars_, 34);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:256
  T15 = SLOT_VALUE_INITD(v1F7, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:256
  T16 = primitive_cast_integer_as_raw(T15);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:256
  T17 = primitive_cast_integer_as_raw(v2_idF8);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:256
  T18 = primitive_machine_word_logxor(T17,1);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:256
  T19 = primitive_machine_word_add_signal_overflow(T16,T18);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T20 = primitive_machine_word_shift_right(T19,5);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T21 = primitive_machine_word_logand(T20,-4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T22 = primitive_machine_word_logior(T21,1);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T23 = primitive_machine_word_logand(T19,125);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T24 = primitive_machine_word_shift_right(T23,2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T25 = primitive_machine_word_unsigned_double_shift_left_high(0,1,T24);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T26 = REPEATED_DWORD_SLOT_VALUE_TAGGED(T14, 1, T22);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T27 = primitive_machine_word_logior(T26,T25);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  REPEATED_DWORD_SLOT_VALUE_TAGGED_SETTER(T27, T14, 1, T22);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:255
  T28 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/register-support.dylan:244
  MV_SET_COUNT(0);
  return(T28);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJreg_class_);
    if (T0 != &KJreg_class_) {
      primitive_repeated_slot_value_setter(T0, &K71, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K54, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJindirections_);
    if (T0 != &KJindirections_) {
      primitive_repeated_slot_value_setter(T0, &K88, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K87, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K71, 1, 4);
      IKJindirections_ = T0;
      primitive_repeated_slot_value_setter(T0, &K54, 1, 2);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJid_);
    if (T0 != &KJid_) {
      IKJid_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_harp__X_register_support_for_user () {
  return;
}


/* eof */
