/*===========================================================================*/
/*   (SawMill/regalloc.scm)                                                  */
/*   Bigloo (4.5b)                                                           */
/*   Inria -- Sophia Antipolis (c)       Fri Dec 22 05:17:06 PM CET 2023     */
/*===========================================================================*/
/* COMPILATION: (/home/serrano/prgm/project/bigloo/bigloo/bin/bigloo -ldopt -L/home/serrano/prgm/project/bigloo/bigloo/libbacktrace/home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b  -q -afile .afile -fsharing -fno-reflection -cc gcc -lib-dir /home/serrano/prgm/project/bigloo/bigloo/lib/bigloo/4.5b -unsafev -gno-error-localization -no-hello -O2 -rm -unsafe -s -stdc -indent SawMill/regalloc.scm) */
/* GC selection */
#define THE_GC BOEHM_GC

/* unsafe mode */
#define BIGLOO_UNSAFE 1

/* traces mode */
#define BIGLOO_TRACE 0

/* standard Bigloo include */
#include <bigloo.h>

#ifdef __cplusplus
extern "C"
{
#endif
#ifndef BGL_MODULE_TYPE_DEFINITIONS
#define BGL_MODULE_TYPE_DEFINITIONS
#ifndef BGL_BgL_SAW_REGISTERzd2ALLOCATIONzd2_TYPE_DEFINITIONS
#define BGL_BgL_SAW_REGISTERzd2ALLOCATIONzd2_TYPE_DEFINITIONS

/* object type definitions */
	typedef struct BgL_valuez00_bgl
	{
		header_t header;
		obj_t widening;
	}               *BgL_valuez00_bglt;

	typedef struct BgL_variablez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
	}                  *BgL_variablez00_bglt;

	typedef struct BgL_globalz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		struct BgL_typez00_bgl *BgL_typez00;
		struct BgL_valuez00_bgl *BgL_valuez00;
		obj_t BgL_accessz00;
		obj_t BgL_fastzd2alphazd2;
		obj_t BgL_removablez00;
		long BgL_occurrencez00;
		long BgL_occurrencewz00;
		bool_t BgL_userzf3zf3;
		obj_t BgL_modulez00;
		obj_t BgL_importz00;
		bool_t BgL_evaluablezf3zf3;
		bool_t BgL_evalzf3zf3;
		obj_t BgL_libraryz00;
		obj_t BgL_pragmaz00;
		obj_t BgL_srcz00;
		obj_t BgL_jvmzd2typezd2namez00;
		obj_t BgL_initz00;
		obj_t BgL_aliasz00;
	}                *BgL_globalz00_bglt;

	typedef struct BgL_typez00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_idz00;
		obj_t BgL_namez00;
		obj_t BgL_siza7eza7;
		obj_t BgL_classz00;
		obj_t BgL_coercezd2tozd2;
		obj_t BgL_parentsz00;
		bool_t BgL_initzf3zf3;
		bool_t BgL_magiczf3zf3;
		obj_t BgL_z42z42;
		obj_t BgL_aliasz00;
		obj_t BgL_pointedzd2tozd2byz00;
		obj_t BgL_tvectorz00;
		obj_t BgL_locationz00;
		obj_t BgL_importzd2locationzd2;
		int BgL_occurrencez00;
	}              *BgL_typez00_bglt;

	typedef struct BgL_backendz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_languagez00;
		obj_t BgL_srfi0z00;
		obj_t BgL_namez00;
		obj_t BgL_externzd2variableszd2;
		obj_t BgL_externzd2functionszd2;
		obj_t BgL_externzd2typeszd2;
		obj_t BgL_variablesz00;
		obj_t BgL_functionsz00;
		obj_t BgL_typesz00;
		bool_t BgL_typedz00;
		obj_t BgL_heapzd2suffixzd2;
		obj_t BgL_heapzd2compatiblezd2;
		bool_t BgL_callccz00;
		bool_t BgL_qualifiedzd2typeszd2;
		bool_t BgL_effectzb2zb2;
		bool_t BgL_removezd2emptyzd2letz00;
		bool_t BgL_foreignzd2closurezd2;
		bool_t BgL_typedzd2eqzd2;
		bool_t BgL_tracezd2supportzd2;
		obj_t BgL_foreignzd2clausezd2supportz00;
		obj_t BgL_debugzd2supportzd2;
		bool_t BgL_pragmazd2supportzd2;
		bool_t BgL_tvectorzd2descrzd2supportz00;
		bool_t BgL_requirezd2tailczd2;
		obj_t BgL_registersz00;
		obj_t BgL_pregistersz00;
		bool_t BgL_boundzd2checkzd2;
		bool_t BgL_typezd2checkzd2;
		bool_t BgL_typedzd2funcallzd2;
	}                 *BgL_backendz00_bglt;

	typedef struct BgL_rtl_regz00_bgl
	{
		header_t header;
		obj_t widening;
		struct BgL_typez00_bgl *BgL_typez00;
		obj_t BgL_varz00;
		obj_t BgL_onexprzf3zf3;
		obj_t BgL_namez00;
		obj_t BgL_keyz00;
		obj_t BgL_debugnamez00;
		obj_t BgL_hardwarez00;
	}                 *BgL_rtl_regz00_bglt;

	typedef struct BgL_rtl_funz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
	}                 *BgL_rtl_funz00_bglt;

	typedef struct BgL_rtl_nopz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
	}                 *BgL_rtl_nopz00_bglt;

	typedef struct BgL_rtl_insz00_bgl
	{
		header_t header;
		obj_t widening;
		obj_t BgL_locz00;
		obj_t BgL_z52spillz52;
		obj_t BgL_destz00;
		struct BgL_rtl_funz00_bgl *BgL_funz00;
		obj_t BgL_argsz00;
	}                 *BgL_rtl_insz00_bglt;

	typedef struct BgL_blockz00_bgl
	{
		header_t header;
		obj_t widening;
		int BgL_labelz00;
		obj_t BgL_predsz00;
		obj_t BgL_succsz00;
		obj_t BgL_firstz00;
	}               *BgL_blockz00_bglt;

	typedef struct BgL_rtl_regzf2razf2_bgl
	{
		int BgL_numz00;
		obj_t BgL_colorz00;
		obj_t BgL_coalescez00;
		int BgL_occurrencesz00;
		obj_t BgL_interferez00;
		obj_t BgL_interfere2z00;
	}                      *BgL_rtl_regzf2razf2_bglt;

	typedef struct BgL_regsetz00_bgl
	{
		header_t header;
		obj_t widening;
		int BgL_lengthz00;
		int BgL_msiza7eza7;
		obj_t BgL_regvz00;
		obj_t BgL_reglz00;
		obj_t BgL_stringz00;
	}                *BgL_regsetz00_bglt;

	typedef struct BgL_blockzf2razf2_bgl
	{
		obj_t BgL_lastz00;
	}                    *BgL_blockzf2razf2_bglt;

	typedef struct BgL_rtl_inszf2razf2_bgl
	{
		obj_t BgL_defz00;
		obj_t BgL_outz00;
		obj_t BgL_inz00;
		obj_t BgL_spillz00;
	}                      *BgL_rtl_inszf2razf2_bglt;


#endif													// BGL_BgL_SAW_REGISTERzd2ALLOCATIONzd2_TYPE_DEFINITIONS
#endif													// BGL_MODULE_TYPE_DEFINITIONS

	extern obj_t BGl_rtl_insz00zzsaw_defsz00;
	static BgL_blockz00_bglt
		BGl_z62lambda2497z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	extern obj_t BGl_rtl_funz00zzsaw_defsz00;
	extern obj_t BGl_za2optimza2z00zzengine_paramz00;
	BGL_IMPORT obj_t BGl_classzd2nilzd2initz12z12zz__objectz00(obj_t);
	static obj_t
		BGl_registerzd2hardwarezd2coloringz00zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	static obj_t BGl_requirezd2initializa7ationz75zzsaw_registerzd2allocationzd2 =
		BUNSPEC;
	static obj_t
		BGl_z62dumpzd2rtl_inszf2ra1771z42zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t, obj_t);
	extern bool_t BGl_regsetzd2addz12zc0zzsaw_regsetz00(BgL_regsetz00_bglt,
		BgL_rtl_regz00_bglt);
	static obj_t
		BGl_rtlzd2mapzd2registersz12z12zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	extern obj_t
		BGl_za2sawzd2registerzd2allocationzd2functionsza2zd2zzengine_paramz00;
	extern obj_t BGl_collectzd2registersz12zc0zzsaw_regutilsz00(obj_t);
	BGL_IMPORT obj_t BGl_za2classesza2z00zz__objectz00;
	static bool_t
		BGl_cleanupzd2movezd2treez12z12zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t
		BGl_z62protectzd2interferencez12za2zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	BGL_IMPORT obj_t BGl_registerzd2genericz12zc0zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t BGl_funcallzd2spillz12zc0zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_assocz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	static obj_t BGl_toplevelzd2initzd2zzsaw_registerzd2allocationzd2(void);
	extern obj_t BGl_rtl_protectz00zzsaw_defsz00;
	static obj_t
		BGl_simplifyzd2regz12zc0zzsaw_registerzd2allocationzd2(BgL_rtl_regz00_bglt);
	BGL_IMPORT obj_t BGl_formatz00zz__r4_output_6_10_3z00(obj_t, obj_t);
	static obj_t
		BGl_z62typezd2interferencez12za2zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32499ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_IMPORT obj_t bgl_reverse(obj_t);
	static obj_t
		BGl_z62registerzd2allocationzb0zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static obj_t BGl_genericzd2initzd2zzsaw_registerzd2allocationzd2(void);
	static obj_t
		BGl_z62zc3z04anonymousza32121ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t BGl_blockzf2razf2zzsaw_registerzd2allocationzd2 = BUNSPEC;
	static obj_t
		BGl_registerzd2stackzd2coloringz00zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_makezd2classzd2fieldz00zz__objectz00(obj_t, obj_t, obj_t,
		bool_t, bool_t, obj_t, obj_t, obj_t);
	static obj_t BGl_objectzd2initzd2zzsaw_registerzd2allocationzd2(void);
	BGL_IMPORT obj_t BGl_appendz00zz__r4_pairs_and_lists_6_3z00(obj_t);
	BGL_IMPORT obj_t BGl_memqz00zz__r4_pairs_and_lists_6_3z00(obj_t, obj_t);
	extern obj_t BGl_shapez00zztools_shapez00(obj_t);
	BGL_IMPORT obj_t BGl_za2inheritancesza2z00zz__objectz00;
	static obj_t BGl_interferencez12z12zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	extern obj_t BGl_regsetzd2filterzd2zzsaw_regsetz00(obj_t, BgL_regsetz00_bglt);
	extern obj_t BGl_typez00zztype_typez00;
	static obj_t
		BGl_z62zc3z04anonymousza32034ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	extern obj_t BGl_rtl_regz00zzsaw_defsz00;
	extern obj_t BGl_rtl_movz00zzsaw_defsz00;
	extern bool_t BGl_regsetzd2removez12zc0zzsaw_regsetz00(BgL_regsetz00_bglt,
		BgL_rtl_regz00_bglt);
	BGL_IMPORT obj_t bgl_bignum_add(obj_t, obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32124ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static bool_t
		BGl_inszd2hardwarezd2interferencez12ze70zf5zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, BgL_rtl_insz00_bglt, obj_t, obj_t);
	static bool_t
		BGl_hardwarezd2mutualzd2interferencez12z12zzsaw_registerzd2allocationzd2
		(obj_t);
	BGL_IMPORT obj_t BGl_readz00zz__readerz00(obj_t, obj_t);
	BGL_IMPORT obj_t make_vector(long, obj_t);
	BGL_IMPORT obj_t BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00(obj_t,
		obj_t, obj_t);
	static obj_t BGl_appendzd221011zd2zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza31977ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	extern obj_t BGl_rtl_nopz00zzsaw_defsz00;
	static obj_t BGl_z62rtlzd2siza7ez17zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t BGl_methodzd2initzd2zzsaw_registerzd2allocationzd2(void);
	extern bool_t BGl_regsetzd2unionza2z12z62zzsaw_regsetz00(BgL_regsetz00_bglt,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32118ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32029ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static bool_t
		BGl_hardwarezd2parameterszd2interferencez12z12zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, obj_t);
	extern obj_t BGl_rtl_inszd2argsza2z70zzsaw_defsz00(BgL_rtl_insz00_bglt);
	static obj_t
		BGl_z62zc3z04anonymousza32127ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t BGl_livenessz12z12zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_registerzd2allocationzd2zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, BgL_globalz00_bglt, obj_t, obj_t);
	BGL_IMPORT obj_t bgl_long_to_bignum(long);
	BGL_IMPORT obj_t BGl_zb2zb2zz__r4_numbers_6_5z00(obj_t);
	extern bool_t BGl_regsetzd2memberzf3z21zzsaw_regsetz00(BgL_rtl_regz00_bglt,
		BgL_regsetz00_bglt);
	static obj_t BGl_registerzd2coloringzd2zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	extern BgL_regsetz00_bglt BGl_listzd2ze3regsetz31zzsaw_regsetz00(obj_t,
		obj_t);
	static obj_t
		BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
		(obj_t);
	static obj_t BGl_cleanupzd2destz12zc0zzsaw_registerzd2allocationzd2(obj_t);
	extern obj_t BGl_za2objza2z00zztype_cachez00;
	BGL_IMPORT obj_t BGl_appendzd2mapz12zc0zz__r4_control_features_6_9z00(obj_t,
		obj_t);
	BGL_IMPORT obj_t bgl_remq_bang(obj_t, obj_t);
	static obj_t BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32270ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_modulezd2initializa7ationz75zzsaw_registerzd2allocationzd2(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_regutilsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_regsetz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_node2rtlz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_defsz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzsaw_libz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzbackend_backendz00(long,
		char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_speekz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_shapez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_cachez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztype_typez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_nodez00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzast_varz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zzengine_paramz00(long, char *);
	extern obj_t BGl_modulezd2initializa7ationz75zztools_tracez00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r5_control_features_6_4z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(long,
		char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(long,
		char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(long, char *);
	BGL_IMPORT obj_t
		BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__readerz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__objectz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__bitz00(long, char *);
	BGL_IMPORT obj_t BGl_modulezd2initializa7ationz75zz__biglooz00(long, char *);
	static bool_t
		BGl_z52registerzd2allocationz80zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, BgL_globalz00_bglt, obj_t, obj_t);
	static BgL_rtl_regz00_bglt
		BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2(BgL_rtl_regz00_bglt);
	BGL_IMPORT obj_t BGl_sortz00zz__r4_vectors_6_8z00(obj_t, obj_t);
	BGL_EXPORTED_DECL obj_t
		BGl_typezd2interferencez12zc0zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, obj_t);
	extern obj_t BGl_za2sawzd2registerzd2allocationzf3za2zf3zzengine_paramz00;
	BGL_IMPORT obj_t BGl_vectorzd2fillz12zc0zz__r4_vectors_6_8z00(obj_t, obj_t,
		long, long);
	static obj_t BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(obj_t);
	extern obj_t BGl_regsetzd2ze3listz31zzsaw_regsetz00(BgL_regsetz00_bglt);
	static obj_t
		BGl_z62zc3z04anonymousza32184ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	static obj_t BGl_cnstzd2initzd2zzsaw_registerzd2allocationzd2(void);
	static obj_t
		BGl_libraryzd2moduleszd2initz00zzsaw_registerzd2allocationzd2(void);
	static obj_t
		BGl_z62rtlzd2siza7ezd2rtl_ins1769zc5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_IMPORT long bgl_list_length(obj_t);
	BGL_IMPORT obj_t BGl_registerzd2classz12zc0zz__objectz00(obj_t, obj_t, obj_t,
		long, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	static obj_t
		BGl_importedzd2moduleszd2initz00zzsaw_registerzd2allocationzd2(void);
	static obj_t BGl_gczd2rootszd2initz00zzsaw_registerzd2allocationzd2(void);
	extern BgL_regsetz00_bglt
		BGl_duplicatezd2regsetzd2zzsaw_regsetz00(BgL_regsetz00_bglt);
	static obj_t
		BGl_z62zc3z04anonymousza32428ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	extern obj_t
		BGl_za2sawzd2nozd2registerzd2allocationzd2functionsza2z00zzengine_paramz00;
	BGL_IMPORT obj_t bgl_remq(obj_t, obj_t);
	extern obj_t BGl_regsetzd2forzd2eachz00zzsaw_regsetz00(obj_t,
		BgL_regsetz00_bglt);
	static obj_t
		BGl_z62typezd2interferencez121762za2zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	extern obj_t BGl_backendz00zzbackend_backendz00;
	static obj_t
		BGl_z62zc3z04anonymousza32291ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2 = BUNSPEC;
	static BgL_blockz00_bglt
		BGl_z62lambda2500z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static bool_t BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32543ze3ze5zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t BGl_z62lambda2507z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static obj_t BGl_z62lambda2508z62zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static bool_t
		BGl_inszd2funcallzd2spillz12ze70zf5zzsaw_registerzd2allocationzd2
		(BgL_rtl_insz00_bglt);
	static obj_t
		BGl_z62protectzd2interference1760zb0zzsaw_registerzd2allocationzd2(obj_t,
		obj_t, obj_t);
	static bool_t
		BGl_argszd2widenzd2raz12ze70zf5zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static obj_t BGl_livenesszd2blockz12zc0zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32552ze3ze5zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32528ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static BgL_rtl_insz00_bglt
		BGl_z62lambda2519z62zzsaw_registerzd2allocationzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t, obj_t, obj_t, obj_t, obj_t);
	extern obj_t
		BGl_backendzd2instrzd2resetzd2registerszd2zzbackend_backendz00
		(BgL_backendz00_bglt, obj_t);
	static obj_t
		BGl_z62rtlzd2siza7ezd2block1767zc5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32561ze3ze5zzsaw_registerzd2allocationzd2(obj_t);
	BGL_IMPORT obj_t BGl_gensymz00zz__r4_symbols_6_4z00(obj_t);
	static BgL_rtl_insz00_bglt
		BGl_z62lambda2525z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static bool_t BGl_widenzd2raz12zc0zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static BgL_rtl_insz00_bglt
		BGl_z62lambda2529z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	extern obj_t
		BGl_za2sawzd2registerzd2allocationzd2maxzd2siza7eza2za7zzengine_paramz00;
	extern bool_t BGl_regsetzd2unionz12zc0zzsaw_regsetz00(BgL_regsetz00_bglt,
		BgL_regsetz00_bglt);
	BGL_IMPORT obj_t BGl_genericzd2addzd2methodz12z12zz__objectz00(obj_t, obj_t,
		obj_t, obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32198ze3ze5zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t
		BGl_interferezd2insz12zc0zzsaw_registerzd2allocationzd2
		(BgL_rtl_insz00_bglt);
	extern bool_t BGl_bigloozd2typezf3z21zztype_typez00(BgL_typez00_bglt);
	extern BgL_regsetz00_bglt BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00(obj_t);
	extern obj_t BGl_rtl_regzf2razf2zzsaw_regsetz00;
	static obj_t BGl_z62rtlzd2siza7e1764z17zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	BGL_IMPORT obj_t BGl_classzd2superzd2zz__objectz00(obj_t);
	static obj_t BGl_z62lambda2541z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static obj_t BGl_z62lambda2542z62zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static long BGl_removezd2blockz12ze70z27zzsaw_registerzd2allocationzd2(obj_t);
	BGL_IMPORT obj_t
		BGl_findzd2superzd2classzd2methodzd2zz__objectz00(BgL_objectz00_bglt, obj_t,
		obj_t);
	static obj_t BGl_z62lambda2550z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static obj_t BGl_z62lambda2551z62zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static obj_t BGl_z62lambda2559z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	extern obj_t BGl_blockz00zzsaw_defsz00;
	static obj_t
		BGl_removezd2nopzd2movez12z12zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t BGl_z62lambda2560z62zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static obj_t
		BGl_z62zc3z04anonymousza32573ze3ze5zzsaw_registerzd2allocationzd2(obj_t);
	static bool_t
		BGl_hardwarezd2interferencez12zc0zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt, obj_t);
	extern obj_t BGl_verbosez00zztools_speekz00(obj_t, obj_t);
	static obj_t BGl_getzd2argsze70z35zzsaw_registerzd2allocationzd2(obj_t);
	static obj_t
		BGl_protectzd2interferencez12zc0zzsaw_registerzd2allocationzd2(obj_t,
		obj_t);
	static obj_t BGl_z62lambda2571z62zzsaw_registerzd2allocationzd2(obj_t, obj_t);
	static obj_t BGl_z62lambda2572z62zzsaw_registerzd2allocationzd2(obj_t, obj_t,
		obj_t);
	static BgL_blockz00_bglt
		BGl_z62lambda2493z62zzsaw_registerzd2allocationzd2(obj_t, obj_t, obj_t,
		obj_t, obj_t, obj_t);
	static obj_t __cnst[10];


	   
		 
		DEFINE_STATIC_BGL_GENERIC
		(BGl_protectzd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762protectza7d2int2871z00,
		BGl_z62protectzd2interferencez12za2zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 2);
	extern obj_t BGl_dumpzd2envzd2zzsaw_defsz00;
	   
		 
		DEFINE_STRING(BGl_string2806z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2806za700za7za7s2872za7, "\n", 1);
	      DEFINE_STRING(BGl_string2807z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2807za700za7za7s2873za7, "        no reg. alloc. ", 23);
	      DEFINE_STRING(BGl_string2808z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2808za700za7za7s2874za7, "blacklist", 9);
	      DEFINE_STRING(BGl_string2809z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2809za700za7za7s2875za7, "too large [~a/~a]", 17);
	     
		DEFINE_EXPORT_BGL_PROCEDURE
		(BGl_registerzd2allocationzd2envz00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762registerza7d2al2876z00,
		BGl_z62registerzd2allocationzb0zzsaw_registerzd2allocationzd2, 0L, BUNSPEC,
		4);
	      DEFINE_STRING(BGl_string2810z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2810za700za7za7s2877za7, " instrs]:\n", 10);
	      DEFINE_STRING(BGl_string2811z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2811za700za7za7s2878za7, " [size=", 7);
	      DEFINE_STRING(BGl_string2812z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2812za700za7za7s2879za7, "        reg. alloc. ", 20);
	      DEFINE_STRING(BGl_string2813z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2813za700za7za7s2880za7, "          number of registers... ",
		33);
	      DEFINE_STRING(BGl_string2814z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2814za700za7za7s2881za7, "          number of parameters... ",
		34);
	      DEFINE_STRING(BGl_string2815z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2815za700za7za7s2882za7,
		"          number of temporaries... ", 35);
	      DEFINE_STRING(BGl_string2816z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2816za700za7za7s2883za7, "          liveness..", 20);
	      DEFINE_STRING(BGl_string2817z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2817za700za7za7s2884za7, ".", 1);
	      DEFINE_STRING(BGl_string2818z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2818za700za7za7s2885za7, " done\n", 6);
	      DEFINE_STRING(BGl_string2819z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2819za700za7za7s2886za7, "          graph interference... ",
		32);
	      DEFINE_STRING(BGl_string2820z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2820za700za7za7s2887za7, "done\n", 5);
	      DEFINE_STRING(BGl_string2821z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2821za700za7za7s2888za7,
		"          removed useless dest. registers... ", 45);
	      DEFINE_STRING(BGl_string2823z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2823za700za7za7s2889za7, " registers\n", 11);
	      DEFINE_STRING(BGl_string2824z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2824za700za7za7s2890za7, ")", 1);
	      DEFINE_STRING(BGl_string2825z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2825za700za7za7s2891za7, " (of ", 5);
	      DEFINE_STRING(BGl_string2826z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2826za700za7za7s2892za7, "          stack coloring... ", 28);
	      DEFINE_STRING(BGl_string2827z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2827za700za7za7s2893za7, " spills", 7);
	      DEFINE_STRING(BGl_string2828z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2828za700za7za7s2894za7, " regs, ", 7);
	      DEFINE_STRING(BGl_string2829z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2829za700za7za7s2895za7, " temps -> ", 10);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2822z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2896za7,
		BGl_z62zc3z04anonymousza32184ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2830z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2830za700za7za7s2897za7, " h-regs, ", 9);
	      DEFINE_STRING(BGl_string2831z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2831za700za7za7s2898za7, "          register coloring... ",
		31);
	      DEFINE_STRING(BGl_string2832z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2832za700za7za7s2899za7, " removed\n", 9);
	      DEFINE_STRING(BGl_string2833z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2833za700za7za7s2900za7, "          move... ", 18);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2834z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2508za7622901z00,
		BGl_z62lambda2508z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 2);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2835z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2507za7622902z00,
		BGl_z62lambda2507z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2836z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2500za7622903z00,
		BGl_z62lambda2500z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2837z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2904za7,
		BGl_z62zc3z04anonymousza32499ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2838z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2497za7622905z00,
		BGl_z62lambda2497z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2839z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2493za7622906z00,
		BGl_z62lambda2493z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 5);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2840z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2907za7,
		BGl_z62zc3z04anonymousza32543ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 0);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2841z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2542za7622908z00,
		BGl_z62lambda2542z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 2);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2842z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2541za7622909z00,
		BGl_z62lambda2541z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2843z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2910za7,
		BGl_z62zc3z04anonymousza32552ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 0);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2844z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2551za7622911z00,
		BGl_z62lambda2551z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 2);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2845z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2550za7622912z00,
		BGl_z62lambda2550z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2846z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2913za7,
		BGl_z62zc3z04anonymousza32561ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 0);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2847z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2560za7622914z00,
		BGl_z62lambda2560z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 2);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2848z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2559za7622915z00,
		BGl_z62lambda2559z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2849z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2916za7,
		BGl_z62zc3z04anonymousza32573ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 0);
	      DEFINE_STRING(BGl_string2857z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2857za700za7za7s2917za7, "protect-interference1760", 24);
	      DEFINE_STRING(BGl_string2859z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2859za700za7za7s2918za7, "type-interference!1762", 22);
	extern obj_t BGl_collectzd2registerz12zd2envz12zzsaw_regutilsz00;
	   
		 
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2850z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2572za7622919z00,
		BGl_z62lambda2572z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 2);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2851z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2571za7622920z00,
		BGl_z62lambda2571z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2852z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2529za7622921z00,
		BGl_z62lambda2529z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2853z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762za7c3za704anonymo2922za7,
		BGl_z62zc3z04anonymousza32528ze3ze5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2854z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2525za7622923z00,
		BGl_z62lambda2525z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	      DEFINE_STRING(BGl_string2861z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2861za700za7za7s2924za7, "rtl-size1764", 12);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2855z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762lambda2519za7622925z00,
		BGl_z62lambda2519z62zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 9);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2856z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762protectza7d2int2926z00,
		BGl_z62protectzd2interference1760zb0zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2863z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2863za700za7za7s2927za7, "rtl-size", 8);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2858z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762typeza7d2interf2928z00,
		BGl_z62typezd2interferencez121762za2zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 2);
	      DEFINE_STRING(BGl_string2866z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2866za700za7za7s2929za7, "dump", 4);
	      DEFINE_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2867za700za7za7s2930za7, "saw_register-allocation", 23);
	      DEFINE_STRING(BGl_string2868z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_string2868za700za7za7s2931za7,
		"rtl_ins/ra spill in out obj def saw_register-allocation block/ra pair-nil last ",
		79);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2860z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762rtlza7d2siza7a7e12932za7,
		BGl_z62rtlzd2siza7e1764z17zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2862z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762rtlza7d2siza7a7eza72933z00,
		BGl_z62rtlzd2siza7ezd2block1767zc5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2864z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762rtlza7d2siza7a7eza72934z00,
		BGl_z62rtlzd2siza7ezd2rtl_ins1769zc5zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 1);
	     
		DEFINE_STATIC_BGL_PROCEDURE(BGl_proc2865z00zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762dumpza7d2rtl_in2935z00,
		BGl_z62dumpzd2rtl_inszf2ra1771z42zzsaw_registerzd2allocationzd2, 0L,
		BUNSPEC, 3);
	     
		DEFINE_EXPORT_BGL_GENERIC
		(BGl_typezd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762typeza7d2interf2936z00,
		BGl_z62typezd2interferencez12za2zzsaw_registerzd2allocationzd2, 0L, BUNSPEC,
		2);
	     
		DEFINE_STATIC_BGL_GENERIC
		(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
		BgL_bgl_za762rtlza7d2siza7a7eza72937z00,
		BGl_z62rtlzd2siza7ez17zzsaw_registerzd2allocationzd2, 0L, BUNSPEC, 1);

/* GC roots registration */
	static obj_t bgl_gc_roots_register()
	{
#if defined( BGL_GC_ROOTS )
#define ADD_ROOT( addr ) (addr > roots_max ? roots_max = addr : (addr < roots_min ? roots_min = addr : 0))
		void *roots_min = (void *) ULONG_MAX, *roots_max = 0;
		   
			 ADD_ROOT((void
				*) (&BGl_requirezd2initializa7ationz75zzsaw_registerzd2allocationzd2));
		     ADD_ROOT((void *) (&BGl_blockzf2razf2zzsaw_registerzd2allocationzd2));
		   
			 ADD_ROOT((void *) (&BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2));
#undef ADD_ROOT
		if   (roots_max > 0)
			     GC_add_roots(roots_min, ((void **) roots_max) + 1);
#endif
		     return BUNSPEC;
	}



/* module-initialization */
	BGL_EXPORTED_DEF obj_t
		BGl_modulezd2initializa7ationz75zzsaw_registerzd2allocationzd2(long
		BgL_checksumz00_5811, char *BgL_fromz00_5812)
	{
		{
			if (CBOOL
				(BGl_requirezd2initializa7ationz75zzsaw_registerzd2allocationzd2))
				{
					BGl_requirezd2initializa7ationz75zzsaw_registerzd2allocationzd2 =
						BBOOL(((bool_t) 0));
					BGl_gczd2rootszd2initz00zzsaw_registerzd2allocationzd2();
					BGl_libraryzd2moduleszd2initz00zzsaw_registerzd2allocationzd2();
					BGl_cnstzd2initzd2zzsaw_registerzd2allocationzd2();
					BGl_importedzd2moduleszd2initz00zzsaw_registerzd2allocationzd2();
					BGl_objectzd2initzd2zzsaw_registerzd2allocationzd2();
					BGl_genericzd2initzd2zzsaw_registerzd2allocationzd2();
					BGl_methodzd2initzd2zzsaw_registerzd2allocationzd2();
					return BGl_toplevelzd2initzd2zzsaw_registerzd2allocationzd2();
				}
			else
				{
					return BUNSPEC;
				}
		}

	}



/* library-modules-init */
	obj_t BGl_libraryzd2moduleszd2initz00zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			BGl_modulezd2initializa7ationz75zz__objectz00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_pairs_and_lists_6_3z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_output_6_10_3z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__readerz00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_ports_6_10_1z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_control_features_6_9z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_vectors_6_8z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_symbols_6_4z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_strings_6_7z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__bitz00(0L, "saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__biglooz00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_flonumz00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r5_control_features_6_4z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_equivalence_6_2z00(0L,
				"saw_register-allocation");
			BGl_modulezd2initializa7ationz75zz__r4_numbers_6_5_fixnumz00(0L,
				"saw_register-allocation");
			return BUNSPEC;
		}

	}



/* cnst-init */
	obj_t BGl_cnstzd2initzd2zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			{	/* SawMill/regalloc.scm 15 */
				obj_t BgL_cportz00_5642;

				{	/* SawMill/regalloc.scm 15 */
					obj_t BgL_stringz00_5649;

					BgL_stringz00_5649 = BGl_string2868z00zzsaw_registerzd2allocationzd2;
					{	/* SawMill/regalloc.scm 15 */
						obj_t BgL_startz00_5650;

						BgL_startz00_5650 = BINT(0L);
						{	/* SawMill/regalloc.scm 15 */
							obj_t BgL_endz00_5651;

							BgL_endz00_5651 =
								BINT(STRING_LENGTH(((obj_t) BgL_stringz00_5649)));
							{	/* SawMill/regalloc.scm 15 */

								BgL_cportz00_5642 =
									BGl_openzd2inputzd2stringz12z12zz__r4_ports_6_10_1z00
									(BgL_stringz00_5649, BgL_startz00_5650, BgL_endz00_5651);
				}}}}
				{
					long BgL_iz00_5643;

					BgL_iz00_5643 = 9L;
				BgL_loopz00_5644:
					if ((BgL_iz00_5643 == -1L))
						{	/* SawMill/regalloc.scm 15 */
							return BUNSPEC;
						}
					else
						{	/* SawMill/regalloc.scm 15 */
							{	/* SawMill/regalloc.scm 15 */
								obj_t BgL_arg2870z00_5645;

								{	/* SawMill/regalloc.scm 15 */

									{	/* SawMill/regalloc.scm 15 */
										obj_t BgL_locationz00_5647;

										BgL_locationz00_5647 = BBOOL(((bool_t) 0));
										{	/* SawMill/regalloc.scm 15 */

											BgL_arg2870z00_5645 =
												BGl_readz00zz__readerz00(BgL_cportz00_5642,
												BgL_locationz00_5647);
										}
									}
								}
								{	/* SawMill/regalloc.scm 15 */
									int BgL_tmpz00_5849;

									BgL_tmpz00_5849 = (int) (BgL_iz00_5643);
									CNST_TABLE_SET(BgL_tmpz00_5849, BgL_arg2870z00_5645);
							}}
							{	/* SawMill/regalloc.scm 15 */
								int BgL_auxz00_5648;

								BgL_auxz00_5648 = (int) ((BgL_iz00_5643 - 1L));
								{
									long BgL_iz00_5854;

									BgL_iz00_5854 = (long) (BgL_auxz00_5648);
									BgL_iz00_5643 = BgL_iz00_5854;
									goto BgL_loopz00_5644;
								}
							}
						}
				}
			}
		}

	}



/* gc-roots-init */
	obj_t BGl_gczd2rootszd2initz00zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			return bgl_gc_roots_register();
		}

	}



/* toplevel-init */
	obj_t BGl_toplevelzd2initzd2zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			return BUNSPEC;
		}

	}



/* append-21011 */
	obj_t BGl_appendzd221011zd2zzsaw_registerzd2allocationzd2(obj_t BgL_l1z00_1,
		obj_t BgL_l2z00_2)
	{
		{
			{
				obj_t BgL_headz00_2034;

				BgL_headz00_2034 = MAKE_YOUNG_PAIR(BNIL, BgL_l2z00_2);
				{
					obj_t BgL_prevz00_2035;
					obj_t BgL_tailz00_2036;

					BgL_prevz00_2035 = BgL_headz00_2034;
					BgL_tailz00_2036 = BgL_l1z00_1;
				BgL_loopz00_2037:
					if (PAIRP(BgL_tailz00_2036))
						{
							obj_t BgL_newzd2prevzd2_2039;

							BgL_newzd2prevzd2_2039 =
								MAKE_YOUNG_PAIR(CAR(BgL_tailz00_2036), BgL_l2z00_2);
							SET_CDR(BgL_prevz00_2035, BgL_newzd2prevzd2_2039);
							{
								obj_t BgL_tailz00_5864;
								obj_t BgL_prevz00_5863;

								BgL_prevz00_5863 = BgL_newzd2prevzd2_2039;
								BgL_tailz00_5864 = CDR(BgL_tailz00_2036);
								BgL_tailz00_2036 = BgL_tailz00_5864;
								BgL_prevz00_2035 = BgL_prevz00_5863;
								goto BgL_loopz00_2037;
							}
						}
					else
						{
							BNIL;
						}
					return CDR(BgL_headz00_2034);
				}
			}
		}

	}



/* register-allocation */
	BGL_EXPORTED_DEF obj_t
		BGl_registerzd2allocationzd2zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_61, BgL_globalz00_bglt BgL_globalz00_62,
		obj_t BgL_paramsz00_63, obj_t BgL_blocksz00_64)
	{
		{	/* SawMill/regalloc.scm 50 */
			{
				obj_t BgL_msgz00_2066;

				{	/* SawMill/regalloc.scm 55 */
					obj_t BgL_idz00_2055;

					BgL_idz00_2055 =
						(((BgL_variablez00_bglt) COBJECT(
								((BgL_variablez00_bglt) BgL_globalz00_62)))->BgL_idz00);
					if (CBOOL
						(BGl_za2sawzd2registerzd2allocationzf3za2zf3zzengine_paramz00))
						{	/* SawMill/regalloc.scm 56 */
							if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00(BgL_idz00_2055,
										BGl_za2sawzd2nozd2registerzd2allocationzd2functionsza2z00zzengine_paramz00)))
								{	/* SawMill/regalloc.scm 58 */
									BgL_msgz00_2066 =
										BGl_string2808z00zzsaw_registerzd2allocationzd2;
								BgL_zc3z04anonymousza31827ze3z87_2067:
									{	/* SawMill/regalloc.scm 53 */
										obj_t BgL_list1828z00_2068;

										{	/* SawMill/regalloc.scm 53 */
											obj_t BgL_arg1829z00_2069;

											{	/* SawMill/regalloc.scm 53 */
												obj_t BgL_arg1830z00_2070;

												BgL_arg1830z00_2070 =
													MAKE_YOUNG_PAIR
													(BGl_string2806z00zzsaw_registerzd2allocationzd2,
													BNIL);
												BgL_arg1829z00_2069 =
													MAKE_YOUNG_PAIR(BgL_msgz00_2066, BgL_arg1830z00_2070);
											}
											BgL_list1828z00_2068 =
												MAKE_YOUNG_PAIR
												(BGl_string2807z00zzsaw_registerzd2allocationzd2,
												BgL_arg1829z00_2069);
										}
										BGl_verbosez00zztools_speekz00(BINT(2L),
											BgL_list1828z00_2068);
									}
								}
							else
								{	/* SawMill/regalloc.scm 58 */
									if (PAIRP
										(BGl_za2sawzd2registerzd2allocationzd2functionsza2zd2zzengine_paramz00))
										{	/* SawMill/regalloc.scm 60 */
											BBOOL
												(BGl_z52registerzd2allocationz80zzsaw_registerzd2allocationzd2
												(BgL_backz00_61, BgL_globalz00_62, BgL_paramsz00_63,
													BgL_blocksz00_64));
										}
									else
										{	/* SawMill/regalloc.scm 60 */
											if (
												((long)
													CINT
													(BGl_za2sawzd2registerzd2allocationzd2maxzd2siza7eza2za7zzengine_paramz00)
													< 0L))
												{	/* SawMill/regalloc.scm 62 */
													BBOOL
														(BGl_z52registerzd2allocationz80zzsaw_registerzd2allocationzd2
														(BgL_backz00_61, BgL_globalz00_62, BgL_paramsz00_63,
															BgL_blocksz00_64));
												}
											else
												{	/* SawMill/regalloc.scm 64 */
													bool_t BgL_test2945z00_5888;

													{	/* SawMill/regalloc.scm 64 */
														obj_t BgL_arg1826z00_2065;

														BgL_arg1826z00_2065 =
															BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2
															(BgL_blocksz00_64);
														BgL_test2945z00_5888 =
															((long) CINT(BgL_arg1826z00_2065) >=
															(long)
															CINT
															(BGl_za2sawzd2registerzd2allocationzd2maxzd2siza7eza2za7zzengine_paramz00));
													}
													if (BgL_test2945z00_5888)
														{	/* SawMill/regalloc.scm 67 */
															obj_t BgL_arg1822z00_2061;

															{	/* SawMill/regalloc.scm 67 */
																obj_t BgL_arg1823z00_2062;

																BgL_arg1823z00_2062 =
																	BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2
																	(BgL_blocksz00_64);
																{	/* SawMill/regalloc.scm 66 */
																	obj_t BgL_list1824z00_2063;

																	{	/* SawMill/regalloc.scm 66 */
																		obj_t BgL_arg1825z00_2064;

																		BgL_arg1825z00_2064 =
																			MAKE_YOUNG_PAIR
																			(BGl_za2sawzd2registerzd2allocationzd2maxzd2siza7eza2za7zzengine_paramz00,
																			BNIL);
																		BgL_list1824z00_2063 =
																			MAKE_YOUNG_PAIR(BgL_arg1823z00_2062,
																			BgL_arg1825z00_2064);
																	}
																	BgL_arg1822z00_2061 =
																		BGl_formatz00zz__r4_output_6_10_3z00
																		(BGl_string2809z00zzsaw_registerzd2allocationzd2,
																		BgL_list1824z00_2063);
																}
															}
															{
																obj_t BgL_msgz00_5897;

																BgL_msgz00_5897 = BgL_arg1822z00_2061;
																BgL_msgz00_2066 = BgL_msgz00_5897;
																goto BgL_zc3z04anonymousza31827ze3z87_2067;
															}
														}
													else
														{	/* SawMill/regalloc.scm 64 */
															BBOOL
																(BGl_z52registerzd2allocationz80zzsaw_registerzd2allocationzd2
																(BgL_backz00_61, BgL_globalz00_62,
																	BgL_paramsz00_63, BgL_blocksz00_64));
														}
												}
										}
								}
						}
					else
						{	/* SawMill/regalloc.scm 56 */
							BFALSE;
						}
					return BgL_blocksz00_64;
				}
			}
		}

	}



/* &register-allocation */
	obj_t BGl_z62registerzd2allocationzb0zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5461, obj_t BgL_backz00_5462, obj_t BgL_globalz00_5463,
		obj_t BgL_paramsz00_5464, obj_t BgL_blocksz00_5465)
	{
		{	/* SawMill/regalloc.scm 50 */
			return
				BGl_registerzd2allocationzd2zzsaw_registerzd2allocationzd2(
				((BgL_backendz00_bglt) BgL_backz00_5462),
				((BgL_globalz00_bglt) BgL_globalz00_5463), BgL_paramsz00_5464,
				BgL_blocksz00_5465);
		}

	}



/* %register-allocation */
	bool_t
		BGl_z52registerzd2allocationz80zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_65, BgL_globalz00_bglt BgL_globalz00_66,
		obj_t BgL_paramsz00_67, obj_t BgL_blocksz00_68)
	{
		{	/* SawMill/regalloc.scm 75 */
			{	/* SawMill/regalloc.scm 77 */
				obj_t BgL_arg1831z00_2072;
				obj_t BgL_arg1832z00_2073;

				BgL_arg1831z00_2072 =
					BGl_shapez00zztools_shapez00(((obj_t) BgL_globalz00_66));
				BgL_arg1832z00_2073 =
					BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(BgL_blocksz00_68);
				{	/* SawMill/regalloc.scm 76 */
					obj_t BgL_list1833z00_2074;

					{	/* SawMill/regalloc.scm 76 */
						obj_t BgL_arg1834z00_2075;

						{	/* SawMill/regalloc.scm 76 */
							obj_t BgL_arg1835z00_2076;

							{	/* SawMill/regalloc.scm 76 */
								obj_t BgL_arg1836z00_2077;

								{	/* SawMill/regalloc.scm 76 */
									obj_t BgL_arg1837z00_2078;

									BgL_arg1837z00_2078 =
										MAKE_YOUNG_PAIR
										(BGl_string2810z00zzsaw_registerzd2allocationzd2, BNIL);
									BgL_arg1836z00_2077 =
										MAKE_YOUNG_PAIR(BgL_arg1832z00_2073, BgL_arg1837z00_2078);
								}
								BgL_arg1835z00_2076 =
									MAKE_YOUNG_PAIR
									(BGl_string2811z00zzsaw_registerzd2allocationzd2,
									BgL_arg1836z00_2077);
							}
							BgL_arg1834z00_2075 =
								MAKE_YOUNG_PAIR(BgL_arg1831z00_2072, BgL_arg1835z00_2076);
						}
						BgL_list1833z00_2074 =
							MAKE_YOUNG_PAIR(BGl_string2812z00zzsaw_registerzd2allocationzd2,
							BgL_arg1834z00_2075);
					}
					BGl_verbosez00zztools_speekz00(BINT(2L), BgL_list1833z00_2074);
				}
			}
			BGl_cleanupzd2movezd2treez12z12zzsaw_registerzd2allocationzd2
				(BgL_blocksz00_68);
			{	/* SawMill/regalloc.scm 81 */
				obj_t BgL_cregsz00_2079;

				BgL_cregsz00_2079 =
					BGl_collectzd2registersz12zc0zzsaw_regutilsz00(BgL_blocksz00_68);
				{	/* SawMill/regalloc.scm 81 */
					obj_t BgL_hregsz00_2080;

					{	/* SawMill/regalloc.scm 82 */
						obj_t BgL_arg1885z00_2141;

						BgL_arg1885z00_2141 =
							(((BgL_backendz00_bglt) COBJECT(BgL_backz00_65))->
							BgL_registersz00);
						{	/* SawMill/regalloc.scm 82 */
							obj_t BgL_list1886z00_2142;

							BgL_list1886z00_2142 = MAKE_YOUNG_PAIR(BgL_arg1885z00_2141, BNIL);
							BgL_hregsz00_2080 =
								BGl_appendzd2mapz12zc0zz__r4_control_features_6_9z00
								(BGl_collectzd2registerz12zd2envz12zzsaw_regutilsz00,
								BgL_list1886z00_2142);
						}
					}
					{	/* SawMill/regalloc.scm 82 */
						obj_t BgL_pregsz00_2081;

						{	/* SawMill/regalloc.scm 83 */
							obj_t BgL_hook1553z00_2127;

							BgL_hook1553z00_2127 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
							{
								obj_t BgL_l1550z00_2129;
								obj_t BgL_h1551z00_2130;

								BgL_l1550z00_2129 = BgL_paramsz00_67;
								BgL_h1551z00_2130 = BgL_hook1553z00_2127;
							BgL_zc3z04anonymousza31876ze3z87_2131:
								if (NULLP(BgL_l1550z00_2129))
									{	/* SawMill/regalloc.scm 83 */
										BgL_pregsz00_2081 = CDR(BgL_hook1553z00_2127);
									}
								else
									{	/* SawMill/regalloc.scm 83 */
										bool_t BgL_test2947z00_5922;

										{	/* SawMill/regalloc.scm 83 */
											obj_t BgL_arg1884z00_2139;

											BgL_arg1884z00_2139 = CAR(((obj_t) BgL_l1550z00_2129));
											{	/* SawMill/regalloc.scm 83 */
												obj_t BgL_classz00_3881;

												BgL_classz00_3881 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
												if (BGL_OBJECTP(BgL_arg1884z00_2139))
													{	/* SawMill/regalloc.scm 83 */
														BgL_objectz00_bglt BgL_arg1801z00_3883;

														BgL_arg1801z00_3883 =
															(BgL_objectz00_bglt) (BgL_arg1884z00_2139);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/regalloc.scm 83 */
																long BgL_idxz00_3889;

																BgL_idxz00_3889 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_3883);
																BgL_test2947z00_5922 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_3889 + 2L)) ==
																	BgL_classz00_3881);
															}
														else
															{	/* SawMill/regalloc.scm 83 */
																bool_t BgL_res2754z00_3911;

																{	/* SawMill/regalloc.scm 83 */
																	obj_t BgL_oclassz00_3897;

																	{	/* SawMill/regalloc.scm 83 */
																		long BgL_arg1808z00_3903;

																		{	/* SawMill/regalloc.scm 83 */
																			long BgL_arg1809z00_3904;

																			BgL_arg1809z00_3904 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_3883);
																			BgL_arg1808z00_3903 =
																				(BgL_arg1809z00_3904 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_3897 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_3903);
																	}
																	{	/* SawMill/regalloc.scm 83 */
																		bool_t BgL__ortest_1115z00_3898;

																		BgL__ortest_1115z00_3898 =
																			(BgL_classz00_3881 == BgL_oclassz00_3897);
																		if (BgL__ortest_1115z00_3898)
																			{	/* SawMill/regalloc.scm 83 */
																				BgL_res2754z00_3911 =
																					BgL__ortest_1115z00_3898;
																			}
																		else
																			{	/* SawMill/regalloc.scm 83 */
																				long BgL_odepthz00_3899;

																				BgL_odepthz00_3899 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_3897);
																				if ((2L < BgL_odepthz00_3899))
																					{	/* SawMill/regalloc.scm 83 */
																						obj_t BgL_arg1797z00_3901;

																						BgL_arg1797z00_3901 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_3897, 2L);
																						BgL_res2754z00_3911 =
																							(BgL_arg1797z00_3901 ==
																							BgL_classz00_3881);
																					}
																				else
																					{	/* SawMill/regalloc.scm 83 */
																						BgL_res2754z00_3911 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2947z00_5922 = BgL_res2754z00_3911;
															}
													}
												else
													{	/* SawMill/regalloc.scm 83 */
														BgL_test2947z00_5922 = ((bool_t) 0);
													}
											}
										}
										if (BgL_test2947z00_5922)
											{	/* SawMill/regalloc.scm 83 */
												obj_t BgL_nh1552z00_2135;

												{	/* SawMill/regalloc.scm 83 */
													obj_t BgL_arg1882z00_2137;

													BgL_arg1882z00_2137 =
														CAR(((obj_t) BgL_l1550z00_2129));
													BgL_nh1552z00_2135 =
														MAKE_YOUNG_PAIR(BgL_arg1882z00_2137, BNIL);
												}
												SET_CDR(BgL_h1551z00_2130, BgL_nh1552z00_2135);
												{	/* SawMill/regalloc.scm 83 */
													obj_t BgL_arg1881z00_2136;

													BgL_arg1881z00_2136 =
														CDR(((obj_t) BgL_l1550z00_2129));
													{
														obj_t BgL_h1551z00_5951;
														obj_t BgL_l1550z00_5950;

														BgL_l1550z00_5950 = BgL_arg1881z00_2136;
														BgL_h1551z00_5951 = BgL_nh1552z00_2135;
														BgL_h1551z00_2130 = BgL_h1551z00_5951;
														BgL_l1550z00_2129 = BgL_l1550z00_5950;
														goto BgL_zc3z04anonymousza31876ze3z87_2131;
													}
												}
											}
										else
											{	/* SawMill/regalloc.scm 83 */
												obj_t BgL_arg1883z00_2138;

												BgL_arg1883z00_2138 = CDR(((obj_t) BgL_l1550z00_2129));
												{
													obj_t BgL_l1550z00_5954;

													BgL_l1550z00_5954 = BgL_arg1883z00_2138;
													BgL_l1550z00_2129 = BgL_l1550z00_5954;
													goto BgL_zc3z04anonymousza31876ze3z87_2131;
												}
											}
									}
							}
						}
						{	/* SawMill/regalloc.scm 83 */
							obj_t BgL_regsz00_2082;

							BgL_regsz00_2082 =
								BGl_appendzd221011zd2zzsaw_registerzd2allocationzd2
								(BgL_hregsz00_2080, BgL_cregsz00_2079);
							{	/* SawMill/regalloc.scm 84 */

								if (NULLP(BgL_cregsz00_2079))
									{	/* SawMill/regalloc.scm 85 */
										BFALSE;
									}
								else
									{	/* SawMill/regalloc.scm 85 */
										{
											obj_t BgL_l1554z00_2085;

											BgL_l1554z00_2085 = BgL_regsz00_2082;
										BgL_zc3z04anonymousza31839ze3z87_2086:
											if (PAIRP(BgL_l1554z00_2085))
												{	/* SawMill/regalloc.scm 87 */
													{	/* SawMill/regalloc.scm 88 */
														obj_t BgL_rz00_2088;

														BgL_rz00_2088 = CAR(BgL_l1554z00_2085);
														{
															BgL_rtl_regzf2razf2_bglt BgL_auxz00_5961;

															{
																obj_t BgL_auxz00_5962;

																{	/* SawMill/regalloc.scm 89 */
																	BgL_objectz00_bglt BgL_tmpz00_5963;

																	BgL_tmpz00_5963 =
																		((BgL_objectz00_bglt)
																		((BgL_rtl_regz00_bglt) BgL_rz00_2088));
																	BgL_auxz00_5962 =
																		BGL_OBJECT_WIDENING(BgL_tmpz00_5963);
																}
																BgL_auxz00_5961 =
																	((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_5962);
															}
															((((BgL_rtl_regzf2razf2_bglt)
																		COBJECT(BgL_auxz00_5961))->
																	BgL_interferez00) =
																((obj_t) ((obj_t)
																		BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
																		(BgL_regsz00_2082))), BUNSPEC);
														}
													}
													{
														obj_t BgL_l1554z00_5971;

														BgL_l1554z00_5971 = CDR(BgL_l1554z00_2085);
														BgL_l1554z00_2085 = BgL_l1554z00_5971;
														goto BgL_zc3z04anonymousza31839ze3z87_2086;
													}
												}
											else
												{	/* SawMill/regalloc.scm 87 */
													((bool_t) 1);
												}
										}
										{	/* SawMill/regalloc.scm 91 */
											long BgL_arg1842z00_2092;

											BgL_arg1842z00_2092 = bgl_list_length(BgL_hregsz00_2080);
											{	/* SawMill/regalloc.scm 91 */
												obj_t BgL_list1843z00_2093;

												{	/* SawMill/regalloc.scm 91 */
													obj_t BgL_arg1844z00_2094;

													{	/* SawMill/regalloc.scm 91 */
														obj_t BgL_arg1845z00_2095;

														BgL_arg1845z00_2095 =
															MAKE_YOUNG_PAIR
															(BGl_string2806z00zzsaw_registerzd2allocationzd2,
															BNIL);
														BgL_arg1844z00_2094 =
															MAKE_YOUNG_PAIR(BINT(BgL_arg1842z00_2092),
															BgL_arg1845z00_2095);
													}
													BgL_list1843z00_2093 =
														MAKE_YOUNG_PAIR
														(BGl_string2813z00zzsaw_registerzd2allocationzd2,
														BgL_arg1844z00_2094);
												}
												BGl_verbosez00zztools_speekz00(BINT(3L),
													BgL_list1843z00_2093);
										}}
										{	/* SawMill/regalloc.scm 92 */
											long BgL_arg1846z00_2096;

											BgL_arg1846z00_2096 = bgl_list_length(BgL_pregsz00_2081);
											{	/* SawMill/regalloc.scm 92 */
												obj_t BgL_list1847z00_2097;

												{	/* SawMill/regalloc.scm 92 */
													obj_t BgL_arg1848z00_2098;

													{	/* SawMill/regalloc.scm 92 */
														obj_t BgL_arg1850z00_2099;

														BgL_arg1850z00_2099 =
															MAKE_YOUNG_PAIR
															(BGl_string2806z00zzsaw_registerzd2allocationzd2,
															BNIL);
														BgL_arg1848z00_2098 =
															MAKE_YOUNG_PAIR(BINT(BgL_arg1846z00_2096),
															BgL_arg1850z00_2099);
													}
													BgL_list1847z00_2097 =
														MAKE_YOUNG_PAIR
														(BGl_string2814z00zzsaw_registerzd2allocationzd2,
														BgL_arg1848z00_2098);
												}
												BGl_verbosez00zztools_speekz00(BINT(3L),
													BgL_list1847z00_2097);
										}}
										{	/* SawMill/regalloc.scm 93 */
											long BgL_arg1851z00_2100;

											BgL_arg1851z00_2100 = bgl_list_length(BgL_cregsz00_2079);
											{	/* SawMill/regalloc.scm 93 */
												obj_t BgL_list1852z00_2101;

												{	/* SawMill/regalloc.scm 93 */
													obj_t BgL_arg1853z00_2102;

													{	/* SawMill/regalloc.scm 93 */
														obj_t BgL_arg1854z00_2103;

														BgL_arg1854z00_2103 =
															MAKE_YOUNG_PAIR
															(BGl_string2806z00zzsaw_registerzd2allocationzd2,
															BNIL);
														BgL_arg1853z00_2102 =
															MAKE_YOUNG_PAIR(BINT(BgL_arg1851z00_2100),
															BgL_arg1854z00_2103);
													}
													BgL_list1852z00_2101 =
														MAKE_YOUNG_PAIR
														(BGl_string2815z00zzsaw_registerzd2allocationzd2,
														BgL_arg1853z00_2102);
												}
												BGl_verbosez00zztools_speekz00(BINT(3L),
													BgL_list1852z00_2101);
										}}
										BGl_protectzd2interferencez12zc0zzsaw_registerzd2allocationzd2
											(BgL_blocksz00_68, BgL_regsz00_2082);
										BGl_widenzd2raz12zc0zzsaw_registerzd2allocationzd2
											(BgL_blocksz00_68, BgL_regsz00_2082);
										BGl_livenessz12z12zzsaw_registerzd2allocationzd2
											(BgL_blocksz00_68, BgL_pregsz00_2081);
										BGl_hardwarezd2mutualzd2interferencez12z12zzsaw_registerzd2allocationzd2
											(BgL_hregsz00_2080);
										BGl_hardwarezd2parameterszd2interferencez12z12zzsaw_registerzd2allocationzd2
											(BgL_backz00_65, BgL_pregsz00_2081);
										BGl_hardwarezd2interferencez12zc0zzsaw_registerzd2allocationzd2
											(BgL_backz00_65, BgL_blocksz00_68);
										BGl_typezd2interferencez12zc0zzsaw_registerzd2allocationzd2
											(BgL_backz00_65, BgL_regsz00_2082);
										BGl_interferencez12z12zzsaw_registerzd2allocationzd2
											(BgL_blocksz00_68, BgL_regsz00_2082);
										BGl_cleanupzd2destz12zc0zzsaw_registerzd2allocationzd2
											(BgL_blocksz00_68);
										BGl_registerzd2coloringzd2zzsaw_registerzd2allocationzd2
											(BgL_pregsz00_2081, BgL_hregsz00_2080, BgL_cregsz00_2079);
										BGl_funcallzd2spillz12zc0zzsaw_registerzd2allocationzd2
											(BgL_hregsz00_2080, BgL_blocksz00_68);
										BGl_rtlzd2mapzd2registersz12z12zzsaw_registerzd2allocationzd2
											(BgL_pregsz00_2081, BgL_cregsz00_2079, BgL_blocksz00_68);
										if (((long) CINT(BGl_za2optimza2z00zzengine_paramz00) > 1L))
											{	/* SawMill/regalloc.scm 121 */
												BGl_removezd2nopzd2movez12z12zzsaw_registerzd2allocationzd2
													(BgL_blocksz00_68);
											}
										else
											{	/* SawMill/regalloc.scm 121 */
												BFALSE;
											}
									}
								{
									obj_t BgL_l1556z00_2106;

									BgL_l1556z00_2106 = BgL_regsz00_2082;
								BgL_zc3z04anonymousza31856ze3z87_2107:
									if (PAIRP(BgL_l1556z00_2106))
										{	/* SawMill/regalloc.scm 126 */
											{	/* SawMill/regalloc.scm 126 */
												obj_t BgL_o1558z00_2109;

												BgL_o1558z00_2109 = CAR(BgL_l1556z00_2106);
												{	/* SawMill/regalloc.scm 126 */
													long BgL_arg1860z00_2110;

													{	/* SawMill/regalloc.scm 126 */
														obj_t BgL_arg1861z00_2111;

														{	/* SawMill/regalloc.scm 126 */
															obj_t BgL_arg1864z00_2112;

															{	/* SawMill/regalloc.scm 126 */
																long BgL_arg1808z00_3922;

																{	/* SawMill/regalloc.scm 126 */
																	long BgL_arg1809z00_3923;

																	BgL_arg1809z00_3923 =
																		BGL_OBJECT_CLASS_NUM(
																		((BgL_objectz00_bglt) BgL_o1558z00_2109));
																	BgL_arg1808z00_3922 =
																		(BgL_arg1809z00_3923 - OBJECT_TYPE);
																}
																BgL_arg1864z00_2112 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_3922);
															}
															BgL_arg1861z00_2111 =
																BGl_classzd2superzd2zz__objectz00
																(BgL_arg1864z00_2112);
														}
														{	/* SawMill/regalloc.scm 126 */
															obj_t BgL_tmpz00_6018;

															BgL_tmpz00_6018 = ((obj_t) BgL_arg1861z00_2111);
															BgL_arg1860z00_2110 =
																BGL_CLASS_NUM(BgL_tmpz00_6018);
													}}
													BGL_OBJECT_CLASS_NUM_SET(
														((BgL_objectz00_bglt) BgL_o1558z00_2109),
														BgL_arg1860z00_2110);
												}
												{	/* SawMill/regalloc.scm 126 */
													BgL_objectz00_bglt BgL_tmpz00_6023;

													BgL_tmpz00_6023 =
														((BgL_objectz00_bglt) BgL_o1558z00_2109);
													BGL_OBJECT_WIDENING_SET(BgL_tmpz00_6023, BFALSE);
												}
												((BgL_objectz00_bglt) BgL_o1558z00_2109);
												BgL_o1558z00_2109;
											}
											{
												obj_t BgL_l1556z00_6027;

												BgL_l1556z00_6027 = CDR(BgL_l1556z00_2106);
												BgL_l1556z00_2106 = BgL_l1556z00_6027;
												goto BgL_zc3z04anonymousza31856ze3z87_2107;
											}
										}
									else
										{	/* SawMill/regalloc.scm 126 */
											((bool_t) 1);
										}
								}
								{
									obj_t BgL_l1559z00_2116;

									BgL_l1559z00_2116 = BgL_pregsz00_2081;
								BgL_zc3z04anonymousza31867ze3z87_2117:
									if (PAIRP(BgL_l1559z00_2116))
										{	/* SawMill/regalloc.scm 127 */
											{	/* SawMill/regalloc.scm 127 */
												obj_t BgL_rz00_2119;

												BgL_rz00_2119 = CAR(BgL_l1559z00_2116);
												{	/* SawMill/regalloc.scm 127 */
													bool_t BgL_test2957z00_6032;

													{	/* SawMill/regalloc.scm 127 */
														obj_t BgL_classz00_3935;

														BgL_classz00_3935 =
															BGl_rtl_regzf2razf2zzsaw_regsetz00;
														if (BGL_OBJECTP(BgL_rz00_2119))
															{	/* SawMill/regalloc.scm 127 */
																BgL_objectz00_bglt BgL_arg1801z00_3937;

																BgL_arg1801z00_3937 =
																	(BgL_objectz00_bglt) (BgL_rz00_2119);
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* SawMill/regalloc.scm 127 */
																		long BgL_idxz00_3943;

																		BgL_idxz00_3943 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_3937);
																		BgL_test2957z00_6032 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_3943 + 2L)) ==
																			BgL_classz00_3935);
																	}
																else
																	{	/* SawMill/regalloc.scm 127 */
																		bool_t BgL_res2755z00_3965;

																		{	/* SawMill/regalloc.scm 127 */
																			obj_t BgL_oclassz00_3951;

																			{	/* SawMill/regalloc.scm 127 */
																				long BgL_arg1808z00_3957;

																				{	/* SawMill/regalloc.scm 127 */
																					long BgL_arg1809z00_3958;

																					BgL_arg1809z00_3958 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_3937);
																					BgL_arg1808z00_3957 =
																						(BgL_arg1809z00_3958 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_3951 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_3957);
																			}
																			{	/* SawMill/regalloc.scm 127 */
																				bool_t BgL__ortest_1115z00_3952;

																				BgL__ortest_1115z00_3952 =
																					(BgL_classz00_3935 ==
																					BgL_oclassz00_3951);
																				if (BgL__ortest_1115z00_3952)
																					{	/* SawMill/regalloc.scm 127 */
																						BgL_res2755z00_3965 =
																							BgL__ortest_1115z00_3952;
																					}
																				else
																					{	/* SawMill/regalloc.scm 127 */
																						long BgL_odepthz00_3953;

																						BgL_odepthz00_3953 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_3951);
																						if ((2L < BgL_odepthz00_3953))
																							{	/* SawMill/regalloc.scm 127 */
																								obj_t BgL_arg1797z00_3955;

																								BgL_arg1797z00_3955 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_3951, 2L);
																								BgL_res2755z00_3965 =
																									(BgL_arg1797z00_3955 ==
																									BgL_classz00_3935);
																							}
																						else
																							{	/* SawMill/regalloc.scm 127 */
																								BgL_res2755z00_3965 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test2957z00_6032 = BgL_res2755z00_3965;
																	}
															}
														else
															{	/* SawMill/regalloc.scm 127 */
																BgL_test2957z00_6032 = ((bool_t) 0);
															}
													}
													if (BgL_test2957z00_6032)
														{	/* SawMill/regalloc.scm 127 */
															{	/* SawMill/regalloc.scm 127 */
																long BgL_arg1870z00_2122;

																{	/* SawMill/regalloc.scm 127 */
																	obj_t BgL_arg1872z00_2123;

																	{	/* SawMill/regalloc.scm 127 */
																		obj_t BgL_arg1873z00_2124;

																		{	/* SawMill/regalloc.scm 127 */
																			long BgL_arg1808z00_3967;

																			{	/* SawMill/regalloc.scm 127 */
																				long BgL_arg1809z00_3968;

																				BgL_arg1809z00_3968 =
																					BGL_OBJECT_CLASS_NUM(
																					((BgL_objectz00_bglt) BgL_rz00_2119));
																				BgL_arg1808z00_3967 =
																					(BgL_arg1809z00_3968 - OBJECT_TYPE);
																			}
																			BgL_arg1873z00_2124 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_3967);
																		}
																		BgL_arg1872z00_2123 =
																			BGl_classzd2superzd2zz__objectz00
																			(BgL_arg1873z00_2124);
																	}
																	{	/* SawMill/regalloc.scm 127 */
																		obj_t BgL_tmpz00_6057;

																		BgL_tmpz00_6057 =
																			((obj_t) BgL_arg1872z00_2123);
																		BgL_arg1870z00_2122 =
																			BGL_CLASS_NUM(BgL_tmpz00_6057);
																}}
																BGL_OBJECT_CLASS_NUM_SET(
																	((BgL_objectz00_bglt) BgL_rz00_2119),
																	BgL_arg1870z00_2122);
															}
															{	/* SawMill/regalloc.scm 127 */
																BgL_objectz00_bglt BgL_tmpz00_6062;

																BgL_tmpz00_6062 =
																	((BgL_objectz00_bglt) BgL_rz00_2119);
																BGL_OBJECT_WIDENING_SET(BgL_tmpz00_6062,
																	BFALSE);
															}
															((BgL_objectz00_bglt) BgL_rz00_2119);
															BgL_rz00_2119;
														}
													else
														{	/* SawMill/regalloc.scm 127 */
															BFALSE;
														}
												}
											}
											{
												obj_t BgL_l1559z00_6066;

												BgL_l1559z00_6066 = CDR(BgL_l1559z00_2116);
												BgL_l1559z00_2116 = BgL_l1559z00_6066;
												goto BgL_zc3z04anonymousza31867ze3z87_2117;
											}
										}
									else
										{	/* SawMill/regalloc.scm 127 */
											return ((bool_t) 1);
										}
								}
							}
						}
					}
				}
			}
		}

	}



/* widen-ra! */
	bool_t BGl_widenzd2raz12zc0zzsaw_registerzd2allocationzd2(obj_t BgL_oz00_69,
		obj_t BgL_regsz00_70)
	{
		{	/* SawMill/regalloc.scm 135 */
			{
				obj_t BgL_oz00_2205;
				obj_t BgL_oz00_2247;

				{
					obj_t BgL_l1588z00_2148;

					BgL_l1588z00_2148 = BgL_oz00_69;
				BgL_zc3z04anonymousza31887ze3z87_2149:
					if (PAIRP(BgL_l1588z00_2148))
						{	/* SawMill/regalloc.scm 163 */
							BgL_oz00_2247 = CAR(BgL_l1588z00_2148);
							{	/* SawMill/regalloc.scm 159 */
								obj_t BgL_lastz00_2250;

								BgL_lastz00_2250 =
									bgl_reverse(
									(((BgL_blockz00_bglt) COBJECT(
												((BgL_blockz00_bglt) BgL_oz00_2247)))->BgL_firstz00));
								{	/* SawMill/regalloc.scm 160 */
									obj_t BgL_g1587z00_2251;

									BgL_g1587z00_2251 =
										(((BgL_blockz00_bglt) COBJECT(
												((BgL_blockz00_bglt) BgL_oz00_2247)))->BgL_firstz00);
									{
										obj_t BgL_l1585z00_2253;

										BgL_l1585z00_2253 = BgL_g1587z00_2251;
									BgL_zc3z04anonymousza31948ze3z87_2254:
										if (PAIRP(BgL_l1585z00_2253))
											{	/* SawMill/regalloc.scm 160 */
												BgL_oz00_2205 = CAR(BgL_l1585z00_2253);
												{	/* SawMill/regalloc.scm 149 */
													BgL_rtl_inszf2razf2_bglt BgL_wide1199z00_2210;

													BgL_wide1199z00_2210 =
														((BgL_rtl_inszf2razf2_bglt)
														BOBJECT(GC_MALLOC(sizeof(struct
																	BgL_rtl_inszf2razf2_bgl))));
													{	/* SawMill/regalloc.scm 149 */
														obj_t BgL_auxz00_6082;
														BgL_objectz00_bglt BgL_tmpz00_6078;

														BgL_auxz00_6082 = ((obj_t) BgL_wide1199z00_2210);
														BgL_tmpz00_6078 =
															((BgL_objectz00_bglt)
															((BgL_rtl_insz00_bglt)
																((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
														BGL_OBJECT_WIDENING_SET(BgL_tmpz00_6078,
															BgL_auxz00_6082);
													}
													((BgL_objectz00_bglt)
														((BgL_rtl_insz00_bglt)
															((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
													{	/* SawMill/regalloc.scm 149 */
														long BgL_arg1924z00_2211;

														BgL_arg1924z00_2211 =
															BGL_CLASS_NUM
															(BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2);
														BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt) (
																	(BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
																		BgL_oz00_2205))), BgL_arg1924z00_2211);
													}
													((BgL_rtl_insz00_bglt)
														((BgL_rtl_insz00_bglt)
															((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
												}
												{
													obj_t BgL_auxz00_6104;
													BgL_rtl_inszf2razf2_bglt BgL_auxz00_6096;

													{	/* SawMill/regalloc.scm 150 */
														bool_t BgL_test2964z00_6105;

														if (CBOOL(
																(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt) BgL_oz00_2205)))->
																	BgL_destz00)))
															{	/* SawMill/regalloc.scm 150 */
																BgL_test2964z00_6105 =
																	CBOOL(
																	(((BgL_rtl_regz00_bglt) COBJECT(
																				((BgL_rtl_regz00_bglt)
																					(((BgL_rtl_insz00_bglt) COBJECT(
																								((BgL_rtl_insz00_bglt)
																									BgL_oz00_2205)))->
																						BgL_destz00))))->BgL_onexprzf3zf3));
															}
														else
															{	/* SawMill/regalloc.scm 150 */
																BgL_test2964z00_6105 = ((bool_t) 1);
															}
														if (BgL_test2964z00_6105)
															{	/* SawMill/regalloc.scm 150 */
																BgL_auxz00_6104 =
																	((obj_t)
																	BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
																	(BgL_regsz00_70));
															}
														else
															{	/* SawMill/regalloc.scm 152 */
																obj_t BgL_arg1928z00_2216;

																{	/* SawMill/regalloc.scm 152 */
																	BgL_rtl_regz00_bglt BgL_arg1929z00_2217;

																	{	/* SawMill/regalloc.scm 152 */
																		obj_t BgL_arg1931z00_2219;

																		BgL_arg1931z00_2219 =
																			(((BgL_rtl_insz00_bglt) COBJECT(
																					((BgL_rtl_insz00_bglt)
																						BgL_oz00_2205)))->BgL_destz00);
																		BgL_arg1929z00_2217 =
																			BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2
																			(((BgL_rtl_regz00_bglt)
																				BgL_arg1931z00_2219));
																	}
																	{	/* SawMill/regalloc.scm 152 */
																		obj_t BgL_list1930z00_2218;

																		BgL_list1930z00_2218 =
																			MAKE_YOUNG_PAIR(
																			((obj_t) BgL_arg1929z00_2217), BNIL);
																		BgL_arg1928z00_2216 = BgL_list1930z00_2218;
																	}
																}
																BgL_auxz00_6104 =
																	((obj_t)
																	BGl_listzd2ze3regsetz31zzsaw_regsetz00
																	(BgL_arg1928z00_2216, BgL_regsz00_70));
															}
													}
													{
														obj_t BgL_auxz00_6097;

														{	/* SawMill/regalloc.scm 150 */
															BgL_objectz00_bglt BgL_tmpz00_6098;

															BgL_tmpz00_6098 =
																((BgL_objectz00_bglt)
																((BgL_rtl_insz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
															BgL_auxz00_6097 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_6098);
														}
														BgL_auxz00_6096 =
															((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6097);
													}
													((((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6096))->BgL_defz00) =
														((obj_t) BgL_auxz00_6104), BUNSPEC);
												}
												{
													BgL_rtl_inszf2razf2_bglt BgL_auxz00_6126;

													{
														obj_t BgL_auxz00_6127;

														{	/* SawMill/regalloc.scm 154 */
															BgL_objectz00_bglt BgL_tmpz00_6128;

															BgL_tmpz00_6128 =
																((BgL_objectz00_bglt)
																((BgL_rtl_insz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
															BgL_auxz00_6127 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_6128);
														}
														BgL_auxz00_6126 =
															((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6127);
													}
													((((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6126))->BgL_outz00) =
														((obj_t) ((obj_t)
																BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
																(BgL_regsz00_70))), BUNSPEC);
												}
												{
													obj_t BgL_auxz00_6145;
													BgL_rtl_inszf2razf2_bglt BgL_auxz00_6137;

													{	/* SawMill/regalloc.scm 153 */
														obj_t BgL_arg1934z00_2222;

														{	/* SawMill/regalloc.scm 153 */
															obj_t BgL_l1576z00_2223;

															BgL_l1576z00_2223 =
																BGl_getzd2argsze70z35zzsaw_registerzd2allocationzd2
																(BgL_oz00_2205);
															if (NULLP(BgL_l1576z00_2223))
																{	/* SawMill/regalloc.scm 153 */
																	BgL_arg1934z00_2222 = BNIL;
																}
															else
																{	/* SawMill/regalloc.scm 153 */
																	obj_t BgL_head1578z00_2225;

																	{	/* SawMill/regalloc.scm 153 */
																		BgL_rtl_regz00_bglt BgL_arg1941z00_2237;

																		{	/* SawMill/regalloc.scm 153 */
																			obj_t BgL_arg1942z00_2238;

																			BgL_arg1942z00_2238 =
																				CAR(((obj_t) BgL_l1576z00_2223));
																			BgL_arg1941z00_2237 =
																				BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2
																				(((BgL_rtl_regz00_bglt)
																					BgL_arg1942z00_2238));
																		}
																		BgL_head1578z00_2225 =
																			MAKE_YOUNG_PAIR(
																			((obj_t) BgL_arg1941z00_2237), BNIL);
																	}
																	{	/* SawMill/regalloc.scm 153 */
																		obj_t BgL_g1581z00_2226;

																		BgL_g1581z00_2226 =
																			CDR(((obj_t) BgL_l1576z00_2223));
																		{
																			obj_t BgL_l1576z00_2228;
																			obj_t BgL_tail1579z00_2229;

																			BgL_l1576z00_2228 = BgL_g1581z00_2226;
																			BgL_tail1579z00_2229 =
																				BgL_head1578z00_2225;
																		BgL_zc3z04anonymousza31936ze3z87_2230:
																			if (NULLP(BgL_l1576z00_2228))
																				{	/* SawMill/regalloc.scm 153 */
																					BgL_arg1934z00_2222 =
																						BgL_head1578z00_2225;
																				}
																			else
																				{	/* SawMill/regalloc.scm 153 */
																					obj_t BgL_newtail1580z00_2232;

																					{	/* SawMill/regalloc.scm 153 */
																						BgL_rtl_regz00_bglt
																							BgL_arg1939z00_2234;
																						{	/* SawMill/regalloc.scm 153 */
																							obj_t BgL_arg1940z00_2235;

																							BgL_arg1940z00_2235 =
																								CAR(
																								((obj_t) BgL_l1576z00_2228));
																							BgL_arg1939z00_2234 =
																								BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2
																								(((BgL_rtl_regz00_bglt)
																									BgL_arg1940z00_2235));
																						}
																						BgL_newtail1580z00_2232 =
																							MAKE_YOUNG_PAIR(
																							((obj_t) BgL_arg1939z00_2234),
																							BNIL);
																					}
																					SET_CDR(BgL_tail1579z00_2229,
																						BgL_newtail1580z00_2232);
																					{	/* SawMill/regalloc.scm 153 */
																						obj_t BgL_arg1938z00_2233;

																						BgL_arg1938z00_2233 =
																							CDR(((obj_t) BgL_l1576z00_2228));
																						{
																							obj_t BgL_tail1579z00_6169;
																							obj_t BgL_l1576z00_6168;

																							BgL_l1576z00_6168 =
																								BgL_arg1938z00_2233;
																							BgL_tail1579z00_6169 =
																								BgL_newtail1580z00_2232;
																							BgL_tail1579z00_2229 =
																								BgL_tail1579z00_6169;
																							BgL_l1576z00_2228 =
																								BgL_l1576z00_6168;
																							goto
																								BgL_zc3z04anonymousza31936ze3z87_2230;
																						}
																					}
																				}
																		}
																	}
																}
														}
														BgL_auxz00_6145 =
															((obj_t)
															BGl_listzd2ze3regsetz31zzsaw_regsetz00
															(BgL_arg1934z00_2222, BgL_regsz00_70));
													}
													{
														obj_t BgL_auxz00_6138;

														{	/* SawMill/regalloc.scm 153 */
															BgL_objectz00_bglt BgL_tmpz00_6139;

															BgL_tmpz00_6139 =
																((BgL_objectz00_bglt)
																((BgL_rtl_insz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
															BgL_auxz00_6138 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_6139);
														}
														BgL_auxz00_6137 =
															((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6138);
													}
													((((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6137))->BgL_inz00) =
														((obj_t) BgL_auxz00_6145), BUNSPEC);
												}
												{
													BgL_rtl_inszf2razf2_bglt BgL_auxz00_6173;

													{
														obj_t BgL_auxz00_6174;

														{	/* SawMill/regalloc.scm 155 */
															BgL_objectz00_bglt BgL_tmpz00_6175;

															BgL_tmpz00_6175 =
																((BgL_objectz00_bglt)
																((BgL_rtl_insz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2205)));
															BgL_auxz00_6174 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_6175);
														}
														BgL_auxz00_6173 =
															((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6174);
													}
													((((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6173))->BgL_spillz00) =
														((obj_t) ((obj_t)
																BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
																(BgL_regsz00_70))), BUNSPEC);
												}
												((BgL_rtl_insz00_bglt)
													((BgL_rtl_insz00_bglt) BgL_oz00_2205));
												{	/* SawMill/regalloc.scm 156 */
													obj_t BgL_g1584z00_2239;

													BgL_g1584z00_2239 =
														(((BgL_rtl_insz00_bglt) COBJECT(
																((BgL_rtl_insz00_bglt) BgL_oz00_2205)))->
														BgL_argsz00);
													{
														obj_t BgL_l1582z00_2241;

														BgL_l1582z00_2241 = BgL_g1584z00_2239;
													BgL_zc3z04anonymousza31943ze3z87_2242:
														if (PAIRP(BgL_l1582z00_2241))
															{	/* SawMill/regalloc.scm 156 */
																BGl_argszd2widenzd2raz12ze70zf5zzsaw_registerzd2allocationzd2
																	(BgL_regsz00_70, CAR(BgL_l1582z00_2241));
																{
																	obj_t BgL_l1582z00_6192;

																	BgL_l1582z00_6192 = CDR(BgL_l1582z00_2241);
																	BgL_l1582z00_2241 = BgL_l1582z00_6192;
																	goto BgL_zc3z04anonymousza31943ze3z87_2242;
																}
															}
														else
															{	/* SawMill/regalloc.scm 156 */
																((bool_t) 1);
															}
													}
												}
												{
													obj_t BgL_l1585z00_6195;

													BgL_l1585z00_6195 = CDR(BgL_l1585z00_2253);
													BgL_l1585z00_2253 = BgL_l1585z00_6195;
													goto BgL_zc3z04anonymousza31948ze3z87_2254;
												}
											}
										else
											{	/* SawMill/regalloc.scm 160 */
												((bool_t) 1);
											}
									}
								}
								{	/* SawMill/regalloc.scm 161 */
									BgL_blockzf2razf2_bglt BgL_wide1206z00_2261;

									BgL_wide1206z00_2261 =
										((BgL_blockzf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
													BgL_blockzf2razf2_bgl))));
									{	/* SawMill/regalloc.scm 161 */
										obj_t BgL_auxz00_6202;
										BgL_objectz00_bglt BgL_tmpz00_6198;

										BgL_auxz00_6202 = ((obj_t) BgL_wide1206z00_2261);
										BgL_tmpz00_6198 =
											((BgL_objectz00_bglt)
											((BgL_blockz00_bglt)
												((BgL_blockz00_bglt) BgL_oz00_2247)));
										BGL_OBJECT_WIDENING_SET(BgL_tmpz00_6198, BgL_auxz00_6202);
									}
									((BgL_objectz00_bglt)
										((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_oz00_2247)));
									{	/* SawMill/regalloc.scm 161 */
										long BgL_arg1952z00_2262;

										BgL_arg1952z00_2262 =
											BGL_CLASS_NUM
											(BGl_blockzf2razf2zzsaw_registerzd2allocationzd2);
										BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt) (
													(BgL_blockz00_bglt) ((BgL_blockz00_bglt)
														BgL_oz00_2247))), BgL_arg1952z00_2262);
									}
									((BgL_blockz00_bglt)
										((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_oz00_2247)));
								}
								{
									BgL_blockzf2razf2_bglt BgL_auxz00_6216;

									{
										obj_t BgL_auxz00_6217;

										{	/* SawMill/regalloc.scm 162 */
											BgL_objectz00_bglt BgL_tmpz00_6218;

											BgL_tmpz00_6218 =
												((BgL_objectz00_bglt)
												((BgL_blockz00_bglt)
													((BgL_blockz00_bglt) BgL_oz00_2247)));
											BgL_auxz00_6217 = BGL_OBJECT_WIDENING(BgL_tmpz00_6218);
										}
										BgL_auxz00_6216 =
											((BgL_blockzf2razf2_bglt) BgL_auxz00_6217);
									}
									((((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_6216))->
											BgL_lastz00) = ((obj_t) BgL_lastz00_2250), BUNSPEC);
								}
								((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_oz00_2247));
							}
							{
								obj_t BgL_l1588z00_6228;

								BgL_l1588z00_6228 = CDR(BgL_l1588z00_2148);
								BgL_l1588z00_2148 = BgL_l1588z00_6228;
								goto BgL_zc3z04anonymousza31887ze3z87_2149;
							}
						}
					else
						{	/* SawMill/regalloc.scm 163 */
							return ((bool_t) 1);
						}
				}
			}
		}

	}



/* get-args~0 */
	obj_t BGl_getzd2argsze70z35zzsaw_registerzd2allocationzd2(obj_t BgL_oz00_2154)
	{
		{	/* SawMill/regalloc.scm 137 */
			{	/* SawMill/regalloc.scm 137 */
				obj_t BgL_hook1565z00_2156;

				BgL_hook1565z00_2156 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
				{	/* SawMill/regalloc.scm 137 */
					obj_t BgL_g1566z00_2157;

					BgL_g1566z00_2157 =
						BGl_rtl_inszd2argsza2z70zzsaw_defsz00(
						((BgL_rtl_insz00_bglt) BgL_oz00_2154));
					{
						obj_t BgL_l1562z00_2159;
						obj_t BgL_h1563z00_2160;

						BgL_l1562z00_2159 = BgL_g1566z00_2157;
						BgL_h1563z00_2160 = BgL_hook1565z00_2156;
					BgL_zc3z04anonymousza31892ze3z87_2161:
						if (NULLP(BgL_l1562z00_2159))
							{	/* SawMill/regalloc.scm 137 */
								return CDR(BgL_hook1565z00_2156);
							}
						else
							{	/* SawMill/regalloc.scm 137 */
								bool_t BgL_test2970z00_6236;

								{	/* SawMill/regalloc.scm 137 */
									obj_t BgL_arg1899z00_2169;

									BgL_arg1899z00_2169 = CAR(((obj_t) BgL_l1562z00_2159));
									{	/* SawMill/regalloc.scm 137 */
										obj_t BgL_classz00_3981;

										BgL_classz00_3981 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
										if (BGL_OBJECTP(BgL_arg1899z00_2169))
											{	/* SawMill/regalloc.scm 137 */
												BgL_objectz00_bglt BgL_arg1801z00_3983;

												BgL_arg1801z00_3983 =
													(BgL_objectz00_bglt) (BgL_arg1899z00_2169);
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* SawMill/regalloc.scm 137 */
														long BgL_idxz00_3989;

														BgL_idxz00_3989 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_3983);
														BgL_test2970z00_6236 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_3989 + 2L)) == BgL_classz00_3981);
													}
												else
													{	/* SawMill/regalloc.scm 137 */
														bool_t BgL_res2756z00_4011;

														{	/* SawMill/regalloc.scm 137 */
															obj_t BgL_oclassz00_3997;

															{	/* SawMill/regalloc.scm 137 */
																long BgL_arg1808z00_4003;

																{	/* SawMill/regalloc.scm 137 */
																	long BgL_arg1809z00_4004;

																	BgL_arg1809z00_4004 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_3983);
																	BgL_arg1808z00_4003 =
																		(BgL_arg1809z00_4004 - OBJECT_TYPE);
																}
																BgL_oclassz00_3997 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_4003);
															}
															{	/* SawMill/regalloc.scm 137 */
																bool_t BgL__ortest_1115z00_3998;

																BgL__ortest_1115z00_3998 =
																	(BgL_classz00_3981 == BgL_oclassz00_3997);
																if (BgL__ortest_1115z00_3998)
																	{	/* SawMill/regalloc.scm 137 */
																		BgL_res2756z00_4011 =
																			BgL__ortest_1115z00_3998;
																	}
																else
																	{	/* SawMill/regalloc.scm 137 */
																		long BgL_odepthz00_3999;

																		BgL_odepthz00_3999 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_3997);
																		if ((2L < BgL_odepthz00_3999))
																			{	/* SawMill/regalloc.scm 137 */
																				obj_t BgL_arg1797z00_4001;

																				BgL_arg1797z00_4001 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_3997, 2L);
																				BgL_res2756z00_4011 =
																					(BgL_arg1797z00_4001 ==
																					BgL_classz00_3981);
																			}
																		else
																			{	/* SawMill/regalloc.scm 137 */
																				BgL_res2756z00_4011 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test2970z00_6236 = BgL_res2756z00_4011;
													}
											}
										else
											{	/* SawMill/regalloc.scm 137 */
												BgL_test2970z00_6236 = ((bool_t) 0);
											}
									}
								}
								if (BgL_test2970z00_6236)
									{	/* SawMill/regalloc.scm 137 */
										obj_t BgL_nh1564z00_2165;

										{	/* SawMill/regalloc.scm 137 */
											obj_t BgL_arg1897z00_2167;

											BgL_arg1897z00_2167 = CAR(((obj_t) BgL_l1562z00_2159));
											BgL_nh1564z00_2165 =
												MAKE_YOUNG_PAIR(BgL_arg1897z00_2167, BNIL);
										}
										SET_CDR(BgL_h1563z00_2160, BgL_nh1564z00_2165);
										{	/* SawMill/regalloc.scm 137 */
											obj_t BgL_arg1896z00_2166;

											BgL_arg1896z00_2166 = CDR(((obj_t) BgL_l1562z00_2159));
											{
												obj_t BgL_h1563z00_6265;
												obj_t BgL_l1562z00_6264;

												BgL_l1562z00_6264 = BgL_arg1896z00_2166;
												BgL_h1563z00_6265 = BgL_nh1564z00_2165;
												BgL_h1563z00_2160 = BgL_h1563z00_6265;
												BgL_l1562z00_2159 = BgL_l1562z00_6264;
												goto BgL_zc3z04anonymousza31892ze3z87_2161;
											}
										}
									}
								else
									{	/* SawMill/regalloc.scm 137 */
										obj_t BgL_arg1898z00_2168;

										BgL_arg1898z00_2168 = CDR(((obj_t) BgL_l1562z00_2159));
										{
											obj_t BgL_l1562z00_6268;

											BgL_l1562z00_6268 = BgL_arg1898z00_2168;
											BgL_l1562z00_2159 = BgL_l1562z00_6268;
											goto BgL_zc3z04anonymousza31892ze3z87_2161;
										}
									}
							}
					}
				}
			}
		}

	}



/* args-widen-ra!~0 */
	bool_t BGl_argszd2widenzd2raz12ze70zf5zzsaw_registerzd2allocationzd2(obj_t
		BgL_regsz00_5640, obj_t BgL_oz00_2171)
	{
		{	/* SawMill/regalloc.scm 146 */
			{	/* SawMill/regalloc.scm 139 */
				bool_t BgL_test2975z00_6269;

				{	/* SawMill/regalloc.scm 139 */
					obj_t BgL_classz00_4016;

					BgL_classz00_4016 = BGl_rtl_insz00zzsaw_defsz00;
					if (BGL_OBJECTP(BgL_oz00_2171))
						{	/* SawMill/regalloc.scm 139 */
							BgL_objectz00_bglt BgL_arg1801z00_4018;

							BgL_arg1801z00_4018 = (BgL_objectz00_bglt) (BgL_oz00_2171);
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* SawMill/regalloc.scm 139 */
									long BgL_idxz00_4024;

									BgL_idxz00_4024 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4018);
									BgL_test2975z00_6269 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_4024 + 1L)) == BgL_classz00_4016);
								}
							else
								{	/* SawMill/regalloc.scm 139 */
									bool_t BgL_res2757z00_4046;

									{	/* SawMill/regalloc.scm 139 */
										obj_t BgL_oclassz00_4032;

										{	/* SawMill/regalloc.scm 139 */
											long BgL_arg1808z00_4038;

											{	/* SawMill/regalloc.scm 139 */
												long BgL_arg1809z00_4039;

												BgL_arg1809z00_4039 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4018);
												BgL_arg1808z00_4038 =
													(BgL_arg1809z00_4039 - OBJECT_TYPE);
											}
											BgL_oclassz00_4032 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_4038);
										}
										{	/* SawMill/regalloc.scm 139 */
											bool_t BgL__ortest_1115z00_4033;

											BgL__ortest_1115z00_4033 =
												(BgL_classz00_4016 == BgL_oclassz00_4032);
											if (BgL__ortest_1115z00_4033)
												{	/* SawMill/regalloc.scm 139 */
													BgL_res2757z00_4046 = BgL__ortest_1115z00_4033;
												}
											else
												{	/* SawMill/regalloc.scm 139 */
													long BgL_odepthz00_4034;

													BgL_odepthz00_4034 =
														BGL_CLASS_DEPTH(BgL_oclassz00_4032);
													if ((1L < BgL_odepthz00_4034))
														{	/* SawMill/regalloc.scm 139 */
															obj_t BgL_arg1797z00_4036;

															BgL_arg1797z00_4036 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4032, 1L);
															BgL_res2757z00_4046 =
																(BgL_arg1797z00_4036 == BgL_classz00_4016);
														}
													else
														{	/* SawMill/regalloc.scm 139 */
															BgL_res2757z00_4046 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test2975z00_6269 = BgL_res2757z00_4046;
								}
						}
					else
						{	/* SawMill/regalloc.scm 139 */
							BgL_test2975z00_6269 = ((bool_t) 0);
						}
				}
				if (BgL_test2975z00_6269)
					{	/* SawMill/regalloc.scm 139 */
						{	/* SawMill/regalloc.scm 141 */
							BgL_rtl_inszf2razf2_bglt BgL_wide1194z00_2177;

							BgL_wide1194z00_2177 =
								((BgL_rtl_inszf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_rtl_inszf2razf2_bgl))));
							{	/* SawMill/regalloc.scm 141 */
								obj_t BgL_auxz00_6294;
								BgL_objectz00_bglt BgL_tmpz00_6290;

								BgL_auxz00_6294 = ((obj_t) BgL_wide1194z00_2177);
								BgL_tmpz00_6290 =
									((BgL_objectz00_bglt)
									((BgL_rtl_insz00_bglt)
										((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_6290, BgL_auxz00_6294);
							}
							((BgL_objectz00_bglt)
								((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
							{	/* SawMill/regalloc.scm 141 */
								long BgL_arg1905z00_2178;

								BgL_arg1905z00_2178 =
									BGL_CLASS_NUM
									(BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2);
								BGL_OBJECT_CLASS_NUM_SET(((BgL_objectz00_bglt) (
											(BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
												BgL_oz00_2171))), BgL_arg1905z00_2178);
							}
							((BgL_rtl_insz00_bglt)
								((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
						}
						{
							BgL_rtl_inszf2razf2_bglt BgL_auxz00_6308;

							{
								obj_t BgL_auxz00_6309;

								{	/* SawMill/regalloc.scm 142 */
									BgL_objectz00_bglt BgL_tmpz00_6310;

									BgL_tmpz00_6310 =
										((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt)
											((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
									BgL_auxz00_6309 = BGL_OBJECT_WIDENING(BgL_tmpz00_6310);
								}
								BgL_auxz00_6308 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6309);
							}
							((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6308))->
									BgL_defz00) =
								((obj_t) ((obj_t)
										BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
										(BgL_regsz00_5640))), BUNSPEC);
						}
						{
							BgL_rtl_inszf2razf2_bglt BgL_auxz00_6319;

							{
								obj_t BgL_auxz00_6320;

								{	/* SawMill/regalloc.scm 144 */
									BgL_objectz00_bglt BgL_tmpz00_6321;

									BgL_tmpz00_6321 =
										((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt)
											((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
									BgL_auxz00_6320 = BGL_OBJECT_WIDENING(BgL_tmpz00_6321);
								}
								BgL_auxz00_6319 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6320);
							}
							((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6319))->
									BgL_outz00) =
								((obj_t) ((obj_t)
										BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
										(BgL_regsz00_5640))), BUNSPEC);
						}
						{
							obj_t BgL_auxz00_6338;
							BgL_rtl_inszf2razf2_bglt BgL_auxz00_6330;

							{	/* SawMill/regalloc.scm 143 */
								obj_t BgL_arg1908z00_2180;

								{	/* SawMill/regalloc.scm 143 */
									obj_t BgL_l1567z00_2181;

									BgL_l1567z00_2181 =
										BGl_getzd2argsze70z35zzsaw_registerzd2allocationzd2
										(BgL_oz00_2171);
									if (NULLP(BgL_l1567z00_2181))
										{	/* SawMill/regalloc.scm 143 */
											BgL_arg1908z00_2180 = BNIL;
										}
									else
										{	/* SawMill/regalloc.scm 143 */
											obj_t BgL_head1569z00_2183;

											{	/* SawMill/regalloc.scm 143 */
												BgL_rtl_regz00_bglt BgL_arg1917z00_2195;

												{	/* SawMill/regalloc.scm 143 */
													obj_t BgL_arg1918z00_2196;

													BgL_arg1918z00_2196 =
														CAR(((obj_t) BgL_l1567z00_2181));
													BgL_arg1917z00_2195 =
														BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2
														(((BgL_rtl_regz00_bglt) BgL_arg1918z00_2196));
												}
												BgL_head1569z00_2183 =
													MAKE_YOUNG_PAIR(((obj_t) BgL_arg1917z00_2195), BNIL);
											}
											{	/* SawMill/regalloc.scm 143 */
												obj_t BgL_g1572z00_2184;

												BgL_g1572z00_2184 = CDR(((obj_t) BgL_l1567z00_2181));
												{
													obj_t BgL_l1567z00_2186;
													obj_t BgL_tail1570z00_2187;

													BgL_l1567z00_2186 = BgL_g1572z00_2184;
													BgL_tail1570z00_2187 = BgL_head1569z00_2183;
												BgL_zc3z04anonymousza31910ze3z87_2188:
													if (NULLP(BgL_l1567z00_2186))
														{	/* SawMill/regalloc.scm 143 */
															BgL_arg1908z00_2180 = BgL_head1569z00_2183;
														}
													else
														{	/* SawMill/regalloc.scm 143 */
															obj_t BgL_newtail1571z00_2190;

															{	/* SawMill/regalloc.scm 143 */
																BgL_rtl_regz00_bglt BgL_arg1915z00_2192;

																{	/* SawMill/regalloc.scm 143 */
																	obj_t BgL_arg1916z00_2193;

																	BgL_arg1916z00_2193 =
																		CAR(((obj_t) BgL_l1567z00_2186));
																	BgL_arg1915z00_2192 =
																		BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2
																		(((BgL_rtl_regz00_bglt)
																			BgL_arg1916z00_2193));
																}
																BgL_newtail1571z00_2190 =
																	MAKE_YOUNG_PAIR(
																	((obj_t) BgL_arg1915z00_2192), BNIL);
															}
															SET_CDR(BgL_tail1570z00_2187,
																BgL_newtail1571z00_2190);
															{	/* SawMill/regalloc.scm 143 */
																obj_t BgL_arg1914z00_2191;

																BgL_arg1914z00_2191 =
																	CDR(((obj_t) BgL_l1567z00_2186));
																{
																	obj_t BgL_tail1570z00_6362;
																	obj_t BgL_l1567z00_6361;

																	BgL_l1567z00_6361 = BgL_arg1914z00_2191;
																	BgL_tail1570z00_6362 =
																		BgL_newtail1571z00_2190;
																	BgL_tail1570z00_2187 = BgL_tail1570z00_6362;
																	BgL_l1567z00_2186 = BgL_l1567z00_6361;
																	goto BgL_zc3z04anonymousza31910ze3z87_2188;
																}
															}
														}
												}
											}
										}
								}
								BgL_auxz00_6338 =
									((obj_t)
									BGl_listzd2ze3regsetz31zzsaw_regsetz00(BgL_arg1908z00_2180,
										BgL_regsz00_5640));
							}
							{
								obj_t BgL_auxz00_6331;

								{	/* SawMill/regalloc.scm 143 */
									BgL_objectz00_bglt BgL_tmpz00_6332;

									BgL_tmpz00_6332 =
										((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt)
											((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
									BgL_auxz00_6331 = BGL_OBJECT_WIDENING(BgL_tmpz00_6332);
								}
								BgL_auxz00_6330 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6331);
							}
							((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6330))->
									BgL_inz00) = ((obj_t) BgL_auxz00_6338), BUNSPEC);
						}
						{
							BgL_rtl_inszf2razf2_bglt BgL_auxz00_6366;

							{
								obj_t BgL_auxz00_6367;

								{	/* SawMill/regalloc.scm 145 */
									BgL_objectz00_bglt BgL_tmpz00_6368;

									BgL_tmpz00_6368 =
										((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt)
											((BgL_rtl_insz00_bglt) BgL_oz00_2171)));
									BgL_auxz00_6367 = BGL_OBJECT_WIDENING(BgL_tmpz00_6368);
								}
								BgL_auxz00_6366 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6367);
							}
							((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6366))->
									BgL_spillz00) =
								((obj_t) ((obj_t)
										BGl_makezd2emptyzd2regsetz00zzsaw_regsetz00
										(BgL_regsz00_5640))), BUNSPEC);
						}
						((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_2171));
						{	/* SawMill/regalloc.scm 146 */
							obj_t BgL_g1575z00_2197;

							BgL_g1575z00_2197 =
								(((BgL_rtl_insz00_bglt) COBJECT(
										((BgL_rtl_insz00_bglt) BgL_oz00_2171)))->BgL_argsz00);
							{
								obj_t BgL_l1573z00_2199;

								BgL_l1573z00_2199 = BgL_g1575z00_2197;
							BgL_zc3z04anonymousza31919ze3z87_2200:
								if (PAIRP(BgL_l1573z00_2199))
									{	/* SawMill/regalloc.scm 146 */
										BGl_argszd2widenzd2raz12ze70zf5zzsaw_registerzd2allocationzd2
											(BgL_regsz00_5640, CAR(BgL_l1573z00_2199));
										{
											obj_t BgL_l1573z00_6385;

											BgL_l1573z00_6385 = CDR(BgL_l1573z00_2199);
											BgL_l1573z00_2199 = BgL_l1573z00_6385;
											goto BgL_zc3z04anonymousza31919ze3z87_2200;
										}
									}
								else
									{	/* SawMill/regalloc.scm 146 */
										return ((bool_t) 1);
									}
							}
						}
					}
				else
					{	/* SawMill/regalloc.scm 139 */
						return ((bool_t) 0);
					}
			}
		}

	}



/* liveness! */
	obj_t BGl_livenessz12z12zzsaw_registerzd2allocationzd2(obj_t BgL_blocksz00_71,
		obj_t BgL_argsz00_72)
	{
		{	/* SawMill/regalloc.scm 171 */
			{	/* SawMill/regalloc.scm 172 */
				obj_t BgL_list1954z00_2269;

				BgL_list1954z00_2269 =
					MAKE_YOUNG_PAIR(BGl_string2816z00zzsaw_registerzd2allocationzd2,
					BNIL);
				BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list1954z00_2269);
			}
			if (NULLP(BgL_blocksz00_71))
				{	/* SawMill/regalloc.scm 175 */
					((bool_t) 0);
				}
			else
				{	/* SawMill/regalloc.scm 176 */
					obj_t BgL_inssz00_2271;

					BgL_inssz00_2271 =
						(((BgL_blockz00_bglt) COBJECT(
								((BgL_blockz00_bglt) CAR(BgL_blocksz00_71))))->BgL_firstz00);
					if (NULLP(BgL_inssz00_2271))
						{	/* SawMill/regalloc.scm 177 */
							((bool_t) 0);
						}
					else
						{	/* SawMill/regalloc.scm 178 */
							obj_t BgL_insz00_2273;

							BgL_insz00_2273 = CAR(BgL_inssz00_2271);
							{
								obj_t BgL_l1590z00_2276;

								BgL_l1590z00_2276 = BgL_argsz00_72;
							BgL_zc3z04anonymousza31957ze3z87_2277:
								if (PAIRP(BgL_l1590z00_2276))
									{	/* SawMill/regalloc.scm 180 */
										{	/* SawMill/regalloc.scm 180 */
											obj_t BgL_az00_2279;

											BgL_az00_2279 = CAR(BgL_l1590z00_2276);
											{	/* SawMill/regalloc.scm 180 */
												obj_t BgL_arg1959z00_2280;

												{
													BgL_rtl_inszf2razf2_bglt BgL_auxz00_6401;

													{
														obj_t BgL_auxz00_6402;

														{	/* SawMill/regalloc.scm 180 */
															BgL_objectz00_bglt BgL_tmpz00_6403;

															BgL_tmpz00_6403 =
																((BgL_objectz00_bglt)
																((BgL_rtl_insz00_bglt) BgL_insz00_2273));
															BgL_auxz00_6402 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_6403);
														}
														BgL_auxz00_6401 =
															((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6402);
													}
													BgL_arg1959z00_2280 =
														(((BgL_rtl_inszf2razf2_bglt)
															COBJECT(BgL_auxz00_6401))->BgL_inz00);
												}
												BGl_regsetzd2addz12zc0zzsaw_regsetz00(
													((BgL_regsetz00_bglt) BgL_arg1959z00_2280),
													((BgL_rtl_regz00_bglt) BgL_az00_2279));
											}
										}
										{
											obj_t BgL_l1590z00_6412;

											BgL_l1590z00_6412 = CDR(BgL_l1590z00_2276);
											BgL_l1590z00_2276 = BgL_l1590z00_6412;
											goto BgL_zc3z04anonymousza31957ze3z87_2277;
										}
									}
								else
									{	/* SawMill/regalloc.scm 180 */
										((bool_t) 1);
									}
							}
						}
				}
			{
				long BgL_iz00_2285;

				BgL_iz00_2285 = 0L;
			BgL_zc3z04anonymousza31962ze3z87_2286:
				{	/* SawMill/regalloc.scm 183 */
					obj_t BgL_list1963z00_2287;

					{	/* SawMill/regalloc.scm 183 */
						obj_t BgL_arg1964z00_2288;

						BgL_arg1964z00_2288 = MAKE_YOUNG_PAIR(BINT(BgL_iz00_2285), BNIL);
						BgL_list1963z00_2287 =
							MAKE_YOUNG_PAIR(BGl_string2817z00zzsaw_registerzd2allocationzd2,
							BgL_arg1964z00_2288);
					}
					BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list1963z00_2287);
				}
				{
					obj_t BgL_bsz00_2290;
					obj_t BgL_tz00_2291;

					BgL_bsz00_2290 = BgL_blocksz00_71;
					BgL_tz00_2291 = BFALSE;
				BgL_zc3z04anonymousza31965ze3z87_2292:
					if (NULLP(BgL_bsz00_2290))
						{	/* SawMill/regalloc.scm 186 */
							if (CBOOL(BgL_tz00_2291))
								{
									long BgL_iz00_6423;

									BgL_iz00_6423 = (BgL_iz00_2285 + 1L);
									BgL_iz00_2285 = BgL_iz00_6423;
									goto BgL_zc3z04anonymousza31962ze3z87_2286;
								}
							else
								{	/* SawMill/regalloc.scm 187 */
									((bool_t) 0);
								}
						}
					else
						{	/* SawMill/regalloc.scm 190 */
							obj_t BgL_arg1968z00_2295;
							obj_t BgL_arg1969z00_2296;

							BgL_arg1968z00_2295 = CDR(((obj_t) BgL_bsz00_2290));
							{	/* SawMill/regalloc.scm 190 */
								obj_t BgL__ortest_1209z00_2297;

								{	/* SawMill/regalloc.scm 190 */
									obj_t BgL_arg1970z00_2298;

									BgL_arg1970z00_2298 = CAR(((obj_t) BgL_bsz00_2290));
									BgL__ortest_1209z00_2297 =
										BGl_livenesszd2blockz12zc0zzsaw_registerzd2allocationzd2
										(BgL_arg1970z00_2298);
								}
								if (CBOOL(BgL__ortest_1209z00_2297))
									{	/* SawMill/regalloc.scm 190 */
										BgL_arg1969z00_2296 = BgL__ortest_1209z00_2297;
									}
								else
									{	/* SawMill/regalloc.scm 190 */
										BgL_arg1969z00_2296 = BgL_tz00_2291;
									}
							}
							{
								obj_t BgL_tz00_6433;
								obj_t BgL_bsz00_6432;

								BgL_bsz00_6432 = BgL_arg1968z00_2295;
								BgL_tz00_6433 = BgL_arg1969z00_2296;
								BgL_tz00_2291 = BgL_tz00_6433;
								BgL_bsz00_2290 = BgL_bsz00_6432;
								goto BgL_zc3z04anonymousza31965ze3z87_2292;
							}
						}
				}
			}
			{	/* SawMill/regalloc.scm 191 */
				obj_t BgL_list1971z00_2301;

				BgL_list1971z00_2301 =
					MAKE_YOUNG_PAIR(BGl_string2818z00zzsaw_registerzd2allocationzd2,
					BNIL);
				return BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list1971z00_2301);
			}
		}

	}



/* liveness-block! */
	obj_t BGl_livenesszd2blockz12zc0zzsaw_registerzd2allocationzd2(obj_t
		BgL_blockz00_73)
	{
		{	/* SawMill/regalloc.scm 196 */
			{	/* SawMill/regalloc.scm 198 */
				obj_t BgL_g1211z00_2303;

				{	/* SawMill/regalloc.scm 199 */
					obj_t BgL_l1592z00_2350;

					BgL_l1592z00_2350 =
						(((BgL_blockz00_bglt) COBJECT(
								((BgL_blockz00_bglt)
									((BgL_blockz00_bglt) BgL_blockz00_73))))->BgL_succsz00);
					if (NULLP(BgL_l1592z00_2350))
						{	/* SawMill/regalloc.scm 199 */
							BgL_g1211z00_2303 = BNIL;
						}
					else
						{	/* SawMill/regalloc.scm 199 */
							obj_t BgL_head1594z00_2352;

							BgL_head1594z00_2352 = MAKE_YOUNG_PAIR(BNIL, BNIL);
							{
								obj_t BgL_l1592z00_2354;
								obj_t BgL_tail1595z00_2355;

								BgL_l1592z00_2354 = BgL_l1592z00_2350;
								BgL_tail1595z00_2355 = BgL_head1594z00_2352;
							BgL_zc3z04anonymousza32000ze3z87_2356:
								if (NULLP(BgL_l1592z00_2354))
									{	/* SawMill/regalloc.scm 199 */
										BgL_g1211z00_2303 = CDR(BgL_head1594z00_2352);
									}
								else
									{	/* SawMill/regalloc.scm 199 */
										obj_t BgL_newtail1596z00_2358;

										{	/* SawMill/regalloc.scm 199 */
											obj_t BgL_arg2003z00_2360;

											{	/* SawMill/regalloc.scm 199 */
												obj_t BgL_pairz00_4100;

												BgL_pairz00_4100 =
													(((BgL_blockz00_bglt) COBJECT(
															((BgL_blockz00_bglt)
																CAR(
																	((obj_t) BgL_l1592z00_2354)))))->
													BgL_firstz00);
												BgL_arg2003z00_2360 = CAR(BgL_pairz00_4100);
											}
											BgL_newtail1596z00_2358 =
												MAKE_YOUNG_PAIR(BgL_arg2003z00_2360, BNIL);
										}
										SET_CDR(BgL_tail1595z00_2355, BgL_newtail1596z00_2358);
										{	/* SawMill/regalloc.scm 199 */
											obj_t BgL_arg2002z00_2359;

											BgL_arg2002z00_2359 = CDR(((obj_t) BgL_l1592z00_2354));
											{
												obj_t BgL_tail1595z00_6456;
												obj_t BgL_l1592z00_6455;

												BgL_l1592z00_6455 = BgL_arg2002z00_2359;
												BgL_tail1595z00_6456 = BgL_newtail1596z00_2358;
												BgL_tail1595z00_2355 = BgL_tail1595z00_6456;
												BgL_l1592z00_2354 = BgL_l1592z00_6455;
												goto BgL_zc3z04anonymousza32000ze3z87_2356;
											}
										}
									}
							}
						}
				}
				{
					obj_t BgL_inssz00_2306;
					obj_t BgL_succz00_2307;
					obj_t BgL_tz00_2308;

					{	/* SawMill/regalloc.scm 198 */
						obj_t BgL_arg1972z00_2305;

						{
							BgL_blockzf2razf2_bglt BgL_auxz00_6457;

							{
								obj_t BgL_auxz00_6458;

								{	/* SawMill/regalloc.scm 198 */
									BgL_objectz00_bglt BgL_tmpz00_6459;

									BgL_tmpz00_6459 =
										((BgL_objectz00_bglt)
										((BgL_blockz00_bglt) BgL_blockz00_73));
									BgL_auxz00_6458 = BGL_OBJECT_WIDENING(BgL_tmpz00_6459);
								}
								BgL_auxz00_6457 = ((BgL_blockzf2razf2_bglt) BgL_auxz00_6458);
							}
							BgL_arg1972z00_2305 =
								(((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_6457))->
								BgL_lastz00);
						}
						BgL_inssz00_2306 = BgL_arg1972z00_2305;
						BgL_succz00_2307 = BgL_g1211z00_2303;
						BgL_tz00_2308 = BFALSE;
					BgL_zc3z04anonymousza31973ze3z87_2309:
						if (PAIRP(BgL_inssz00_2306))
							{	/* SawMill/regalloc.scm 202 */
								BgL_rtl_insz00_bglt BgL_i1212z00_2311;

								BgL_i1212z00_2311 =
									((BgL_rtl_insz00_bglt) CAR(BgL_inssz00_2306));
								{	/* SawMill/regalloc.scm 203 */
									obj_t BgL_uz00_5474;

									{	/* SawMill/regalloc.scm 204 */
										obj_t BgL_cellvalz00_6469;

										{	/* SawMill/regalloc.scm 204 */
											bool_t BgL_test2992z00_6470;

											{	/* SawMill/regalloc.scm 204 */
												obj_t BgL_classz00_4104;

												BgL_classz00_4104 = BGl_rtl_insz00zzsaw_defsz00;
												if (BGL_OBJECTP(BgL_succz00_2307))
													{	/* SawMill/regalloc.scm 204 */
														BgL_objectz00_bglt BgL_arg1801z00_4106;

														BgL_arg1801z00_4106 =
															(BgL_objectz00_bglt) (BgL_succz00_2307);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/regalloc.scm 204 */
																long BgL_idxz00_4112;

																BgL_idxz00_4112 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_4106);
																BgL_test2992z00_6470 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_4112 + 1L)) ==
																	BgL_classz00_4104);
															}
														else
															{	/* SawMill/regalloc.scm 204 */
																bool_t BgL_res2759z00_4134;

																{	/* SawMill/regalloc.scm 204 */
																	obj_t BgL_oclassz00_4120;

																	{	/* SawMill/regalloc.scm 204 */
																		long BgL_arg1808z00_4126;

																		{	/* SawMill/regalloc.scm 204 */
																			long BgL_arg1809z00_4127;

																			BgL_arg1809z00_4127 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_4106);
																			BgL_arg1808z00_4126 =
																				(BgL_arg1809z00_4127 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_4120 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_4126);
																	}
																	{	/* SawMill/regalloc.scm 204 */
																		bool_t BgL__ortest_1115z00_4121;

																		BgL__ortest_1115z00_4121 =
																			(BgL_classz00_4104 == BgL_oclassz00_4120);
																		if (BgL__ortest_1115z00_4121)
																			{	/* SawMill/regalloc.scm 204 */
																				BgL_res2759z00_4134 =
																					BgL__ortest_1115z00_4121;
																			}
																		else
																			{	/* SawMill/regalloc.scm 204 */
																				long BgL_odepthz00_4122;

																				BgL_odepthz00_4122 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_4120);
																				if ((1L < BgL_odepthz00_4122))
																					{	/* SawMill/regalloc.scm 204 */
																						obj_t BgL_arg1797z00_4124;

																						BgL_arg1797z00_4124 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_4120, 1L);
																						BgL_res2759z00_4134 =
																							(BgL_arg1797z00_4124 ==
																							BgL_classz00_4104);
																					}
																				else
																					{	/* SawMill/regalloc.scm 204 */
																						BgL_res2759z00_4134 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test2992z00_6470 = BgL_res2759z00_4134;
															}
													}
												else
													{	/* SawMill/regalloc.scm 204 */
														BgL_test2992z00_6470 = ((bool_t) 0);
													}
											}
											if (BgL_test2992z00_6470)
												{	/* SawMill/regalloc.scm 205 */
													obj_t BgL_arg1986z00_2328;
													obj_t BgL_arg1987z00_2329;

													{
														BgL_rtl_inszf2razf2_bglt BgL_auxz00_6490;

														{
															obj_t BgL_auxz00_6491;

															{	/* SawMill/regalloc.scm 205 */
																BgL_objectz00_bglt BgL_tmpz00_6492;

																BgL_tmpz00_6492 =
																	((BgL_objectz00_bglt) BgL_i1212z00_2311);
																BgL_auxz00_6491 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_6492);
															}
															BgL_auxz00_6490 =
																((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6491);
														}
														BgL_arg1986z00_2328 =
															(((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6490))->BgL_outz00);
													}
													{
														BgL_rtl_inszf2razf2_bglt BgL_auxz00_6497;

														{
															obj_t BgL_auxz00_6498;

															{	/* SawMill/regalloc.scm 205 */
																BgL_objectz00_bglt BgL_tmpz00_6499;

																BgL_tmpz00_6499 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_succz00_2307));
																BgL_auxz00_6498 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_6499);
															}
															BgL_auxz00_6497 =
																((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6498);
														}
														BgL_arg1987z00_2329 =
															(((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6497))->BgL_inz00);
													}
													BgL_cellvalz00_6469 =
														BBOOL(BGl_regsetzd2unionz12zc0zzsaw_regsetz00(
															((BgL_regsetz00_bglt) BgL_arg1986z00_2328),
															((BgL_regsetz00_bglt) BgL_arg1987z00_2329)));
												}
											else
												{	/* SawMill/regalloc.scm 204 */
													if (PAIRP(BgL_succz00_2307))
														{	/* SawMill/regalloc.scm 207 */
															obj_t BgL_arg1989z00_2331;
															obj_t BgL_arg1990z00_2332;

															{
																BgL_rtl_inszf2razf2_bglt BgL_auxz00_6511;

																{
																	obj_t BgL_auxz00_6512;

																	{	/* SawMill/regalloc.scm 207 */
																		BgL_objectz00_bglt BgL_tmpz00_6513;

																		BgL_tmpz00_6513 =
																			((BgL_objectz00_bglt) BgL_i1212z00_2311);
																		BgL_auxz00_6512 =
																			BGL_OBJECT_WIDENING(BgL_tmpz00_6513);
																	}
																	BgL_auxz00_6511 =
																		((BgL_rtl_inszf2razf2_bglt)
																		BgL_auxz00_6512);
																}
																BgL_arg1989z00_2331 =
																	(((BgL_rtl_inszf2razf2_bglt)
																		COBJECT(BgL_auxz00_6511))->BgL_outz00);
															}
															{	/* SawMill/regalloc.scm 207 */
																obj_t BgL_head1599z00_2335;

																{	/* SawMill/regalloc.scm 207 */
																	obj_t BgL_arg1997z00_2347;

																	{	/* SawMill/regalloc.scm 207 */
																		BgL_rtl_insz00_bglt BgL_oz00_4140;

																		BgL_oz00_4140 =
																			((BgL_rtl_insz00_bglt)
																			CAR(BgL_succz00_2307));
																		{
																			BgL_rtl_inszf2razf2_bglt BgL_auxz00_6520;

																			{
																				obj_t BgL_auxz00_6521;

																				{	/* SawMill/regalloc.scm 207 */
																					BgL_objectz00_bglt BgL_tmpz00_6522;

																					BgL_tmpz00_6522 =
																						((BgL_objectz00_bglt)
																						BgL_oz00_4140);
																					BgL_auxz00_6521 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_6522);
																				}
																				BgL_auxz00_6520 =
																					((BgL_rtl_inszf2razf2_bglt)
																					BgL_auxz00_6521);
																			}
																			BgL_arg1997z00_2347 =
																				(((BgL_rtl_inszf2razf2_bglt)
																					COBJECT(BgL_auxz00_6520))->BgL_inz00);
																		}
																	}
																	BgL_head1599z00_2335 =
																		MAKE_YOUNG_PAIR(BgL_arg1997z00_2347, BNIL);
																}
																{	/* SawMill/regalloc.scm 207 */
																	obj_t BgL_g1602z00_2336;

																	BgL_g1602z00_2336 = CDR(BgL_succz00_2307);
																	{
																		obj_t BgL_l1597z00_2338;
																		obj_t BgL_tail1600z00_2339;

																		BgL_l1597z00_2338 = BgL_g1602z00_2336;
																		BgL_tail1600z00_2339 = BgL_head1599z00_2335;
																	BgL_zc3z04anonymousza31992ze3z87_2340:
																		if (NULLP(BgL_l1597z00_2338))
																			{	/* SawMill/regalloc.scm 207 */
																				BgL_arg1990z00_2332 =
																					BgL_head1599z00_2335;
																			}
																		else
																			{	/* SawMill/regalloc.scm 207 */
																				obj_t BgL_newtail1601z00_2342;

																				{	/* SawMill/regalloc.scm 207 */
																					obj_t BgL_arg1995z00_2344;

																					{	/* SawMill/regalloc.scm 207 */
																						BgL_rtl_insz00_bglt BgL_oz00_4144;

																						BgL_oz00_4144 =
																							((BgL_rtl_insz00_bglt)
																							CAR(((obj_t) BgL_l1597z00_2338)));
																						{
																							BgL_rtl_inszf2razf2_bglt
																								BgL_auxz00_6534;
																							{
																								obj_t BgL_auxz00_6535;

																								{	/* SawMill/regalloc.scm 207 */
																									BgL_objectz00_bglt
																										BgL_tmpz00_6536;
																									BgL_tmpz00_6536 =
																										((BgL_objectz00_bglt)
																										BgL_oz00_4144);
																									BgL_auxz00_6535 =
																										BGL_OBJECT_WIDENING
																										(BgL_tmpz00_6536);
																								}
																								BgL_auxz00_6534 =
																									((BgL_rtl_inszf2razf2_bglt)
																									BgL_auxz00_6535);
																							}
																							BgL_arg1995z00_2344 =
																								(((BgL_rtl_inszf2razf2_bglt)
																									COBJECT(BgL_auxz00_6534))->
																								BgL_inz00);
																						}
																					}
																					BgL_newtail1601z00_2342 =
																						MAKE_YOUNG_PAIR(BgL_arg1995z00_2344,
																						BNIL);
																				}
																				SET_CDR(BgL_tail1600z00_2339,
																					BgL_newtail1601z00_2342);
																				{	/* SawMill/regalloc.scm 207 */
																					obj_t BgL_arg1994z00_2343;

																					BgL_arg1994z00_2343 =
																						CDR(((obj_t) BgL_l1597z00_2338));
																					{
																						obj_t BgL_tail1600z00_6546;
																						obj_t BgL_l1597z00_6545;

																						BgL_l1597z00_6545 =
																							BgL_arg1994z00_2343;
																						BgL_tail1600z00_6546 =
																							BgL_newtail1601z00_2342;
																						BgL_tail1600z00_2339 =
																							BgL_tail1600z00_6546;
																						BgL_l1597z00_2338 =
																							BgL_l1597z00_6545;
																						goto
																							BgL_zc3z04anonymousza31992ze3z87_2340;
																					}
																				}
																			}
																	}
																}
															}
															BgL_cellvalz00_6469 =
																BBOOL(BGl_regsetzd2unionza2z12z62zzsaw_regsetz00
																(((BgL_regsetz00_bglt) BgL_arg1989z00_2331),
																	BgL_arg1990z00_2332));
														}
													else
														{	/* SawMill/regalloc.scm 206 */
															BgL_cellvalz00_6469 = BFALSE;
														}
												}
										}
										BgL_uz00_5474 = MAKE_CELL(BgL_cellvalz00_6469);
									}
									{	/* SawMill/regalloc.scm 210 */
										obj_t BgL_arg1976z00_2314;

										{
											BgL_rtl_inszf2razf2_bglt BgL_auxz00_6550;

											{
												obj_t BgL_auxz00_6551;

												{	/* SawMill/regalloc.scm 210 */
													BgL_objectz00_bglt BgL_tmpz00_6552;

													BgL_tmpz00_6552 =
														((BgL_objectz00_bglt) BgL_i1212z00_2311);
													BgL_auxz00_6551 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_6552);
												}
												BgL_auxz00_6550 =
													((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6551);
											}
											BgL_arg1976z00_2314 =
												(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6550))->
												BgL_outz00);
										}
										{	/* SawMill/regalloc.scm 211 */
											obj_t BgL_zc3z04anonymousza31977ze3z87_5468;

											BgL_zc3z04anonymousza31977ze3z87_5468 =
												MAKE_FX_PROCEDURE
												(BGl_z62zc3z04anonymousza31977ze3ze5zzsaw_registerzd2allocationzd2,
												(int) (1L), (int) (2L));
											PROCEDURE_SET(BgL_zc3z04anonymousza31977ze3z87_5468,
												(int) (0L), ((obj_t) BgL_i1212z00_2311));
											PROCEDURE_SET(BgL_zc3z04anonymousza31977ze3z87_5468,
												(int) (1L), ((obj_t) BgL_uz00_5474));
											BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
												(BgL_zc3z04anonymousza31977ze3z87_5468,
												((BgL_regsetz00_bglt) BgL_arg1976z00_2314));
									}}
									{	/* SawMill/regalloc.scm 214 */
										obj_t BgL_arg1982z00_2323;
										obj_t BgL_arg1983z00_2324;
										obj_t BgL_arg1984z00_2325;

										BgL_arg1982z00_2323 = CDR(BgL_inssz00_2306);
										BgL_arg1983z00_2324 = CAR(BgL_inssz00_2306);
										if (CBOOL(BgL_tz00_2308))
											{	/* SawMill/regalloc.scm 214 */
												BgL_arg1984z00_2325 = BgL_tz00_2308;
											}
										else
											{	/* SawMill/regalloc.scm 214 */
												BgL_arg1984z00_2325 = CELL_REF(BgL_uz00_5474);
											}
										{
											obj_t BgL_tz00_6574;
											obj_t BgL_succz00_6573;
											obj_t BgL_inssz00_6572;

											BgL_inssz00_6572 = BgL_arg1982z00_2323;
											BgL_succz00_6573 = BgL_arg1983z00_2324;
											BgL_tz00_6574 = BgL_arg1984z00_2325;
											BgL_tz00_2308 = BgL_tz00_6574;
											BgL_succz00_2307 = BgL_succz00_6573;
											BgL_inssz00_2306 = BgL_inssz00_6572;
											goto BgL_zc3z04anonymousza31973ze3z87_2309;
										}
									}
								}
							}
						else
							{	/* SawMill/regalloc.scm 201 */
								return BgL_tz00_2308;
							}
					}
				}
			}
		}

	}



/* &<@anonymous:1977> */
	obj_t BGl_z62zc3z04anonymousza31977ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5469, obj_t BgL_rz00_5472)
	{
		{	/* SawMill/regalloc.scm 210 */
			{	/* SawMill/regalloc.scm 211 */
				BgL_rtl_insz00_bglt BgL_i1212z00_5470;
				obj_t BgL_uz00_5471;

				BgL_i1212z00_5470 =
					((BgL_rtl_insz00_bglt) PROCEDURE_REF(BgL_envz00_5469, (int) (0L)));
				BgL_uz00_5471 = PROCEDURE_REF(BgL_envz00_5469, (int) (1L));
				{	/* SawMill/regalloc.scm 211 */
					bool_t BgL_test3000z00_6580;

					{	/* SawMill/regalloc.scm 211 */
						obj_t BgL_arg1981z00_5653;

						{
							BgL_rtl_inszf2razf2_bglt BgL_auxz00_6581;

							{
								obj_t BgL_auxz00_6582;

								{	/* SawMill/regalloc.scm 211 */
									BgL_objectz00_bglt BgL_tmpz00_6583;

									BgL_tmpz00_6583 = ((BgL_objectz00_bglt) BgL_i1212z00_5470);
									BgL_auxz00_6582 = BGL_OBJECT_WIDENING(BgL_tmpz00_6583);
								}
								BgL_auxz00_6581 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6582);
							}
							BgL_arg1981z00_5653 =
								(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6581))->
								BgL_defz00);
						}
						BgL_test3000z00_6580 =
							BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
							((BgL_rtl_regz00_bglt) BgL_rz00_5472),
							((BgL_regsetz00_bglt) BgL_arg1981z00_5653));
					}
					if (BgL_test3000z00_6580)
						{	/* SawMill/regalloc.scm 211 */
							return BFALSE;
						}
					else
						{	/* SawMill/regalloc.scm 212 */
							obj_t BgL_auxz00_5654;

							{	/* SawMill/regalloc.scm 212 */
								bool_t BgL__ortest_1213z00_5655;

								{	/* SawMill/regalloc.scm 212 */
									obj_t BgL_arg1980z00_5656;

									{
										BgL_rtl_inszf2razf2_bglt BgL_auxz00_6591;

										{
											obj_t BgL_auxz00_6592;

											{	/* SawMill/regalloc.scm 212 */
												BgL_objectz00_bglt BgL_tmpz00_6593;

												BgL_tmpz00_6593 =
													((BgL_objectz00_bglt) BgL_i1212z00_5470);
												BgL_auxz00_6592 = BGL_OBJECT_WIDENING(BgL_tmpz00_6593);
											}
											BgL_auxz00_6591 =
												((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6592);
										}
										BgL_arg1980z00_5656 =
											(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6591))->
											BgL_inz00);
									}
									BgL__ortest_1213z00_5655 =
										BGl_regsetzd2addz12zc0zzsaw_regsetz00(
										((BgL_regsetz00_bglt) BgL_arg1980z00_5656),
										((BgL_rtl_regz00_bglt) BgL_rz00_5472));
								}
								if (BgL__ortest_1213z00_5655)
									{	/* SawMill/regalloc.scm 212 */
										BgL_auxz00_5654 = BBOOL(BgL__ortest_1213z00_5655);
									}
								else
									{	/* SawMill/regalloc.scm 212 */
										BgL_auxz00_5654 = CELL_REF(BgL_uz00_5471);
									}
							}
							return CELL_SET(BgL_uz00_5471, BgL_auxz00_5654);
						}
				}
			}
		}

	}



/* hardware-mutual-interference! */
	bool_t
		BGl_hardwarezd2mutualzd2interferencez12z12zzsaw_registerzd2allocationzd2
		(obj_t BgL_regsz00_76)
	{
		{	/* SawMill/regalloc.scm 237 */
			{
				obj_t BgL_rz00_2365;

				BgL_rz00_2365 = BgL_regsz00_76;
			BgL_zc3z04anonymousza32005ze3z87_2366:
				if (PAIRP(BgL_rz00_2365))
					{	/* SawMill/regalloc.scm 240 */
						obj_t BgL_r1z00_2368;

						BgL_r1z00_2368 = CAR(BgL_rz00_2365);
						{	/* SawMill/regalloc.scm 241 */
							obj_t BgL_g1612z00_2369;

							BgL_g1612z00_2369 = CDR(BgL_rz00_2365);
							{
								obj_t BgL_l1610z00_2371;

								BgL_l1610z00_2371 = BgL_g1612z00_2369;
							BgL_zc3z04anonymousza32007ze3z87_2372:
								if (PAIRP(BgL_l1610z00_2371))
									{	/* SawMill/regalloc.scm 241 */
										BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
											(BgL_r1z00_2368, CAR(BgL_l1610z00_2371));
										{
											obj_t BgL_l1610z00_6611;

											BgL_l1610z00_6611 = CDR(BgL_l1610z00_2371);
											BgL_l1610z00_2371 = BgL_l1610z00_6611;
											goto BgL_zc3z04anonymousza32007ze3z87_2372;
										}
									}
								else
									{	/* SawMill/regalloc.scm 241 */
										((bool_t) 1);
									}
							}
						}
						{
							obj_t BgL_rz00_6613;

							BgL_rz00_6613 = CDR(BgL_rz00_2365);
							BgL_rz00_2365 = BgL_rz00_6613;
							goto BgL_zc3z04anonymousza32005ze3z87_2366;
						}
					}
				else
					{	/* SawMill/regalloc.scm 239 */
						return ((bool_t) 0);
					}
			}
		}

	}



/* hardware-parameters-interference! */
	bool_t
		BGl_hardwarezd2parameterszd2interferencez12z12zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_77, obj_t BgL_pregsz00_78)
	{
		{	/* SawMill/regalloc.scm 254 */
			{	/* SawMill/regalloc.scm 256 */
				obj_t BgL_g1617z00_2380;

				BgL_g1617z00_2380 =
					(((BgL_backendz00_bglt) COBJECT(BgL_backz00_77))->BgL_registersz00);
				{
					obj_t BgL_l1615z00_2382;

					BgL_l1615z00_2382 = BgL_g1617z00_2380;
				BgL_zc3z04anonymousza32011ze3z87_2383:
					if (PAIRP(BgL_l1615z00_2382))
						{	/* SawMill/regalloc.scm 256 */
							{	/* SawMill/regalloc.scm 257 */
								obj_t BgL_rz00_2385;

								BgL_rz00_2385 = CAR(BgL_l1615z00_2382);
								if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
										(BgL_rz00_2385,
											(((BgL_backendz00_bglt) COBJECT(BgL_backz00_77))->
												BgL_pregistersz00))))
									{	/* SawMill/regalloc.scm 257 */
										((bool_t) 0);
									}
								else
									{
										obj_t BgL_l1613z00_2389;

										BgL_l1613z00_2389 = BgL_pregsz00_78;
									BgL_zc3z04anonymousza32015ze3z87_2390:
										if (PAIRP(BgL_l1613z00_2389))
											{	/* SawMill/regalloc.scm 258 */
												BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
													(CAR(BgL_l1613z00_2389), BgL_rz00_2385);
												{
													obj_t BgL_l1613z00_6627;

													BgL_l1613z00_6627 = CDR(BgL_l1613z00_2389);
													BgL_l1613z00_2389 = BgL_l1613z00_6627;
													goto BgL_zc3z04anonymousza32015ze3z87_2390;
												}
											}
										else
											{	/* SawMill/regalloc.scm 258 */
												((bool_t) 1);
											}
									}
							}
							{
								obj_t BgL_l1615z00_6629;

								BgL_l1615z00_6629 = CDR(BgL_l1615z00_2382);
								BgL_l1615z00_2382 = BgL_l1615z00_6629;
								goto BgL_zc3z04anonymousza32011ze3z87_2383;
							}
						}
					else
						{	/* SawMill/regalloc.scm 256 */
							return ((bool_t) 1);
						}
				}
			}
		}

	}



/* hardware-interference! */
	bool_t
		BGl_hardwarezd2interferencez12zc0zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_79, obj_t BgL_oz00_80)
	{
		{	/* SawMill/regalloc.scm 269 */
			{
				obj_t BgL_oz00_2527;

				{
					obj_t BgL_l1639z00_2401;

					BgL_l1639z00_2401 = BgL_oz00_80;
				BgL_zc3z04anonymousza32021ze3z87_2402:
					if (PAIRP(BgL_l1639z00_2401))
						{	/* SawMill/regalloc.scm 317 */
							BgL_oz00_2527 = CAR(BgL_l1639z00_2401);
							{	/* SawMill/regalloc.scm 313 */
								obj_t BgL_g1638z00_2529;

								BgL_g1638z00_2529 =
									(((BgL_blockz00_bglt) COBJECT(
											((BgL_blockz00_bglt) BgL_oz00_2527)))->BgL_firstz00);
								{
									obj_t BgL_l1636z00_2531;

									BgL_l1636z00_2531 = BgL_g1638z00_2529;
								BgL_zc3z04anonymousza32103ze3z87_2532:
									if (PAIRP(BgL_l1636z00_2531))
										{	/* SawMill/regalloc.scm 316 */
											{	/* SawMill/regalloc.scm 314 */
												obj_t BgL_oz00_2534;

												BgL_oz00_2534 = CAR(BgL_l1636z00_2531);
												{	/* SawMill/regalloc.scm 315 */
													obj_t BgL_arg2105z00_2536;
													obj_t BgL_arg2106z00_2537;

													{
														BgL_rtl_inszf2razf2_bglt BgL_auxz00_6638;

														{
															obj_t BgL_auxz00_6639;

															{	/* SawMill/regalloc.scm 315 */
																BgL_objectz00_bglt BgL_tmpz00_6640;

																BgL_tmpz00_6640 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2534));
																BgL_auxz00_6639 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_6640);
															}
															BgL_auxz00_6638 =
																((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6639);
														}
														BgL_arg2105z00_2536 =
															(((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6638))->BgL_inz00);
													}
													{
														BgL_rtl_inszf2razf2_bglt BgL_auxz00_6646;

														{
															obj_t BgL_auxz00_6647;

															{	/* SawMill/regalloc.scm 315 */
																BgL_objectz00_bglt BgL_tmpz00_6648;

																BgL_tmpz00_6648 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_oz00_2534));
																BgL_auxz00_6647 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_6648);
															}
															BgL_auxz00_6646 =
																((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6647);
														}
														BgL_arg2106z00_2537 =
															(((BgL_rtl_inszf2razf2_bglt)
																COBJECT(BgL_auxz00_6646))->BgL_outz00);
													}
													BGl_inszd2hardwarezd2interferencez12ze70zf5zzsaw_registerzd2allocationzd2
														(BgL_backz00_79,
														((BgL_rtl_insz00_bglt) BgL_oz00_2534),
														BgL_arg2105z00_2536, BgL_arg2106z00_2537);
												}
											}
											{
												obj_t BgL_l1636z00_6656;

												BgL_l1636z00_6656 = CDR(BgL_l1636z00_2531);
												BgL_l1636z00_2531 = BgL_l1636z00_6656;
												goto BgL_zc3z04anonymousza32103ze3z87_2532;
											}
										}
									else
										{	/* SawMill/regalloc.scm 316 */
											((bool_t) 1);
										}
								}
							}
							{
								obj_t BgL_l1639z00_6659;

								BgL_l1639z00_6659 = CDR(BgL_l1639z00_2401);
								BgL_l1639z00_2401 = BgL_l1639z00_6659;
								goto BgL_zc3z04anonymousza32021ze3z87_2402;
							}
						}
					else
						{	/* SawMill/regalloc.scm 317 */
							return ((bool_t) 1);
						}
				}
			}
		}

	}



/* ins-hardware-interference!~0 */
	bool_t
		BGl_inszd2hardwarezd2interferencez12ze70zf5zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_5639, BgL_rtl_insz00_bglt BgL_oz00_2407,
		obj_t BgL_inz00_2408, obj_t BgL_outz00_2409)
	{
		{	/* SawMill/regalloc.scm 311 */
			{	/* SawMill/regalloc.scm 271 */
				obj_t BgL_resetz00_2411;

				BgL_resetz00_2411 =
					BGl_backendzd2instrzd2resetzd2registerszd2zzbackend_backendz00
					(BgL_backz00_5639, ((obj_t) BgL_oz00_2407));
				{	/* SawMill/regalloc.scm 272 */
					obj_t BgL_spillz00_2412;
					obj_t BgL_rdestz00_2413;
					obj_t BgL_a0z00_2414;
					obj_t BgL_a1z00_2415;

					{	/* SawMill/regalloc.scm 281 */
						obj_t BgL_tmpz00_4163;

						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6663;

							BgL_tmpz00_6663 = (int) (1L);
							BgL_tmpz00_4163 = BGL_MVALUES_VAL(BgL_tmpz00_6663);
						}
						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6666;

							BgL_tmpz00_6666 = (int) (1L);
							BGL_MVALUES_VAL_SET(BgL_tmpz00_6666, BUNSPEC);
						}
						BgL_spillz00_2412 = BgL_tmpz00_4163;
					}
					{	/* SawMill/regalloc.scm 281 */
						obj_t BgL_tmpz00_4164;

						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6669;

							BgL_tmpz00_6669 = (int) (2L);
							BgL_tmpz00_4164 = BGL_MVALUES_VAL(BgL_tmpz00_6669);
						}
						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6672;

							BgL_tmpz00_6672 = (int) (2L);
							BGL_MVALUES_VAL_SET(BgL_tmpz00_6672, BUNSPEC);
						}
						BgL_rdestz00_2413 = BgL_tmpz00_4164;
					}
					{	/* SawMill/regalloc.scm 281 */
						obj_t BgL_tmpz00_4165;

						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6675;

							BgL_tmpz00_6675 = (int) (3L);
							BgL_tmpz00_4165 = BGL_MVALUES_VAL(BgL_tmpz00_6675);
						}
						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6678;

							BgL_tmpz00_6678 = (int) (3L);
							BGL_MVALUES_VAL_SET(BgL_tmpz00_6678, BUNSPEC);
						}
						BgL_a0z00_2414 = BgL_tmpz00_4165;
					}
					{	/* SawMill/regalloc.scm 281 */
						obj_t BgL_tmpz00_4166;

						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6681;

							BgL_tmpz00_6681 = (int) (4L);
							BgL_tmpz00_4166 = BGL_MVALUES_VAL(BgL_tmpz00_6681);
						}
						{	/* SawMill/regalloc.scm 281 */
							int BgL_tmpz00_6684;

							BgL_tmpz00_6684 = (int) (4L);
							BGL_MVALUES_VAL_SET(BgL_tmpz00_6684, BUNSPEC);
						}
						BgL_a1z00_2415 = BgL_tmpz00_4166;
					}
					if (NULLP(BgL_resetz00_2411))
						{	/* SawMill/regalloc.scm 273 */
							BFALSE;
						}
					else
						{	/* SawMill/regalloc.scm 273 */
							{	/* SawMill/regalloc.scm 275 */
								obj_t BgL_zc3z04anonymousza32029ze3z87_5477;

								BgL_zc3z04anonymousza32029ze3z87_5477 =
									MAKE_FX_PROCEDURE
									(BGl_z62zc3z04anonymousza32029ze3ze5zzsaw_registerzd2allocationzd2,
									(int) (1L), (int) (1L));
								PROCEDURE_SET(BgL_zc3z04anonymousza32029ze3z87_5477, (int) (0L),
									BgL_resetz00_2411);
								BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
									(BgL_zc3z04anonymousza32029ze3z87_5477,
									((BgL_regsetz00_bglt) BgL_inz00_2408));
							}
							{	/* SawMill/regalloc.scm 279 */
								obj_t BgL_zc3z04anonymousza32034ze3z87_5476;

								BgL_zc3z04anonymousza32034ze3z87_5476 =
									MAKE_FX_PROCEDURE
									(BGl_z62zc3z04anonymousza32034ze3ze5zzsaw_registerzd2allocationzd2,
									(int) (1L), (int) (1L));
								PROCEDURE_SET(BgL_zc3z04anonymousza32034ze3z87_5476, (int) (0L),
									BgL_resetz00_2411);
								BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
									(BgL_zc3z04anonymousza32034ze3z87_5476,
									((BgL_regsetz00_bglt) BgL_outz00_2409));
						}}
					{	/* SawMill/regalloc.scm 285 */
						bool_t BgL_test3010z00_6703;

						if (PAIRP(BgL_rdestz00_2413))
							{	/* SawMill/regalloc.scm 285 */
								obj_t BgL_arg2047z00_2455;

								BgL_arg2047z00_2455 =
									(((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->BgL_destz00);
								{	/* SawMill/regalloc.scm 285 */
									obj_t BgL_classz00_4171;

									BgL_classz00_4171 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
									if (BGL_OBJECTP(BgL_arg2047z00_2455))
										{	/* SawMill/regalloc.scm 285 */
											BgL_objectz00_bglt BgL_arg1801z00_4173;

											BgL_arg1801z00_4173 =
												(BgL_objectz00_bglt) (BgL_arg2047z00_2455);
											if (BGL_CONDEXPAND_ISA_ARCH64())
												{	/* SawMill/regalloc.scm 285 */
													long BgL_idxz00_4179;

													BgL_idxz00_4179 =
														BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4173);
													BgL_test3010z00_6703 =
														(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
															(BgL_idxz00_4179 + 2L)) == BgL_classz00_4171);
												}
											else
												{	/* SawMill/regalloc.scm 285 */
													bool_t BgL_res2760z00_4201;

													{	/* SawMill/regalloc.scm 285 */
														obj_t BgL_oclassz00_4187;

														{	/* SawMill/regalloc.scm 285 */
															long BgL_arg1808z00_4193;

															{	/* SawMill/regalloc.scm 285 */
																long BgL_arg1809z00_4194;

																BgL_arg1809z00_4194 =
																	BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4173);
																BgL_arg1808z00_4193 =
																	(BgL_arg1809z00_4194 - OBJECT_TYPE);
															}
															BgL_oclassz00_4187 =
																VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																BgL_arg1808z00_4193);
														}
														{	/* SawMill/regalloc.scm 285 */
															bool_t BgL__ortest_1115z00_4188;

															BgL__ortest_1115z00_4188 =
																(BgL_classz00_4171 == BgL_oclassz00_4187);
															if (BgL__ortest_1115z00_4188)
																{	/* SawMill/regalloc.scm 285 */
																	BgL_res2760z00_4201 =
																		BgL__ortest_1115z00_4188;
																}
															else
																{	/* SawMill/regalloc.scm 285 */
																	long BgL_odepthz00_4189;

																	BgL_odepthz00_4189 =
																		BGL_CLASS_DEPTH(BgL_oclassz00_4187);
																	if ((2L < BgL_odepthz00_4189))
																		{	/* SawMill/regalloc.scm 285 */
																			obj_t BgL_arg1797z00_4191;

																			BgL_arg1797z00_4191 =
																				BGL_CLASS_ANCESTORS_REF
																				(BgL_oclassz00_4187, 2L);
																			BgL_res2760z00_4201 =
																				(BgL_arg1797z00_4191 ==
																				BgL_classz00_4171);
																		}
																	else
																		{	/* SawMill/regalloc.scm 285 */
																			BgL_res2760z00_4201 = ((bool_t) 0);
																		}
																}
														}
													}
													BgL_test3010z00_6703 = BgL_res2760z00_4201;
												}
										}
									else
										{	/* SawMill/regalloc.scm 285 */
											BgL_test3010z00_6703 = ((bool_t) 0);
										}
								}
							}
						else
							{	/* SawMill/regalloc.scm 285 */
								BgL_test3010z00_6703 = ((bool_t) 0);
							}
						if (BgL_test3010z00_6703)
							{	/* SawMill/regalloc.scm 286 */
								obj_t BgL_g1624z00_2444;

								BgL_g1624z00_2444 =
									(((BgL_backendz00_bglt) COBJECT(BgL_backz00_5639))->
									BgL_registersz00);
								{
									obj_t BgL_l1622z00_2446;

									BgL_l1622z00_2446 = BgL_g1624z00_2444;
								BgL_zc3z04anonymousza32041ze3z87_2447:
									if (PAIRP(BgL_l1622z00_2446))
										{	/* SawMill/regalloc.scm 286 */
											{	/* SawMill/regalloc.scm 287 */
												obj_t BgL_rz00_2449;

												BgL_rz00_2449 = CAR(BgL_l1622z00_2446);
												if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
														(BgL_rz00_2449, BgL_rdestz00_2413)))
													{	/* SawMill/regalloc.scm 287 */
														((bool_t) 0);
													}
												else
													{	/* SawMill/regalloc.scm 288 */
														obj_t BgL_arg2044z00_2451;

														BgL_arg2044z00_2451 =
															(((BgL_rtl_insz00_bglt) COBJECT(
																	((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
															BgL_destz00);
														BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
															(BgL_arg2044z00_2451, BgL_rz00_2449);
													}
											}
											{
												obj_t BgL_l1622z00_6737;

												BgL_l1622z00_6737 = CDR(BgL_l1622z00_2446);
												BgL_l1622z00_2446 = BgL_l1622z00_6737;
												goto BgL_zc3z04anonymousza32041ze3z87_2447;
											}
										}
									else
										{	/* SawMill/regalloc.scm 286 */
											((bool_t) 1);
										}
								}
							}
						else
							{	/* SawMill/regalloc.scm 285 */
								((bool_t) 0);
							}
					}
					{	/* SawMill/regalloc.scm 291 */
						bool_t BgL_test3018z00_6739;

						if (PAIRP(BgL_a0z00_2414))
							{	/* SawMill/regalloc.scm 291 */
								if (NULLP(
										(((BgL_rtl_insz00_bglt) COBJECT(
													((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
											BgL_argsz00)))
									{	/* SawMill/regalloc.scm 291 */
										BgL_test3018z00_6739 = ((bool_t) 0);
									}
								else
									{	/* SawMill/regalloc.scm 291 */
										obj_t BgL_arg2062z00_2476;

										{	/* SawMill/regalloc.scm 291 */
											obj_t BgL_pairz00_4204;

											BgL_pairz00_4204 =
												(((BgL_rtl_insz00_bglt) COBJECT(
														((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
												BgL_argsz00);
											BgL_arg2062z00_2476 = CAR(BgL_pairz00_4204);
										}
										{	/* SawMill/regalloc.scm 291 */
											obj_t BgL_classz00_4205;

											BgL_classz00_4205 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
											if (BGL_OBJECTP(BgL_arg2062z00_2476))
												{	/* SawMill/regalloc.scm 291 */
													BgL_objectz00_bglt BgL_arg1801z00_4207;

													BgL_arg1801z00_4207 =
														(BgL_objectz00_bglt) (BgL_arg2062z00_2476);
													if (BGL_CONDEXPAND_ISA_ARCH64())
														{	/* SawMill/regalloc.scm 291 */
															long BgL_idxz00_4213;

															BgL_idxz00_4213 =
																BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4207);
															BgL_test3018z00_6739 =
																(VECTOR_REF
																(BGl_za2inheritancesza2z00zz__objectz00,
																	(BgL_idxz00_4213 + 2L)) == BgL_classz00_4205);
														}
													else
														{	/* SawMill/regalloc.scm 291 */
															bool_t BgL_res2761z00_4235;

															{	/* SawMill/regalloc.scm 291 */
																obj_t BgL_oclassz00_4221;

																{	/* SawMill/regalloc.scm 291 */
																	long BgL_arg1808z00_4227;

																	{	/* SawMill/regalloc.scm 291 */
																		long BgL_arg1809z00_4228;

																		BgL_arg1809z00_4228 =
																			BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4207);
																		BgL_arg1808z00_4227 =
																			(BgL_arg1809z00_4228 - OBJECT_TYPE);
																	}
																	BgL_oclassz00_4221 =
																		VECTOR_REF
																		(BGl_za2classesza2z00zz__objectz00,
																		BgL_arg1808z00_4227);
																}
																{	/* SawMill/regalloc.scm 291 */
																	bool_t BgL__ortest_1115z00_4222;

																	BgL__ortest_1115z00_4222 =
																		(BgL_classz00_4205 == BgL_oclassz00_4221);
																	if (BgL__ortest_1115z00_4222)
																		{	/* SawMill/regalloc.scm 291 */
																			BgL_res2761z00_4235 =
																				BgL__ortest_1115z00_4222;
																		}
																	else
																		{	/* SawMill/regalloc.scm 291 */
																			long BgL_odepthz00_4223;

																			BgL_odepthz00_4223 =
																				BGL_CLASS_DEPTH(BgL_oclassz00_4221);
																			if ((2L < BgL_odepthz00_4223))
																				{	/* SawMill/regalloc.scm 291 */
																					obj_t BgL_arg1797z00_4225;

																					BgL_arg1797z00_4225 =
																						BGL_CLASS_ANCESTORS_REF
																						(BgL_oclassz00_4221, 2L);
																					BgL_res2761z00_4235 =
																						(BgL_arg1797z00_4225 ==
																						BgL_classz00_4205);
																				}
																			else
																				{	/* SawMill/regalloc.scm 291 */
																					BgL_res2761z00_4235 = ((bool_t) 0);
																				}
																		}
																}
															}
															BgL_test3018z00_6739 = BgL_res2761z00_4235;
														}
												}
											else
												{	/* SawMill/regalloc.scm 291 */
													BgL_test3018z00_6739 = ((bool_t) 0);
												}
										}
									}
							}
						else
							{	/* SawMill/regalloc.scm 291 */
								BgL_test3018z00_6739 = ((bool_t) 0);
							}
						if (BgL_test3018z00_6739)
							{	/* SawMill/regalloc.scm 292 */
								obj_t BgL_g1627z00_2463;

								BgL_g1627z00_2463 =
									(((BgL_backendz00_bglt) COBJECT(BgL_backz00_5639))->
									BgL_registersz00);
								{
									obj_t BgL_l1625z00_2465;

									BgL_l1625z00_2465 = BgL_g1627z00_2463;
								BgL_zc3z04anonymousza32056ze3z87_2466:
									if (PAIRP(BgL_l1625z00_2465))
										{	/* SawMill/regalloc.scm 292 */
											{	/* SawMill/regalloc.scm 293 */
												obj_t BgL_rz00_2468;

												BgL_rz00_2468 = CAR(BgL_l1625z00_2465);
												if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
														(BgL_rz00_2468, BgL_a0z00_2414)))
													{	/* SawMill/regalloc.scm 293 */
														((bool_t) 0);
													}
												else
													{	/* SawMill/regalloc.scm 294 */
														obj_t BgL_arg2059z00_2470;

														{	/* SawMill/regalloc.scm 294 */
															obj_t BgL_pairz00_4237;

															BgL_pairz00_4237 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
																BgL_argsz00);
															BgL_arg2059z00_2470 = CAR(BgL_pairz00_4237);
														}
														BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
															(BgL_rz00_2468, BgL_arg2059z00_2470);
													}
											}
											{
												obj_t BgL_l1625z00_6779;

												BgL_l1625z00_6779 = CDR(BgL_l1625z00_2465);
												BgL_l1625z00_2465 = BgL_l1625z00_6779;
												goto BgL_zc3z04anonymousza32056ze3z87_2466;
											}
										}
									else
										{	/* SawMill/regalloc.scm 292 */
											((bool_t) 1);
										}
								}
							}
						else
							{	/* SawMill/regalloc.scm 291 */
								((bool_t) 0);
							}
					}
					{	/* SawMill/regalloc.scm 297 */
						bool_t BgL_test3027z00_6781;

						if (PAIRP(BgL_a1z00_2415))
							{	/* SawMill/regalloc.scm 297 */
								if (NULLP(
										(((BgL_rtl_insz00_bglt) COBJECT(
													((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
											BgL_argsz00)))
									{	/* SawMill/regalloc.scm 298 */
										BgL_test3027z00_6781 = ((bool_t) 0);
									}
								else
									{	/* SawMill/regalloc.scm 298 */
										bool_t BgL_test3030z00_6788;

										{	/* SawMill/regalloc.scm 298 */
											obj_t BgL_tmpz00_6789;

											{	/* SawMill/regalloc.scm 298 */
												obj_t BgL_pairz00_4239;

												BgL_pairz00_4239 =
													(((BgL_rtl_insz00_bglt) COBJECT(
															((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
													BgL_argsz00);
												BgL_tmpz00_6789 = CDR(BgL_pairz00_4239);
											}
											BgL_test3030z00_6788 = PAIRP(BgL_tmpz00_6789);
										}
										if (BgL_test3030z00_6788)
											{	/* SawMill/regalloc.scm 299 */
												obj_t BgL_arg2088z00_2505;

												{	/* SawMill/regalloc.scm 299 */
													obj_t BgL_pairz00_4240;

													BgL_pairz00_4240 =
														(((BgL_rtl_insz00_bglt) COBJECT(
																((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
														BgL_argsz00);
													BgL_arg2088z00_2505 = CAR(CDR(BgL_pairz00_4240));
												}
												{	/* SawMill/regalloc.scm 299 */
													obj_t BgL_classz00_4244;

													BgL_classz00_4244 =
														BGl_rtl_regzf2razf2zzsaw_regsetz00;
													if (BGL_OBJECTP(BgL_arg2088z00_2505))
														{	/* SawMill/regalloc.scm 299 */
															BgL_objectz00_bglt BgL_arg1801z00_4246;

															BgL_arg1801z00_4246 =
																(BgL_objectz00_bglt) (BgL_arg2088z00_2505);
															if (BGL_CONDEXPAND_ISA_ARCH64())
																{	/* SawMill/regalloc.scm 299 */
																	long BgL_idxz00_4252;

																	BgL_idxz00_4252 =
																		BGL_OBJECT_INHERITANCE_NUM
																		(BgL_arg1801z00_4246);
																	BgL_test3027z00_6781 =
																		(VECTOR_REF
																		(BGl_za2inheritancesza2z00zz__objectz00,
																			(BgL_idxz00_4252 + 2L)) ==
																		BgL_classz00_4244);
																}
															else
																{	/* SawMill/regalloc.scm 299 */
																	bool_t BgL_res2762z00_4274;

																	{	/* SawMill/regalloc.scm 299 */
																		obj_t BgL_oclassz00_4260;

																		{	/* SawMill/regalloc.scm 299 */
																			long BgL_arg1808z00_4266;

																			{	/* SawMill/regalloc.scm 299 */
																				long BgL_arg1809z00_4267;

																				BgL_arg1809z00_4267 =
																					BGL_OBJECT_CLASS_NUM
																					(BgL_arg1801z00_4246);
																				BgL_arg1808z00_4266 =
																					(BgL_arg1809z00_4267 - OBJECT_TYPE);
																			}
																			BgL_oclassz00_4260 =
																				VECTOR_REF
																				(BGl_za2classesza2z00zz__objectz00,
																				BgL_arg1808z00_4266);
																		}
																		{	/* SawMill/regalloc.scm 299 */
																			bool_t BgL__ortest_1115z00_4261;

																			BgL__ortest_1115z00_4261 =
																				(BgL_classz00_4244 ==
																				BgL_oclassz00_4260);
																			if (BgL__ortest_1115z00_4261)
																				{	/* SawMill/regalloc.scm 299 */
																					BgL_res2762z00_4274 =
																						BgL__ortest_1115z00_4261;
																				}
																			else
																				{	/* SawMill/regalloc.scm 299 */
																					long BgL_odepthz00_4262;

																					BgL_odepthz00_4262 =
																						BGL_CLASS_DEPTH(BgL_oclassz00_4260);
																					if ((2L < BgL_odepthz00_4262))
																						{	/* SawMill/regalloc.scm 299 */
																							obj_t BgL_arg1797z00_4264;

																							BgL_arg1797z00_4264 =
																								BGL_CLASS_ANCESTORS_REF
																								(BgL_oclassz00_4260, 2L);
																							BgL_res2762z00_4274 =
																								(BgL_arg1797z00_4264 ==
																								BgL_classz00_4244);
																						}
																					else
																						{	/* SawMill/regalloc.scm 299 */
																							BgL_res2762z00_4274 =
																								((bool_t) 0);
																						}
																				}
																		}
																	}
																	BgL_test3027z00_6781 = BgL_res2762z00_4274;
																}
														}
													else
														{	/* SawMill/regalloc.scm 299 */
															BgL_test3027z00_6781 = ((bool_t) 0);
														}
												}
											}
										else
											{	/* SawMill/regalloc.scm 298 */
												BgL_test3027z00_6781 = ((bool_t) 0);
											}
									}
							}
						else
							{	/* SawMill/regalloc.scm 297 */
								BgL_test3027z00_6781 = ((bool_t) 0);
							}
						if (BgL_test3027z00_6781)
							{	/* SawMill/regalloc.scm 300 */
								obj_t BgL_g1630z00_2491;

								BgL_g1630z00_2491 =
									(((BgL_backendz00_bglt) COBJECT(BgL_backz00_5639))->
									BgL_registersz00);
								{
									obj_t BgL_l1628z00_2493;

									BgL_l1628z00_2493 = BgL_g1630z00_2491;
								BgL_zc3z04anonymousza32081ze3z87_2494:
									if (PAIRP(BgL_l1628z00_2493))
										{	/* SawMill/regalloc.scm 300 */
											{	/* SawMill/regalloc.scm 301 */
												obj_t BgL_rz00_2496;

												BgL_rz00_2496 = CAR(BgL_l1628z00_2493);
												if (CBOOL(BGl_memqz00zz__r4_pairs_and_lists_6_3z00
														(BgL_rz00_2496, BgL_a1z00_2415)))
													{	/* SawMill/regalloc.scm 301 */
														((bool_t) 0);
													}
												else
													{	/* SawMill/regalloc.scm 302 */
														obj_t BgL_arg2085z00_2498;

														{	/* SawMill/regalloc.scm 302 */
															obj_t BgL_pairz00_4276;

															BgL_pairz00_4276 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->
																BgL_argsz00);
															BgL_arg2085z00_2498 = CAR(CDR(BgL_pairz00_4276));
														}
														BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
															(BgL_rz00_2496, BgL_arg2085z00_2498);
													}
											}
											{
												obj_t BgL_l1628z00_6829;

												BgL_l1628z00_6829 = CDR(BgL_l1628z00_2493);
												BgL_l1628z00_2493 = BgL_l1628z00_6829;
												goto BgL_zc3z04anonymousza32081ze3z87_2494;
											}
										}
									else
										{	/* SawMill/regalloc.scm 300 */
											((bool_t) 1);
										}
								}
							}
						else
							{	/* SawMill/regalloc.scm 297 */
								((bool_t) 0);
							}
					}
					{	/* SawMill/regalloc.scm 305 */
						obj_t BgL_g1633z00_2510;

						BgL_g1633z00_2510 =
							(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_oz00_2407)))->BgL_argsz00);
						{
							obj_t BgL_l1631z00_2512;

							BgL_l1631z00_2512 = BgL_g1633z00_2510;
						BgL_zc3z04anonymousza32094ze3z87_2513:
							if (PAIRP(BgL_l1631z00_2512))
								{	/* SawMill/regalloc.scm 305 */
									{	/* SawMill/regalloc.scm 306 */
										obj_t BgL_az00_2515;

										BgL_az00_2515 = CAR(BgL_l1631z00_2512);
										{	/* SawMill/regalloc.scm 306 */
											bool_t BgL_test3038z00_6836;

											{	/* SawMill/regalloc.scm 306 */
												obj_t BgL_classz00_4282;

												BgL_classz00_4282 = BGl_rtl_insz00zzsaw_defsz00;
												if (BGL_OBJECTP(BgL_az00_2515))
													{	/* SawMill/regalloc.scm 306 */
														BgL_objectz00_bglt BgL_arg1801z00_4284;

														BgL_arg1801z00_4284 =
															(BgL_objectz00_bglt) (BgL_az00_2515);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/regalloc.scm 306 */
																long BgL_idxz00_4290;

																BgL_idxz00_4290 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_4284);
																BgL_test3038z00_6836 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_4290 + 1L)) ==
																	BgL_classz00_4282);
															}
														else
															{	/* SawMill/regalloc.scm 306 */
																bool_t BgL_res2763z00_4312;

																{	/* SawMill/regalloc.scm 306 */
																	obj_t BgL_oclassz00_4298;

																	{	/* SawMill/regalloc.scm 306 */
																		long BgL_arg1808z00_4304;

																		{	/* SawMill/regalloc.scm 306 */
																			long BgL_arg1809z00_4305;

																			BgL_arg1809z00_4305 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_4284);
																			BgL_arg1808z00_4304 =
																				(BgL_arg1809z00_4305 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_4298 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_4304);
																	}
																	{	/* SawMill/regalloc.scm 306 */
																		bool_t BgL__ortest_1115z00_4299;

																		BgL__ortest_1115z00_4299 =
																			(BgL_classz00_4282 == BgL_oclassz00_4298);
																		if (BgL__ortest_1115z00_4299)
																			{	/* SawMill/regalloc.scm 306 */
																				BgL_res2763z00_4312 =
																					BgL__ortest_1115z00_4299;
																			}
																		else
																			{	/* SawMill/regalloc.scm 306 */
																				long BgL_odepthz00_4300;

																				BgL_odepthz00_4300 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_4298);
																				if ((1L < BgL_odepthz00_4300))
																					{	/* SawMill/regalloc.scm 306 */
																						obj_t BgL_arg1797z00_4302;

																						BgL_arg1797z00_4302 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_4298, 1L);
																						BgL_res2763z00_4312 =
																							(BgL_arg1797z00_4302 ==
																							BgL_classz00_4282);
																					}
																				else
																					{	/* SawMill/regalloc.scm 306 */
																						BgL_res2763z00_4312 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test3038z00_6836 = BgL_res2763z00_4312;
															}
													}
												else
													{	/* SawMill/regalloc.scm 306 */
														BgL_test3038z00_6836 = ((bool_t) 0);
													}
											}
											if (BgL_test3038z00_6836)
												{	/* SawMill/regalloc.scm 306 */
													BGl_inszd2hardwarezd2interferencez12ze70zf5zzsaw_registerzd2allocationzd2
														(BgL_backz00_5639,
														((BgL_rtl_insz00_bglt) BgL_az00_2515),
														BgL_inz00_2408, BgL_outz00_2409);
												}
											else
												{	/* SawMill/regalloc.scm 306 */
													((bool_t) 0);
												}
										}
									}
									{
										obj_t BgL_l1631z00_6858;

										BgL_l1631z00_6858 = CDR(BgL_l1631z00_2512);
										BgL_l1631z00_2512 = BgL_l1631z00_6858;
										goto BgL_zc3z04anonymousza32094ze3z87_2513;
									}
								}
							else
								{	/* SawMill/regalloc.scm 305 */
									((bool_t) 1);
								}
						}
					}
					{
						obj_t BgL_l1634z00_2520;

						BgL_l1634z00_2520 = BgL_spillz00_2412;
					BgL_zc3z04anonymousza32098ze3z87_2521:
						if (PAIRP(BgL_l1634z00_2520))
							{	/* SawMill/regalloc.scm 309 */
								{	/* SawMill/regalloc.scm 310 */
									obj_t BgL_rz00_2523;

									BgL_rz00_2523 = CAR(BgL_l1634z00_2520);
									{	/* SawMill/regalloc.scm 310 */
										obj_t BgL_arg2100z00_2524;

										{
											BgL_rtl_inszf2razf2_bglt BgL_auxz00_6863;

											{
												obj_t BgL_auxz00_6864;

												{	/* SawMill/regalloc.scm 310 */
													BgL_objectz00_bglt BgL_tmpz00_6865;

													BgL_tmpz00_6865 =
														((BgL_objectz00_bglt) BgL_oz00_2407);
													BgL_auxz00_6864 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_6865);
												}
												BgL_auxz00_6863 =
													((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6864);
											}
											BgL_arg2100z00_2524 =
												(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6863))->
												BgL_spillz00);
										}
										BGl_regsetzd2addz12zc0zzsaw_regsetz00(
											((BgL_regsetz00_bglt) BgL_arg2100z00_2524),
											((BgL_rtl_regz00_bglt) BgL_rz00_2523));
									}
								}
								{
									obj_t BgL_l1634z00_6873;

									BgL_l1634z00_6873 = CDR(BgL_l1634z00_2520);
									BgL_l1634z00_2520 = BgL_l1634z00_6873;
									goto BgL_zc3z04anonymousza32098ze3z87_2521;
								}
							}
						else
							{	/* SawMill/regalloc.scm 309 */
								return ((bool_t) 1);
							}
					}
				}
			}
		}

	}



/* &<@anonymous:2034> */
	obj_t BGl_z62zc3z04anonymousza32034ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5478, obj_t BgL_r1z00_5480)
	{
		{	/* SawMill/regalloc.scm 278 */
			{	/* SawMill/regalloc.scm 279 */
				obj_t BgL_resetz00_5479;

				BgL_resetz00_5479 =
					((obj_t) PROCEDURE_REF(BgL_envz00_5478, (int) (0L)));
				{	/* SawMill/regalloc.scm 279 */
					bool_t BgL_tmpz00_6878;

					{
						obj_t BgL_l1620z00_5658;

						BgL_l1620z00_5658 = BgL_resetz00_5479;
					BgL_zc3z04anonymousza32035ze3z87_5657:
						if (PAIRP(BgL_l1620z00_5658))
							{	/* SawMill/regalloc.scm 279 */
								BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
									(BgL_r1z00_5480, CAR(BgL_l1620z00_5658));
								{
									obj_t BgL_l1620z00_6883;

									BgL_l1620z00_6883 = CDR(BgL_l1620z00_5658);
									BgL_l1620z00_5658 = BgL_l1620z00_6883;
									goto BgL_zc3z04anonymousza32035ze3z87_5657;
								}
							}
						else
							{	/* SawMill/regalloc.scm 279 */
								BgL_tmpz00_6878 = ((bool_t) 1);
							}
					}
					return BBOOL(BgL_tmpz00_6878);
				}
			}
		}

	}



/* &<@anonymous:2029> */
	obj_t BGl_z62zc3z04anonymousza32029ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5481, obj_t BgL_r1z00_5483)
	{
		{	/* SawMill/regalloc.scm 274 */
			{	/* SawMill/regalloc.scm 275 */
				obj_t BgL_resetz00_5482;

				BgL_resetz00_5482 =
					((obj_t) PROCEDURE_REF(BgL_envz00_5481, (int) (0L)));
				{	/* SawMill/regalloc.scm 275 */
					bool_t BgL_tmpz00_6889;

					{
						obj_t BgL_l1618z00_5660;

						BgL_l1618z00_5660 = BgL_resetz00_5482;
					BgL_zc3z04anonymousza32030ze3z87_5659:
						if (PAIRP(BgL_l1618z00_5660))
							{	/* SawMill/regalloc.scm 275 */
								BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
									(BgL_r1z00_5483, CAR(BgL_l1618z00_5660));
								{
									obj_t BgL_l1618z00_6894;

									BgL_l1618z00_6894 = CDR(BgL_l1618z00_5660);
									BgL_l1618z00_5660 = BgL_l1618z00_6894;
									goto BgL_zc3z04anonymousza32030ze3z87_5659;
								}
							}
						else
							{	/* SawMill/regalloc.scm 275 */
								BgL_tmpz00_6889 = ((bool_t) 1);
							}
					}
					return BBOOL(BgL_tmpz00_6889);
				}
			}
		}

	}



/* interference! */
	obj_t BGl_interferencez12z12zzsaw_registerzd2allocationzd2(obj_t
		BgL_blocksz00_83, obj_t BgL_regsz00_84)
	{
		{	/* SawMill/regalloc.scm 350 */
			{	/* SawMill/regalloc.scm 351 */
				obj_t BgL_list2108z00_2542;

				BgL_list2108z00_2542 =
					MAKE_YOUNG_PAIR(BGl_string2819z00zzsaw_registerzd2allocationzd2,
					BNIL);
				BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list2108z00_2542);
			}
			{
				obj_t BgL_l1647z00_2544;

				BgL_l1647z00_2544 = BgL_blocksz00_83;
			BgL_zc3z04anonymousza32109ze3z87_2545:
				if (PAIRP(BgL_l1647z00_2544))
					{	/* SawMill/regalloc.scm 353 */
						{	/* SawMill/regalloc.scm 354 */
							obj_t BgL_bz00_2547;

							BgL_bz00_2547 = CAR(BgL_l1647z00_2544);
							{	/* SawMill/regalloc.scm 354 */
								obj_t BgL_g1646z00_2548;

								BgL_g1646z00_2548 =
									(((BgL_blockz00_bglt) COBJECT(
											((BgL_blockz00_bglt) BgL_bz00_2547)))->BgL_firstz00);
								{
									obj_t BgL_l1644z00_2550;

									BgL_l1644z00_2550 = BgL_g1646z00_2548;
								BgL_zc3z04anonymousza32111ze3z87_2551:
									if (PAIRP(BgL_l1644z00_2550))
										{	/* SawMill/regalloc.scm 354 */
											{	/* SawMill/regalloc.scm 354 */
												obj_t BgL_iz00_2553;

												BgL_iz00_2553 = CAR(BgL_l1644z00_2550);
												BGl_interferezd2insz12zc0zzsaw_registerzd2allocationzd2(
													((BgL_rtl_insz00_bglt) BgL_iz00_2553));
											}
											{
												obj_t BgL_l1644z00_6910;

												BgL_l1644z00_6910 = CDR(BgL_l1644z00_2550);
												BgL_l1644z00_2550 = BgL_l1644z00_6910;
												goto BgL_zc3z04anonymousza32111ze3z87_2551;
											}
										}
									else
										{	/* SawMill/regalloc.scm 354 */
											((bool_t) 1);
										}
								}
							}
						}
						{
							obj_t BgL_l1647z00_6912;

							BgL_l1647z00_6912 = CDR(BgL_l1647z00_2544);
							BgL_l1647z00_2544 = BgL_l1647z00_6912;
							goto BgL_zc3z04anonymousza32109ze3z87_2545;
						}
					}
				else
					{	/* SawMill/regalloc.scm 353 */
						((bool_t) 1);
					}
			}
			{	/* SawMill/regalloc.scm 356 */
				obj_t BgL_list2115z00_2558;

				BgL_list2115z00_2558 =
					MAKE_YOUNG_PAIR(BGl_string2820z00zzsaw_registerzd2allocationzd2,
					BNIL);
				return BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list2115z00_2558);
			}
		}

	}



/* interfere-ins! */
	obj_t
		BGl_interferezd2insz12zc0zzsaw_registerzd2allocationzd2(BgL_rtl_insz00_bglt
		BgL_iz00_85)
	{
		{	/* SawMill/regalloc.scm 361 */
			{	/* SawMill/regalloc.scm 364 */
				obj_t BgL_arg2117z00_2561;

				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_6917;

					{
						obj_t BgL_auxz00_6918;

						{	/* SawMill/regalloc.scm 363 */
							BgL_objectz00_bglt BgL_tmpz00_6919;

							BgL_tmpz00_6919 = ((BgL_objectz00_bglt) BgL_iz00_85);
							BgL_auxz00_6918 = BGL_OBJECT_WIDENING(BgL_tmpz00_6919);
						}
						BgL_auxz00_6917 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6918);
					}
					BgL_arg2117z00_2561 =
						(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6917))->BgL_inz00);
				}
				{	/* SawMill/regalloc.scm 366 */
					obj_t BgL_zc3z04anonymousza32118ze3z87_5487;

					BgL_zc3z04anonymousza32118ze3z87_5487 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza32118ze3ze5zzsaw_registerzd2allocationzd2,
						(int) (1L), (int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza32118ze3z87_5487, (int) (0L),
						((obj_t) BgL_iz00_85));
					BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
						(BgL_zc3z04anonymousza32118ze3z87_5487,
						((BgL_regsetz00_bglt) BgL_arg2117z00_2561));
			}}
			{	/* SawMill/regalloc.scm 371 */
				obj_t BgL_arg2123z00_2571;

				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_6932;

					{
						obj_t BgL_auxz00_6933;

						{	/* SawMill/regalloc.scm 370 */
							BgL_objectz00_bglt BgL_tmpz00_6934;

							BgL_tmpz00_6934 = ((BgL_objectz00_bglt) BgL_iz00_85);
							BgL_auxz00_6933 = BGL_OBJECT_WIDENING(BgL_tmpz00_6934);
						}
						BgL_auxz00_6932 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6933);
					}
					BgL_arg2123z00_2571 =
						(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6932))->BgL_outz00);
				}
				{	/* SawMill/regalloc.scm 373 */
					obj_t BgL_zc3z04anonymousza32124ze3z87_5485;

					BgL_zc3z04anonymousza32124ze3z87_5485 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza32124ze3ze5zzsaw_registerzd2allocationzd2,
						(int) (1L), (int) (1L));
					PROCEDURE_SET(BgL_zc3z04anonymousza32124ze3z87_5485, (int) (0L),
						((obj_t) BgL_iz00_85));
					return
						BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
						(BgL_zc3z04anonymousza32124ze3z87_5485,
						((BgL_regsetz00_bglt) BgL_arg2123z00_2571));
				}
			}
		}

	}



/* &<@anonymous:2124> */
	obj_t BGl_z62zc3z04anonymousza32124ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5488, obj_t BgL_r1z00_5490)
	{
		{	/* SawMill/regalloc.scm 371 */
			{	/* SawMill/regalloc.scm 373 */
				BgL_rtl_insz00_bglt BgL_i1221z00_5489;

				BgL_i1221z00_5489 =
					((BgL_rtl_insz00_bglt) PROCEDURE_REF(BgL_envz00_5488, (int) (0L)));
				{	/* SawMill/regalloc.scm 373 */
					obj_t BgL_arg2126z00_5661;

					{
						BgL_rtl_inszf2razf2_bglt BgL_auxz00_6950;

						{
							obj_t BgL_auxz00_6951;

							{	/* SawMill/regalloc.scm 372 */
								BgL_objectz00_bglt BgL_tmpz00_6952;

								BgL_tmpz00_6952 = ((BgL_objectz00_bglt) BgL_i1221z00_5489);
								BgL_auxz00_6951 = BGL_OBJECT_WIDENING(BgL_tmpz00_6952);
							}
							BgL_auxz00_6950 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6951);
						}
						BgL_arg2126z00_5661 =
							(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6950))->
							BgL_outz00);
					}
					{	/* SawMill/regalloc.scm 374 */
						obj_t BgL_zc3z04anonymousza32127ze3z87_5662;

						BgL_zc3z04anonymousza32127ze3z87_5662 =
							MAKE_FX_PROCEDURE
							(BGl_z62zc3z04anonymousza32127ze3ze5zzsaw_registerzd2allocationzd2,
							(int) (1L), (int) (1L));
						PROCEDURE_SET(BgL_zc3z04anonymousza32127ze3z87_5662, (int) (0L),
							BgL_r1z00_5490);
						return
							BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
							(BgL_zc3z04anonymousza32127ze3z87_5662,
							((BgL_regsetz00_bglt) BgL_arg2126z00_5661));
					}
				}
			}
		}

	}



/* &<@anonymous:2127> */
	obj_t BGl_z62zc3z04anonymousza32127ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5491, obj_t BgL_r2z00_5493)
	{
		{	/* SawMill/regalloc.scm 373 */
			{	/* SawMill/regalloc.scm 374 */
				obj_t BgL_r1z00_5492;

				BgL_r1z00_5492 = PROCEDURE_REF(BgL_envz00_5491, (int) (0L));
				return
					BBOOL(BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
					(BgL_r1z00_5492, BgL_r2z00_5493));
			}
		}

	}



/* &<@anonymous:2118> */
	obj_t BGl_z62zc3z04anonymousza32118ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5494, obj_t BgL_r1z00_5496)
	{
		{	/* SawMill/regalloc.scm 364 */
			{	/* SawMill/regalloc.scm 366 */
				BgL_rtl_insz00_bglt BgL_i1221z00_5495;

				BgL_i1221z00_5495 =
					((BgL_rtl_insz00_bglt) PROCEDURE_REF(BgL_envz00_5494, (int) (0L)));
				{	/* SawMill/regalloc.scm 366 */
					obj_t BgL_arg2120z00_5663;

					{
						BgL_rtl_inszf2razf2_bglt BgL_auxz00_6971;

						{
							obj_t BgL_auxz00_6972;

							{	/* SawMill/regalloc.scm 365 */
								BgL_objectz00_bglt BgL_tmpz00_6973;

								BgL_tmpz00_6973 = ((BgL_objectz00_bglt) BgL_i1221z00_5495);
								BgL_auxz00_6972 = BGL_OBJECT_WIDENING(BgL_tmpz00_6973);
							}
							BgL_auxz00_6971 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_6972);
						}
						BgL_arg2120z00_5663 =
							(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_6971))->
							BgL_inz00);
					}
					{	/* SawMill/regalloc.scm 367 */
						obj_t BgL_zc3z04anonymousza32121ze3z87_5664;

						BgL_zc3z04anonymousza32121ze3z87_5664 =
							MAKE_FX_PROCEDURE
							(BGl_z62zc3z04anonymousza32121ze3ze5zzsaw_registerzd2allocationzd2,
							(int) (1L), (int) (1L));
						PROCEDURE_SET(BgL_zc3z04anonymousza32121ze3z87_5664, (int) (0L),
							BgL_r1z00_5496);
						return
							BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
							(BgL_zc3z04anonymousza32121ze3z87_5664,
							((BgL_regsetz00_bglt) BgL_arg2120z00_5663));
					}
				}
			}
		}

	}



/* &<@anonymous:2121> */
	obj_t BGl_z62zc3z04anonymousza32121ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5497, obj_t BgL_r2z00_5499)
	{
		{	/* SawMill/regalloc.scm 366 */
			{	/* SawMill/regalloc.scm 367 */
				obj_t BgL_r1z00_5498;

				BgL_r1z00_5498 = PROCEDURE_REF(BgL_envz00_5497, (int) (0L));
				return
					BBOOL(BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
					(BgL_r1z00_5498, BgL_r2z00_5499));
			}
		}

	}



/* interfere-reg! */
	bool_t BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2(obj_t
		BgL_r1z00_86, obj_t BgL_r2z00_87)
	{
		{	/* SawMill/regalloc.scm 381 */
			{	/* SawMill/regalloc.scm 382 */
				bool_t BgL_test3048z00_6989;

				if ((BgL_r1z00_86 == BgL_r2z00_87))
					{	/* SawMill/regalloc.scm 382 */
						BgL_test3048z00_6989 = ((bool_t) 1);
					}
				else
					{	/* SawMill/regalloc.scm 382 */
						obj_t BgL_arg2132z00_2584;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_6992;

							{
								obj_t BgL_auxz00_6993;

								{	/* SawMill/regalloc.scm 382 */
									BgL_objectz00_bglt BgL_tmpz00_6994;

									BgL_tmpz00_6994 =
										((BgL_objectz00_bglt) ((BgL_rtl_regz00_bglt) BgL_r1z00_86));
									BgL_auxz00_6993 = BGL_OBJECT_WIDENING(BgL_tmpz00_6994);
								}
								BgL_auxz00_6992 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_6993);
							}
							BgL_arg2132z00_2584 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_6992))->
								BgL_interferez00);
						}
						BgL_test3048z00_6989 =
							BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
							((BgL_rtl_regz00_bglt) BgL_r2z00_87),
							((BgL_regsetz00_bglt) BgL_arg2132z00_2584));
					}
				if (BgL_test3048z00_6989)
					{	/* SawMill/regalloc.scm 382 */
						return ((bool_t) 0);
					}
				else
					{	/* SawMill/regalloc.scm 382 */
						{	/* SawMill/regalloc.scm 383 */
							obj_t BgL_arg2130z00_2582;

							{
								BgL_rtl_regzf2razf2_bglt BgL_auxz00_7003;

								{
									obj_t BgL_auxz00_7004;

									{	/* SawMill/regalloc.scm 383 */
										BgL_objectz00_bglt BgL_tmpz00_7005;

										BgL_tmpz00_7005 =
											((BgL_objectz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_r1z00_86));
										BgL_auxz00_7004 = BGL_OBJECT_WIDENING(BgL_tmpz00_7005);
									}
									BgL_auxz00_7003 =
										((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7004);
								}
								BgL_arg2130z00_2582 =
									(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7003))->
									BgL_interferez00);
							}
							BGl_regsetzd2addz12zc0zzsaw_regsetz00(
								((BgL_regsetz00_bglt) BgL_arg2130z00_2582),
								((BgL_rtl_regz00_bglt) BgL_r2z00_87));
						}
						{	/* SawMill/regalloc.scm 384 */
							obj_t BgL_arg2131z00_2583;

							{
								BgL_rtl_regzf2razf2_bglt BgL_auxz00_7014;

								{
									obj_t BgL_auxz00_7015;

									{	/* SawMill/regalloc.scm 384 */
										BgL_objectz00_bglt BgL_tmpz00_7016;

										BgL_tmpz00_7016 =
											((BgL_objectz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_r2z00_87));
										BgL_auxz00_7015 = BGL_OBJECT_WIDENING(BgL_tmpz00_7016);
									}
									BgL_auxz00_7014 =
										((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7015);
								}
								BgL_arg2131z00_2583 =
									(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7014))->
									BgL_interferez00);
							}
							return
								BGl_regsetzd2addz12zc0zzsaw_regsetz00(
								((BgL_regsetz00_bglt) BgL_arg2131z00_2583),
								((BgL_rtl_regz00_bglt) BgL_r1z00_86));
						}
					}
			}
		}

	}



/* cleanup-dest! */
	obj_t BGl_cleanupzd2destz12zc0zzsaw_registerzd2allocationzd2(obj_t
		BgL_blocksz00_88)
	{
		{	/* SawMill/regalloc.scm 389 */
			{	/* SawMill/regalloc.scm 390 */
				obj_t BgL_list2133z00_2585;

				BgL_list2133z00_2585 =
					MAKE_YOUNG_PAIR(BGl_string2821z00zzsaw_registerzd2allocationzd2,
					BNIL);
				BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list2133z00_2585);
			}
			{	/* SawMill/regalloc.scm 391 */
				long BgL_nz00_2586;

				BgL_nz00_2586 = 0L;
				{
					obj_t BgL_l1652z00_2588;

					BgL_l1652z00_2588 = BgL_blocksz00_88;
				BgL_zc3z04anonymousza32134ze3z87_2589:
					if (PAIRP(BgL_l1652z00_2588))
						{	/* SawMill/regalloc.scm 392 */
							{	/* SawMill/regalloc.scm 393 */
								obj_t BgL_bz00_2591;

								BgL_bz00_2591 = CAR(BgL_l1652z00_2588);
								{	/* SawMill/regalloc.scm 393 */
									obj_t BgL_g1651z00_2592;

									BgL_g1651z00_2592 =
										(((BgL_blockz00_bglt) COBJECT(
												((BgL_blockz00_bglt) BgL_bz00_2591)))->BgL_firstz00);
									{
										obj_t BgL_l1649z00_2594;

										BgL_l1649z00_2594 = BgL_g1651z00_2592;
									BgL_zc3z04anonymousza32136ze3z87_2595:
										if (PAIRP(BgL_l1649z00_2594))
											{	/* SawMill/regalloc.scm 399 */
												{	/* SawMill/regalloc.scm 394 */
													obj_t BgL_iz00_2597;

													BgL_iz00_2597 = CAR(BgL_l1649z00_2594);
													{	/* SawMill/regalloc.scm 395 */
														bool_t BgL_test3052z00_7036;

														{	/* SawMill/regalloc.scm 395 */
															obj_t BgL_arg2145z00_2606;

															BgL_arg2145z00_2606 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt)
																			((BgL_rtl_insz00_bglt) BgL_iz00_2597))))->
																BgL_destz00);
															{	/* SawMill/regalloc.scm 395 */
																obj_t BgL_classz00_4343;

																BgL_classz00_4343 =
																	BGl_rtl_regzf2razf2zzsaw_regsetz00;
																if (BGL_OBJECTP(BgL_arg2145z00_2606))
																	{	/* SawMill/regalloc.scm 395 */
																		BgL_objectz00_bglt BgL_arg1801z00_4345;

																		BgL_arg1801z00_4345 =
																			(BgL_objectz00_bglt)
																			(BgL_arg2145z00_2606);
																		if (BGL_CONDEXPAND_ISA_ARCH64())
																			{	/* SawMill/regalloc.scm 395 */
																				long BgL_idxz00_4351;

																				BgL_idxz00_4351 =
																					BGL_OBJECT_INHERITANCE_NUM
																					(BgL_arg1801z00_4345);
																				BgL_test3052z00_7036 =
																					(VECTOR_REF
																					(BGl_za2inheritancesza2z00zz__objectz00,
																						(BgL_idxz00_4351 + 2L)) ==
																					BgL_classz00_4343);
																			}
																		else
																			{	/* SawMill/regalloc.scm 395 */
																				bool_t BgL_res2764z00_4373;

																				{	/* SawMill/regalloc.scm 395 */
																					obj_t BgL_oclassz00_4359;

																					{	/* SawMill/regalloc.scm 395 */
																						long BgL_arg1808z00_4365;

																						{	/* SawMill/regalloc.scm 395 */
																							long BgL_arg1809z00_4366;

																							BgL_arg1809z00_4366 =
																								BGL_OBJECT_CLASS_NUM
																								(BgL_arg1801z00_4345);
																							BgL_arg1808z00_4365 =
																								(BgL_arg1809z00_4366 -
																								OBJECT_TYPE);
																						}
																						BgL_oclassz00_4359 =
																							VECTOR_REF
																							(BGl_za2classesza2z00zz__objectz00,
																							BgL_arg1808z00_4365);
																					}
																					{	/* SawMill/regalloc.scm 395 */
																						bool_t BgL__ortest_1115z00_4360;

																						BgL__ortest_1115z00_4360 =
																							(BgL_classz00_4343 ==
																							BgL_oclassz00_4359);
																						if (BgL__ortest_1115z00_4360)
																							{	/* SawMill/regalloc.scm 395 */
																								BgL_res2764z00_4373 =
																									BgL__ortest_1115z00_4360;
																							}
																						else
																							{	/* SawMill/regalloc.scm 395 */
																								long BgL_odepthz00_4361;

																								BgL_odepthz00_4361 =
																									BGL_CLASS_DEPTH
																									(BgL_oclassz00_4359);
																								if ((2L < BgL_odepthz00_4361))
																									{	/* SawMill/regalloc.scm 395 */
																										obj_t BgL_arg1797z00_4363;

																										BgL_arg1797z00_4363 =
																											BGL_CLASS_ANCESTORS_REF
																											(BgL_oclassz00_4359, 2L);
																										BgL_res2764z00_4373 =
																											(BgL_arg1797z00_4363 ==
																											BgL_classz00_4343);
																									}
																								else
																									{	/* SawMill/regalloc.scm 395 */
																										BgL_res2764z00_4373 =
																											((bool_t) 0);
																									}
																							}
																					}
																				}
																				BgL_test3052z00_7036 =
																					BgL_res2764z00_4373;
																			}
																	}
																else
																	{	/* SawMill/regalloc.scm 395 */
																		BgL_test3052z00_7036 = ((bool_t) 0);
																	}
															}
														}
														if (BgL_test3052z00_7036)
															{	/* SawMill/regalloc.scm 396 */
																bool_t BgL_test3057z00_7059;

																{	/* SawMill/regalloc.scm 396 */
																	obj_t BgL_arg2143z00_2604;
																	obj_t BgL_arg2144z00_2605;

																	BgL_arg2143z00_2604 =
																		(((BgL_rtl_insz00_bglt) COBJECT(
																				((BgL_rtl_insz00_bglt)
																					((BgL_rtl_insz00_bglt)
																						BgL_iz00_2597))))->BgL_destz00);
																	{
																		BgL_rtl_inszf2razf2_bglt BgL_auxz00_7063;

																		{
																			obj_t BgL_auxz00_7064;

																			{	/* SawMill/regalloc.scm 396 */
																				BgL_objectz00_bglt BgL_tmpz00_7065;

																				BgL_tmpz00_7065 =
																					((BgL_objectz00_bglt)
																					((BgL_rtl_insz00_bglt)
																						BgL_iz00_2597));
																				BgL_auxz00_7064 =
																					BGL_OBJECT_WIDENING(BgL_tmpz00_7065);
																			}
																			BgL_auxz00_7063 =
																				((BgL_rtl_inszf2razf2_bglt)
																				BgL_auxz00_7064);
																		}
																		BgL_arg2144z00_2605 =
																			(((BgL_rtl_inszf2razf2_bglt)
																				COBJECT(BgL_auxz00_7063))->BgL_outz00);
																	}
																	BgL_test3057z00_7059 =
																		BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
																		((BgL_rtl_regz00_bglt) BgL_arg2143z00_2604),
																		((BgL_regsetz00_bglt) BgL_arg2144z00_2605));
																}
																if (BgL_test3057z00_7059)
																	{	/* SawMill/regalloc.scm 396 */
																		BFALSE;
																	}
																else
																	{	/* SawMill/regalloc.scm 396 */
																		BgL_nz00_2586 = (BgL_nz00_2586 + 1L);
																		((((BgL_rtl_insz00_bglt) COBJECT(
																						((BgL_rtl_insz00_bglt)
																							((BgL_rtl_insz00_bglt)
																								BgL_iz00_2597))))->
																				BgL_destz00) =
																			((obj_t) BFALSE), BUNSPEC);
																	}
															}
														else
															{	/* SawMill/regalloc.scm 395 */
																BFALSE;
															}
													}
												}
												{
													obj_t BgL_l1649z00_7078;

													BgL_l1649z00_7078 = CDR(BgL_l1649z00_2594);
													BgL_l1649z00_2594 = BgL_l1649z00_7078;
													goto BgL_zc3z04anonymousza32136ze3z87_2595;
												}
											}
										else
											{	/* SawMill/regalloc.scm 399 */
												((bool_t) 1);
											}
									}
								}
							}
							{
								obj_t BgL_l1652z00_7080;

								BgL_l1652z00_7080 = CDR(BgL_l1652z00_2588);
								BgL_l1652z00_2588 = BgL_l1652z00_7080;
								goto BgL_zc3z04anonymousza32134ze3z87_2589;
							}
						}
					else
						{	/* SawMill/regalloc.scm 392 */
							((bool_t) 1);
						}
				}
				{	/* SawMill/regalloc.scm 401 */
					obj_t BgL_list2149z00_2611;

					{	/* SawMill/regalloc.scm 401 */
						obj_t BgL_arg2150z00_2612;

						BgL_arg2150z00_2612 =
							MAKE_YOUNG_PAIR(BGl_string2806z00zzsaw_registerzd2allocationzd2,
							BNIL);
						BgL_list2149z00_2611 =
							MAKE_YOUNG_PAIR(BINT(BgL_nz00_2586), BgL_arg2150z00_2612);
					}
					return BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list2149z00_2611);
				}
			}
		}

	}



/* register-coloring */
	obj_t BGl_registerzd2coloringzd2zzsaw_registerzd2allocationzd2(obj_t
		BgL_pregsz00_89, obj_t BgL_hregsz00_90, obj_t BgL_cregsz00_91)
	{
		{	/* SawMill/regalloc.scm 406 */
			{	/* SawMill/regalloc.scm 408 */
				obj_t BgL_g1656z00_2613;

				{	/* SawMill/regalloc.scm 411 */
					obj_t BgL_list2155z00_2623;

					{	/* SawMill/regalloc.scm 411 */
						obj_t BgL_arg2156z00_2624;

						{	/* SawMill/regalloc.scm 411 */
							obj_t BgL_arg2157z00_2625;

							BgL_arg2157z00_2625 = MAKE_YOUNG_PAIR(BgL_cregsz00_91, BNIL);
							BgL_arg2156z00_2624 =
								MAKE_YOUNG_PAIR(BgL_hregsz00_90, BgL_arg2157z00_2625);
						}
						BgL_list2155z00_2623 =
							MAKE_YOUNG_PAIR(BgL_pregsz00_89, BgL_arg2156z00_2624);
					}
					BgL_g1656z00_2613 =
						BGl_appendz00zz__r4_pairs_and_lists_6_3z00(BgL_list2155z00_2623);
				}
				{
					obj_t BgL_l1654z00_2615;

					BgL_l1654z00_2615 = BgL_g1656z00_2613;
				BgL_zc3z04anonymousza32151ze3z87_2616:
					if (PAIRP(BgL_l1654z00_2615))
						{	/* SawMill/regalloc.scm 411 */
							{	/* SawMill/regalloc.scm 409 */
								obj_t BgL_rz00_2618;

								BgL_rz00_2618 = CAR(BgL_l1654z00_2615);
								{
									obj_t BgL_auxz00_7101;
									BgL_rtl_regzf2razf2_bglt BgL_auxz00_7094;

									{	/* SawMill/regalloc.scm 410 */
										obj_t BgL_arg2153z00_2620;

										{
											BgL_rtl_regzf2razf2_bglt BgL_auxz00_7102;

											{
												obj_t BgL_auxz00_7103;

												{	/* SawMill/regalloc.scm 410 */
													BgL_objectz00_bglt BgL_tmpz00_7104;

													BgL_tmpz00_7104 =
														((BgL_objectz00_bglt)
														((BgL_rtl_regz00_bglt) BgL_rz00_2618));
													BgL_auxz00_7103 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_7104);
												}
												BgL_auxz00_7102 =
													((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7103);
											}
											BgL_arg2153z00_2620 =
												(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7102))->
												BgL_interferez00);
										}
										BgL_auxz00_7101 =
											((obj_t)
											BGl_duplicatezd2regsetzd2zzsaw_regsetz00(
												((BgL_regsetz00_bglt) BgL_arg2153z00_2620)));
									}
									{
										obj_t BgL_auxz00_7095;

										{	/* SawMill/regalloc.scm 410 */
											BgL_objectz00_bglt BgL_tmpz00_7096;

											BgL_tmpz00_7096 =
												((BgL_objectz00_bglt)
												((BgL_rtl_regz00_bglt) BgL_rz00_2618));
											BgL_auxz00_7095 = BGL_OBJECT_WIDENING(BgL_tmpz00_7096);
										}
										BgL_auxz00_7094 =
											((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7095);
									}
									((((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7094))->
											BgL_interfere2z00) = ((obj_t) BgL_auxz00_7101), BUNSPEC);
								}
							}
							{
								obj_t BgL_l1654z00_7114;

								BgL_l1654z00_7114 = CDR(BgL_l1654z00_2615);
								BgL_l1654z00_2615 = BgL_l1654z00_7114;
								goto BgL_zc3z04anonymousza32151ze3z87_2616;
							}
						}
					else
						{	/* SawMill/regalloc.scm 411 */
							((bool_t) 1);
						}
				}
			}
			{	/* SawMill/regalloc.scm 413 */
				obj_t BgL_cregsz00_2626;

				{	/* SawMill/regalloc.scm 413 */
					obj_t BgL_hook1661z00_2630;

					BgL_hook1661z00_2630 = MAKE_YOUNG_PAIR(BFALSE, BNIL);
					{
						obj_t BgL_l1658z00_2632;
						obj_t BgL_h1659z00_2633;

						BgL_l1658z00_2632 = BgL_cregsz00_91;
						BgL_h1659z00_2633 = BgL_hook1661z00_2630;
					BgL_zc3z04anonymousza32161ze3z87_2634:
						if (NULLP(BgL_l1658z00_2632))
							{	/* SawMill/regalloc.scm 413 */
								BgL_cregsz00_2626 = CDR(BgL_hook1661z00_2630);
							}
						else
							{	/* SawMill/regalloc.scm 413 */
								bool_t BgL_test3060z00_7120;

								{	/* SawMill/regalloc.scm 413 */
									obj_t BgL_arg2168z00_2644;

									{	/* SawMill/regalloc.scm 413 */
										BgL_rtl_regz00_bglt BgL_oz00_4384;

										BgL_oz00_4384 =
											((BgL_rtl_regz00_bglt) CAR(((obj_t) BgL_l1658z00_2632)));
										{
											BgL_rtl_regzf2razf2_bglt BgL_auxz00_7124;

											{
												obj_t BgL_auxz00_7125;

												{	/* SawMill/regalloc.scm 413 */
													BgL_objectz00_bglt BgL_tmpz00_7126;

													BgL_tmpz00_7126 =
														((BgL_objectz00_bglt) BgL_oz00_4384);
													BgL_auxz00_7125 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_7126);
												}
												BgL_auxz00_7124 =
													((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7125);
											}
											BgL_arg2168z00_2644 =
												(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7124))->
												BgL_colorz00);
										}
									}
									BgL_test3060z00_7120 = (BgL_arg2168z00_2644 == BFALSE);
								}
								if (BgL_test3060z00_7120)
									{	/* SawMill/regalloc.scm 413 */
										obj_t BgL_nh1660z00_2639;

										{	/* SawMill/regalloc.scm 413 */
											obj_t BgL_arg2166z00_2641;

											BgL_arg2166z00_2641 = CAR(((obj_t) BgL_l1658z00_2632));
											BgL_nh1660z00_2639 =
												MAKE_YOUNG_PAIR(BgL_arg2166z00_2641, BNIL);
										}
										SET_CDR(BgL_h1659z00_2633, BgL_nh1660z00_2639);
										{	/* SawMill/regalloc.scm 413 */
											obj_t BgL_arg2165z00_2640;

											BgL_arg2165z00_2640 = CDR(((obj_t) BgL_l1658z00_2632));
											{
												obj_t BgL_h1659z00_7139;
												obj_t BgL_l1658z00_7138;

												BgL_l1658z00_7138 = BgL_arg2165z00_2640;
												BgL_h1659z00_7139 = BgL_nh1660z00_2639;
												BgL_h1659z00_2633 = BgL_h1659z00_7139;
												BgL_l1658z00_2632 = BgL_l1658z00_7138;
												goto BgL_zc3z04anonymousza32161ze3z87_2634;
											}
										}
									}
								else
									{	/* SawMill/regalloc.scm 413 */
										obj_t BgL_arg2167z00_2642;

										BgL_arg2167z00_2642 = CDR(((obj_t) BgL_l1658z00_2632));
										{
											obj_t BgL_l1658z00_7142;

											BgL_l1658z00_7142 = BgL_arg2167z00_2642;
											BgL_l1658z00_2632 = BgL_l1658z00_7142;
											goto BgL_zc3z04anonymousza32161ze3z87_2634;
										}
									}
							}
					}
				}
				if (PAIRP(BgL_cregsz00_2626))
					{	/* SawMill/regalloc.scm 414 */
						if (NULLP(BgL_hregsz00_90))
							{	/* SawMill/regalloc.scm 416 */
								return
									BGl_registerzd2stackzd2coloringz00zzsaw_registerzd2allocationzd2
									(BgL_pregsz00_89, BgL_cregsz00_2626);
							}
						else
							{	/* SawMill/regalloc.scm 416 */
								return
									BGl_registerzd2hardwarezd2coloringz00zzsaw_registerzd2allocationzd2
									(BgL_pregsz00_89, BgL_hregsz00_90, BgL_cregsz00_2626);
							}
					}
				else
					{	/* SawMill/regalloc.scm 414 */
						return BFALSE;
					}
			}
		}

	}



/* register-stack-coloring */
	obj_t BGl_registerzd2stackzd2coloringz00zzsaw_registerzd2allocationzd2(obj_t
		BgL_pregsz00_92, obj_t BgL_cregsz00_93)
	{
		{	/* SawMill/regalloc.scm 424 */
			{
				obj_t BgL_registersz00_2735;
				obj_t BgL_siza7eza7_2736;

				{	/* SawMill/regalloc.scm 451 */
					obj_t BgL_colorsz00_2647;

					BgL_colorsz00_2647 =
						make_vector(bgl_list_length
						(BGl_appendzd221011zd2zzsaw_registerzd2allocationzd2
							(BgL_pregsz00_92, BgL_cregsz00_93)), BFALSE);
					{
						obj_t BgL_interferez00_2707;
						long BgL_maxz00_2708;

						{
							long BgL_minz00_2690;
							obj_t BgL_stackz00_2691;

							{	/* SawMill/regalloc.scm 474 */
								long BgL_nz00_2650;

								BgL_nz00_2650 = 0L;
								{
									obj_t BgL_l1671z00_2652;

									BgL_l1671z00_2652 = BgL_pregsz00_92;
								BgL_zc3z04anonymousza32169ze3z87_2653:
									if (PAIRP(BgL_l1671z00_2652))
										{	/* SawMill/regalloc.scm 475 */
											{	/* SawMill/regalloc.scm 476 */
												obj_t BgL_rz00_2655;

												BgL_rz00_2655 = CAR(BgL_l1671z00_2652);
												BGl_simplifyzd2regz12zc0zzsaw_registerzd2allocationzd2(
													((BgL_rtl_regz00_bglt) BgL_rz00_2655));
												{	/* SawMill/regalloc.scm 477 */
													obj_t BgL_vz00_4464;

													BgL_vz00_4464 = BINT(BgL_nz00_2650);
													{
														BgL_rtl_regzf2razf2_bglt BgL_auxz00_7158;

														{
															obj_t BgL_auxz00_7159;

															{	/* SawMill/regalloc.scm 477 */
																BgL_objectz00_bglt BgL_tmpz00_7160;

																BgL_tmpz00_7160 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_regz00_bglt) BgL_rz00_2655));
																BgL_auxz00_7159 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_7160);
															}
															BgL_auxz00_7158 =
																((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7159);
														}
														((((BgL_rtl_regzf2razf2_bglt)
																	COBJECT(BgL_auxz00_7158))->BgL_colorz00) =
															((obj_t) BgL_vz00_4464), BUNSPEC);
													}
												}
												BgL_nz00_2650 = (BgL_nz00_2650 + 1L);
											}
											{
												obj_t BgL_l1671z00_7167;

												BgL_l1671z00_7167 = CDR(BgL_l1671z00_2652);
												BgL_l1671z00_2652 = BgL_l1671z00_7167;
												goto BgL_zc3z04anonymousza32169ze3z87_2653;
											}
										}
									else
										{	/* SawMill/regalloc.scm 475 */
											((bool_t) 1);
										}
								}
							}
							{	/* SawMill/regalloc.scm 481 */
								long BgL_minz00_2658;
								obj_t BgL_sregsz00_2659;

								BgL_minz00_2658 = bgl_list_length(BgL_pregsz00_92);
								BgL_sregsz00_2659 =
									BGl_sortz00zz__r4_vectors_6_8z00(BgL_cregsz00_93,
									BGl_proc2822z00zzsaw_registerzd2allocationzd2);
								{
									obj_t BgL_regsz00_2662;
									obj_t BgL_stackz00_2663;
									obj_t BgL_siza7eza7_2664;

									BgL_regsz00_2662 = BgL_sregsz00_2659;
									BgL_stackz00_2663 = BNIL;
									BgL_siza7eza7_2664 = BINT(0L);
								BgL_zc3z04anonymousza32172ze3z87_2665:
									if (NULLP(BgL_regsz00_2662))
										{	/* SawMill/regalloc.scm 490 */
											long BgL_nz00_2667;

											BgL_minz00_2690 = BgL_minz00_2658;
											BgL_stackz00_2691 = BgL_stackz00_2663;
											{
												obj_t BgL_stackz00_2694;
												long BgL_maxz00_2695;

												BgL_stackz00_2694 = BgL_stackz00_2691;
												BgL_maxz00_2695 = BgL_minz00_2690;
											BgL_zc3z04anonymousza32188ze3z87_2696:
												if (PAIRP(BgL_stackz00_2694))
													{	/* SawMill/regalloc.scm 469 */
														BgL_rtl_regz00_bglt BgL_i1226z00_2698;

														BgL_i1226z00_2698 =
															((BgL_rtl_regz00_bglt) CAR(BgL_stackz00_2694));
														{
															obj_t BgL_auxz00_7183;
															BgL_rtl_regzf2razf2_bglt BgL_auxz00_7177;

															{	/* SawMill/regalloc.scm 470 */
																obj_t BgL_arg2190z00_2699;

																{
																	BgL_rtl_regzf2razf2_bglt BgL_auxz00_7184;

																	{
																		obj_t BgL_auxz00_7185;

																		{	/* SawMill/regalloc.scm 470 */
																			BgL_objectz00_bglt BgL_tmpz00_7186;

																			BgL_tmpz00_7186 =
																				((BgL_objectz00_bglt)
																				BgL_i1226z00_2698);
																			BgL_auxz00_7185 =
																				BGL_OBJECT_WIDENING(BgL_tmpz00_7186);
																		}
																		BgL_auxz00_7184 =
																			((BgL_rtl_regzf2razf2_bglt)
																			BgL_auxz00_7185);
																	}
																	BgL_arg2190z00_2699 =
																		(((BgL_rtl_regzf2razf2_bglt)
																			COBJECT(BgL_auxz00_7184))->
																		BgL_interferez00);
																}
																{	/* SawMill/regalloc.scm 470 */
																	long BgL_tmpz00_7191;

																	BgL_interferez00_2707 = BgL_arg2190z00_2699;
																	BgL_maxz00_2708 = BgL_maxz00_2695;
																	{	/* SawMill/regalloc.scm 453 */

																		BGl_vectorzd2fillz12zc0zz__r4_vectors_6_8z00
																			(BgL_colorsz00_2647, BFALSE, 0L,
																			VECTOR_LENGTH(BgL_colorsz00_2647));
																	}
																	{	/* SawMill/regalloc.scm 455 */
																		obj_t BgL_zc3z04anonymousza32198ze3z87_5501;

																		BgL_zc3z04anonymousza32198ze3z87_5501 =
																			MAKE_FX_PROCEDURE
																			(BGl_z62zc3z04anonymousza32198ze3ze5zzsaw_registerzd2allocationzd2,
																			(int) (1L), (int) (1L));
																		PROCEDURE_SET
																			(BgL_zc3z04anonymousza32198ze3z87_5501,
																			(int) (0L), BgL_colorsz00_2647);
																		BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
																			(BgL_zc3z04anonymousza32198ze3z87_5501,
																			((BgL_regsetz00_bglt)
																				BgL_interferez00_2707));
																	}
																	if (
																		(VECTOR_LENGTH(BgL_colorsz00_2647) ==
																			BgL_maxz00_2708))
																		{	/* SawMill/regalloc.scm 459 */
																			BgL_tmpz00_7191 = BgL_maxz00_2708;
																		}
																	else
																		{
																			long BgL_iz00_4448;

																			BgL_iz00_4448 = 0L;
																		BgL_loopz00_4447:
																			if (CBOOL(VECTOR_REF(BgL_colorsz00_2647,
																						BgL_iz00_4448)))
																				{
																					long BgL_iz00_7207;

																					BgL_iz00_7207 = (BgL_iz00_4448 + 1L);
																					BgL_iz00_4448 = BgL_iz00_7207;
																					goto BgL_loopz00_4447;
																				}
																			else
																				{	/* SawMill/regalloc.scm 462 */
																					BgL_tmpz00_7191 = BgL_iz00_4448;
																				}
																		}
																	BgL_auxz00_7183 = BINT(BgL_tmpz00_7191);
																}
															}
															{
																obj_t BgL_auxz00_7178;

																{	/* SawMill/regalloc.scm 470 */
																	BgL_objectz00_bglt BgL_tmpz00_7179;

																	BgL_tmpz00_7179 =
																		((BgL_objectz00_bglt) BgL_i1226z00_2698);
																	BgL_auxz00_7178 =
																		BGL_OBJECT_WIDENING(BgL_tmpz00_7179);
																}
																BgL_auxz00_7177 =
																	((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7178);
															}
															((((BgL_rtl_regzf2razf2_bglt)
																		COBJECT(BgL_auxz00_7177))->BgL_colorz00) =
																((obj_t) BgL_auxz00_7183), BUNSPEC);
														}
														{	/* SawMill/regalloc.scm 471 */
															obj_t BgL_arg2191z00_2700;
															long BgL_arg2192z00_2701;

															BgL_arg2191z00_2700 = CDR(BgL_stackz00_2694);
															{	/* SawMill/regalloc.scm 471 */
																bool_t BgL_test3068z00_7212;

																{	/* SawMill/regalloc.scm 471 */
																	obj_t BgL_arg2195z00_2704;

																	{
																		BgL_rtl_regzf2razf2_bglt BgL_auxz00_7213;

																		{
																			obj_t BgL_auxz00_7214;

																			{	/* SawMill/regalloc.scm 471 */
																				BgL_objectz00_bglt BgL_tmpz00_7215;

																				BgL_tmpz00_7215 =
																					((BgL_objectz00_bglt)
																					BgL_i1226z00_2698);
																				BgL_auxz00_7214 =
																					BGL_OBJECT_WIDENING(BgL_tmpz00_7215);
																			}
																			BgL_auxz00_7213 =
																				((BgL_rtl_regzf2razf2_bglt)
																				BgL_auxz00_7214);
																		}
																		BgL_arg2195z00_2704 =
																			(((BgL_rtl_regzf2razf2_bglt)
																				COBJECT(BgL_auxz00_7213))->
																			BgL_colorz00);
																	}
																	BgL_test3068z00_7212 =
																		(
																		(long) CINT(BgL_arg2195z00_2704) ==
																		BgL_maxz00_2695);
																}
																if (BgL_test3068z00_7212)
																	{	/* SawMill/regalloc.scm 471 */
																		BgL_arg2192z00_2701 =
																			(BgL_maxz00_2695 + 1L);
																	}
																else
																	{	/* SawMill/regalloc.scm 471 */
																		BgL_arg2192z00_2701 = BgL_maxz00_2695;
																	}
															}
															{
																long BgL_maxz00_7224;
																obj_t BgL_stackz00_7223;

																BgL_stackz00_7223 = BgL_arg2191z00_2700;
																BgL_maxz00_7224 = BgL_arg2192z00_2701;
																BgL_maxz00_2695 = BgL_maxz00_7224;
																BgL_stackz00_2694 = BgL_stackz00_7223;
																goto BgL_zc3z04anonymousza32188ze3z87_2696;
															}
														}
													}
												else
													{	/* SawMill/regalloc.scm 468 */
														BgL_nz00_2667 = BgL_maxz00_2695;
													}
											}
											{	/* SawMill/regalloc.scm 492 */
												obj_t BgL_arg2174z00_2668;

												{	/* SawMill/regalloc.scm 492 */
													long BgL_a1673z00_2675;

													BgL_a1673z00_2675 = bgl_list_length(BgL_pregsz00_92);
													{	/* SawMill/regalloc.scm 492 */
														long BgL_b1674z00_2676;

														BgL_b1674z00_2676 =
															bgl_list_length(BgL_cregsz00_93);
														{	/* SawMill/regalloc.scm 492 */

															{	/* SawMill/regalloc.scm 492 */
																obj_t BgL_za71za7_4482;
																obj_t BgL_za72za7_4483;

																BgL_za71za7_4482 = BINT(BgL_a1673z00_2675);
																BgL_za72za7_4483 = BINT(BgL_b1674z00_2676);
																{	/* SawMill/regalloc.scm 492 */
																	obj_t BgL_tmpz00_4484;

																	BgL_tmpz00_4484 = BINT(0L);
																	if (BGL_ADDFX_OV(BgL_za71za7_4482,
																			BgL_za72za7_4483, BgL_tmpz00_4484))
																		{	/* SawMill/regalloc.scm 492 */
																			BgL_arg2174z00_2668 =
																				bgl_bignum_add(bgl_long_to_bignum(
																					(long) CINT(BgL_za71za7_4482)),
																				bgl_long_to_bignum(
																					(long) CINT(BgL_za72za7_4483)));
																		}
																	else
																		{	/* SawMill/regalloc.scm 492 */
																			BgL_arg2174z00_2668 = BgL_tmpz00_4484;
																		}
																}
															}
														}
													}
												}
												{	/* SawMill/regalloc.scm 491 */
													obj_t BgL_list2175z00_2669;

													{	/* SawMill/regalloc.scm 491 */
														obj_t BgL_arg2176z00_2670;

														{	/* SawMill/regalloc.scm 491 */
															obj_t BgL_arg2177z00_2671;

															{	/* SawMill/regalloc.scm 491 */
																obj_t BgL_arg2178z00_2672;

																{	/* SawMill/regalloc.scm 491 */
																	obj_t BgL_arg2179z00_2673;

																	{	/* SawMill/regalloc.scm 491 */
																		obj_t BgL_arg2180z00_2674;

																		BgL_arg2180z00_2674 =
																			MAKE_YOUNG_PAIR
																			(BGl_string2823z00zzsaw_registerzd2allocationzd2,
																			BNIL);
																		BgL_arg2179z00_2673 =
																			MAKE_YOUNG_PAIR
																			(BGl_string2824z00zzsaw_registerzd2allocationzd2,
																			BgL_arg2180z00_2674);
																	}
																	BgL_arg2178z00_2672 =
																		MAKE_YOUNG_PAIR(BgL_arg2174z00_2668,
																		BgL_arg2179z00_2673);
																}
																BgL_arg2177z00_2671 =
																	MAKE_YOUNG_PAIR
																	(BGl_string2825z00zzsaw_registerzd2allocationzd2,
																	BgL_arg2178z00_2672);
															}
															BgL_arg2176z00_2670 =
																MAKE_YOUNG_PAIR(BINT(BgL_nz00_2667),
																BgL_arg2177z00_2671);
														}
														BgL_list2175z00_2669 =
															MAKE_YOUNG_PAIR
															(BGl_string2826z00zzsaw_registerzd2allocationzd2,
															BgL_arg2176z00_2670);
													}
													return
														BGl_verbosez00zztools_speekz00(BINT(3L),
														BgL_list2175z00_2669);
												}
											}
										}
									else
										{	/* SawMill/regalloc.scm 494 */
											obj_t BgL_regz00_2678;

											BgL_registersz00_2735 = BgL_regsz00_2662;
											BgL_siza7eza7_2736 = BgL_siza7eza7_2664;
											{	/* SawMill/regalloc.scm 426 */
												long BgL_g1224z00_2738;

												{	/* SawMill/regalloc.scm 428 */
													int BgL_arg2231z00_2775;

													{	/* SawMill/regalloc.scm 428 */
														BgL_rtl_regz00_bglt BgL_regz00_4391;

														BgL_regz00_4391 =
															((BgL_rtl_regz00_bglt)
															CAR(((obj_t) BgL_registersz00_2735)));
														{	/* SawMill/regalloc.scm 591 */
															obj_t BgL_arg2288z00_4392;

															{
																BgL_rtl_regzf2razf2_bglt BgL_auxz00_7249;

																{
																	obj_t BgL_auxz00_7250;

																	{	/* SawMill/regalloc.scm 591 */
																		BgL_objectz00_bglt BgL_tmpz00_7251;

																		BgL_tmpz00_7251 =
																			((BgL_objectz00_bglt) BgL_regz00_4391);
																		BgL_auxz00_7250 =
																			BGL_OBJECT_WIDENING(BgL_tmpz00_7251);
																	}
																	BgL_auxz00_7249 =
																		((BgL_rtl_regzf2razf2_bglt)
																		BgL_auxz00_7250);
																}
																BgL_arg2288z00_4392 =
																	(((BgL_rtl_regzf2razf2_bglt)
																		COBJECT(BgL_auxz00_7249))->
																	BgL_interfere2z00);
															}
															BgL_arg2231z00_2775 =
																(((BgL_regsetz00_bglt) COBJECT(
																		((BgL_regsetz00_bglt)
																			BgL_arg2288z00_4392)))->BgL_lengthz00);
													}}
													BgL_g1224z00_2738 =
														((long) (BgL_arg2231z00_2775) + 1L);
												}
												{
													obj_t BgL_regsz00_2740;
													obj_t BgL_minz00_2741;
													long BgL_mvalz00_2742;
													obj_t BgL_prevz00_2743;

													BgL_regsz00_2740 = BgL_registersz00_2735;
													BgL_minz00_2741 = BFALSE;
													BgL_mvalz00_2742 = BgL_g1224z00_2738;
													BgL_prevz00_2743 = BFALSE;
												BgL_zc3z04anonymousza32212ze3z87_2744:
													if (NULLP(BgL_regsz00_2740))
														{	/* SawMill/regalloc.scm 432 */
															int BgL_val1_1663z00_2747;
															obj_t BgL_val2_1664z00_2748;

															{	/* SawMill/regalloc.scm 591 */
																obj_t BgL_arg2288z00_4398;

																{
																	BgL_rtl_regzf2razf2_bglt BgL_auxz00_7262;

																	{
																		obj_t BgL_auxz00_7263;

																		{	/* SawMill/regalloc.scm 591 */
																			BgL_objectz00_bglt BgL_tmpz00_7264;

																			BgL_tmpz00_7264 =
																				((BgL_objectz00_bglt)
																				((BgL_rtl_regz00_bglt)
																					BgL_minz00_2741));
																			BgL_auxz00_7263 =
																				BGL_OBJECT_WIDENING(BgL_tmpz00_7264);
																		}
																		BgL_auxz00_7262 =
																			((BgL_rtl_regzf2razf2_bglt)
																			BgL_auxz00_7263);
																	}
																	BgL_arg2288z00_4398 =
																		(((BgL_rtl_regzf2razf2_bglt)
																			COBJECT(BgL_auxz00_7262))->
																		BgL_interfere2z00);
																}
																BgL_val1_1663z00_2747 =
																	(((BgL_regsetz00_bglt) COBJECT(
																			((BgL_regsetz00_bglt)
																				BgL_arg2288z00_4398)))->BgL_lengthz00);
															}
															BgL_val2_1664z00_2748 =
																bgl_remq_bang(BgL_minz00_2741,
																BgL_registersz00_2735);
															{	/* SawMill/regalloc.scm 432 */
																int BgL_tmpz00_7273;

																BgL_tmpz00_7273 = (int) (3L);
																BGL_MVALUES_NUMBER_SET(BgL_tmpz00_7273);
															}
															{	/* SawMill/regalloc.scm 432 */
																obj_t BgL_auxz00_7278;
																int BgL_tmpz00_7276;

																BgL_auxz00_7278 = BINT(BgL_val1_1663z00_2747);
																BgL_tmpz00_7276 = (int) (1L);
																BGL_MVALUES_VAL_SET(BgL_tmpz00_7276,
																	BgL_auxz00_7278);
															}
															{	/* SawMill/regalloc.scm 432 */
																int BgL_tmpz00_7281;

																BgL_tmpz00_7281 = (int) (2L);
																BGL_MVALUES_VAL_SET(BgL_tmpz00_7281,
																	BgL_val2_1664z00_2748);
															}
															BgL_regz00_2678 = BgL_minz00_2741;
														}
													else
														{	/* SawMill/regalloc.scm 433 */
															bool_t BgL_test3071z00_7284;

															{	/* SawMill/regalloc.scm 433 */
																int BgL_arg2229z00_2772;

																{	/* SawMill/regalloc.scm 433 */
																	BgL_rtl_regz00_bglt BgL_regz00_4403;

																	BgL_regz00_4403 =
																		((BgL_rtl_regz00_bglt)
																		CAR(((obj_t) BgL_regsz00_2740)));
																	{	/* SawMill/regalloc.scm 591 */
																		obj_t BgL_arg2288z00_4404;

																		{
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_7288;

																			{
																				obj_t BgL_auxz00_7289;

																				{	/* SawMill/regalloc.scm 591 */
																					BgL_objectz00_bglt BgL_tmpz00_7290;

																					BgL_tmpz00_7290 =
																						((BgL_objectz00_bglt)
																						BgL_regz00_4403);
																					BgL_auxz00_7289 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_7290);
																				}
																				BgL_auxz00_7288 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_7289);
																			}
																			BgL_arg2288z00_4404 =
																				(((BgL_rtl_regzf2razf2_bglt)
																					COBJECT(BgL_auxz00_7288))->
																				BgL_interfere2z00);
																		}
																		BgL_arg2229z00_2772 =
																			(((BgL_regsetz00_bglt) COBJECT(
																					((BgL_regsetz00_bglt)
																						BgL_arg2288z00_4404)))->
																			BgL_lengthz00);
																}}
																BgL_test3071z00_7284 =
																	(
																	(long) (BgL_arg2229z00_2772) <
																	(long) CINT(BgL_siza7eza7_2736));
															}
															if (BgL_test3071z00_7284)
																{	/* SawMill/regalloc.scm 434 */
																	obj_t BgL_regz00_2752;

																	BgL_regz00_2752 =
																		CAR(((obj_t) BgL_regsz00_2740));
																	{	/* SawMill/regalloc.scm 434 */
																		int BgL_sza7za7_2753;

																		{	/* SawMill/regalloc.scm 591 */
																			obj_t BgL_arg2288z00_4412;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_7302;
																				{
																					obj_t BgL_auxz00_7303;

																					{	/* SawMill/regalloc.scm 591 */
																						BgL_objectz00_bglt BgL_tmpz00_7304;

																						BgL_tmpz00_7304 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_regz00_2752));
																						BgL_auxz00_7303 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_7304);
																					}
																					BgL_auxz00_7302 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_7303);
																				}
																				BgL_arg2288z00_4412 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_7302))->
																					BgL_interfere2z00);
																			}
																			BgL_sza7za7_2753 =
																				(((BgL_regsetz00_bglt) COBJECT(
																						((BgL_regsetz00_bglt)
																							BgL_arg2288z00_4412)))->
																				BgL_lengthz00);
																		}
																		{	/* SawMill/regalloc.scm 435 */

																			if (PAIRP(BgL_prevz00_2743))
																				{	/* SawMill/regalloc.scm 436 */
																					{	/* SawMill/regalloc.scm 438 */
																						obj_t BgL_arg2218z00_2755;

																						BgL_arg2218z00_2755 =
																							CDR(((obj_t) BgL_regsz00_2740));
																						SET_CDR(BgL_prevz00_2743,
																							BgL_arg2218z00_2755);
																					}
																					{	/* SawMill/regalloc.scm 439 */
																						int BgL_tmpz00_7317;

																						BgL_tmpz00_7317 = (int) (3L);
																						BGL_MVALUES_NUMBER_SET
																							(BgL_tmpz00_7317);
																					}
																					{	/* SawMill/regalloc.scm 439 */
																						obj_t BgL_auxz00_7322;
																						int BgL_tmpz00_7320;

																						BgL_auxz00_7322 =
																							BINT(BgL_sza7za7_2753);
																						BgL_tmpz00_7320 = (int) (1L);
																						BGL_MVALUES_VAL_SET(BgL_tmpz00_7320,
																							BgL_auxz00_7322);
																					}
																					{	/* SawMill/regalloc.scm 439 */
																						int BgL_tmpz00_7325;

																						BgL_tmpz00_7325 = (int) (2L);
																						BGL_MVALUES_VAL_SET(BgL_tmpz00_7325,
																							BgL_registersz00_2735);
																					}
																					BgL_regz00_2678 = BgL_regz00_2752;
																				}
																			else
																				{	/* SawMill/regalloc.scm 440 */
																					obj_t BgL_val2_1670z00_2761;

																					BgL_val2_1670z00_2761 =
																						CDR(((obj_t) BgL_regsz00_2740));
																					{	/* SawMill/regalloc.scm 440 */
																						int BgL_tmpz00_7330;

																						BgL_tmpz00_7330 = (int) (3L);
																						BGL_MVALUES_NUMBER_SET
																							(BgL_tmpz00_7330);
																					}
																					{	/* SawMill/regalloc.scm 440 */
																						obj_t BgL_auxz00_7335;
																						int BgL_tmpz00_7333;

																						BgL_auxz00_7335 =
																							BINT(BgL_sza7za7_2753);
																						BgL_tmpz00_7333 = (int) (1L);
																						BGL_MVALUES_VAL_SET(BgL_tmpz00_7333,
																							BgL_auxz00_7335);
																					}
																					{	/* SawMill/regalloc.scm 440 */
																						int BgL_tmpz00_7338;

																						BgL_tmpz00_7338 = (int) (2L);
																						BGL_MVALUES_VAL_SET(BgL_tmpz00_7338,
																							BgL_val2_1670z00_2761);
																					}
																					BgL_regz00_2678 = BgL_regz00_2752;
																}}}}
															else
																{	/* SawMill/regalloc.scm 441 */
																	bool_t BgL_test3073z00_7341;

																	{	/* SawMill/regalloc.scm 441 */
																		int BgL_arg2227z00_2770;

																		{	/* SawMill/regalloc.scm 441 */
																			BgL_rtl_regz00_bglt BgL_regz00_4420;

																			BgL_regz00_4420 =
																				((BgL_rtl_regz00_bglt)
																				CAR(((obj_t) BgL_regsz00_2740)));
																			{	/* SawMill/regalloc.scm 591 */
																				obj_t BgL_arg2288z00_4421;

																				{
																					BgL_rtl_regzf2razf2_bglt
																						BgL_auxz00_7345;
																					{
																						obj_t BgL_auxz00_7346;

																						{	/* SawMill/regalloc.scm 591 */
																							BgL_objectz00_bglt
																								BgL_tmpz00_7347;
																							BgL_tmpz00_7347 =
																								((BgL_objectz00_bglt)
																								BgL_regz00_4420);
																							BgL_auxz00_7346 =
																								BGL_OBJECT_WIDENING
																								(BgL_tmpz00_7347);
																						}
																						BgL_auxz00_7345 =
																							((BgL_rtl_regzf2razf2_bglt)
																							BgL_auxz00_7346);
																					}
																					BgL_arg2288z00_4421 =
																						(((BgL_rtl_regzf2razf2_bglt)
																							COBJECT(BgL_auxz00_7345))->
																						BgL_interfere2z00);
																				}
																				BgL_arg2227z00_2770 =
																					(((BgL_regsetz00_bglt) COBJECT(
																							((BgL_regsetz00_bglt)
																								BgL_arg2288z00_4421)))->
																					BgL_lengthz00);
																		}}
																		BgL_test3073z00_7341 =
																			(
																			(long) (BgL_arg2227z00_2770) <
																			BgL_mvalz00_2742);
																	}
																	if (BgL_test3073z00_7341)
																		{	/* SawMill/regalloc.scm 442 */
																			obj_t BgL_arg2222z00_2765;
																			obj_t BgL_arg2223z00_2766;
																			int BgL_arg2224z00_2767;

																			BgL_arg2222z00_2765 =
																				CDR(((obj_t) BgL_regsz00_2740));
																			BgL_arg2223z00_2766 =
																				CAR(((obj_t) BgL_regsz00_2740));
																			{	/* SawMill/regalloc.scm 444 */
																				BgL_rtl_regz00_bglt BgL_regz00_4430;

																				BgL_regz00_4430 =
																					((BgL_rtl_regz00_bglt)
																					CAR(((obj_t) BgL_regsz00_2740)));
																				{	/* SawMill/regalloc.scm 591 */
																					obj_t BgL_arg2288z00_4431;

																					{
																						BgL_rtl_regzf2razf2_bglt
																							BgL_auxz00_7363;
																						{
																							obj_t BgL_auxz00_7364;

																							{	/* SawMill/regalloc.scm 591 */
																								BgL_objectz00_bglt
																									BgL_tmpz00_7365;
																								BgL_tmpz00_7365 =
																									((BgL_objectz00_bglt)
																									BgL_regz00_4430);
																								BgL_auxz00_7364 =
																									BGL_OBJECT_WIDENING
																									(BgL_tmpz00_7365);
																							}
																							BgL_auxz00_7363 =
																								((BgL_rtl_regzf2razf2_bglt)
																								BgL_auxz00_7364);
																						}
																						BgL_arg2288z00_4431 =
																							(((BgL_rtl_regzf2razf2_bglt)
																								COBJECT(BgL_auxz00_7363))->
																							BgL_interfere2z00);
																					}
																					BgL_arg2224z00_2767 =
																						(((BgL_regsetz00_bglt) COBJECT(
																								((BgL_regsetz00_bglt)
																									BgL_arg2288z00_4431)))->
																						BgL_lengthz00);
																			}}
																			{
																				obj_t BgL_prevz00_7376;
																				long BgL_mvalz00_7374;
																				obj_t BgL_minz00_7373;
																				obj_t BgL_regsz00_7372;

																				BgL_regsz00_7372 = BgL_arg2222z00_2765;
																				BgL_minz00_7373 = BgL_arg2223z00_2766;
																				BgL_mvalz00_7374 =
																					(long) (BgL_arg2224z00_2767);
																				BgL_prevz00_7376 = BgL_regsz00_2740;
																				BgL_prevz00_2743 = BgL_prevz00_7376;
																				BgL_mvalz00_2742 = BgL_mvalz00_7374;
																				BgL_minz00_2741 = BgL_minz00_7373;
																				BgL_regsz00_2740 = BgL_regsz00_7372;
																				goto
																					BgL_zc3z04anonymousza32212ze3z87_2744;
																			}
																		}
																	else
																		{	/* SawMill/regalloc.scm 447 */
																			obj_t BgL_arg2226z00_2769;

																			BgL_arg2226z00_2769 =
																				CDR(((obj_t) BgL_regsz00_2740));
																			{
																				obj_t BgL_prevz00_7380;
																				obj_t BgL_regsz00_7379;

																				BgL_regsz00_7379 = BgL_arg2226z00_2769;
																				BgL_prevz00_7380 = BgL_regsz00_2740;
																				BgL_prevz00_2743 = BgL_prevz00_7380;
																				BgL_regsz00_2740 = BgL_regsz00_7379;
																				goto
																					BgL_zc3z04anonymousza32212ze3z87_2744;
																			}
																		}
																}
														}
												}
											}
											{	/* SawMill/regalloc.scm 495 */
												obj_t BgL_nsiza7eza7_2679;
												obj_t BgL_regsz00_2680;

												{	/* SawMill/regalloc.scm 496 */
													obj_t BgL_tmpz00_4492;

													{	/* SawMill/regalloc.scm 496 */
														int BgL_tmpz00_7381;

														BgL_tmpz00_7381 = (int) (1L);
														BgL_tmpz00_4492 = BGL_MVALUES_VAL(BgL_tmpz00_7381);
													}
													{	/* SawMill/regalloc.scm 496 */
														int BgL_tmpz00_7384;

														BgL_tmpz00_7384 = (int) (1L);
														BGL_MVALUES_VAL_SET(BgL_tmpz00_7384, BUNSPEC);
													}
													BgL_nsiza7eza7_2679 = BgL_tmpz00_4492;
												}
												{	/* SawMill/regalloc.scm 496 */
													obj_t BgL_tmpz00_4493;

													{	/* SawMill/regalloc.scm 496 */
														int BgL_tmpz00_7387;

														BgL_tmpz00_7387 = (int) (2L);
														BgL_tmpz00_4493 = BGL_MVALUES_VAL(BgL_tmpz00_7387);
													}
													{	/* SawMill/regalloc.scm 496 */
														int BgL_tmpz00_7390;

														BgL_tmpz00_7390 = (int) (2L);
														BGL_MVALUES_VAL_SET(BgL_tmpz00_7390, BUNSPEC);
													}
													BgL_regsz00_2680 = BgL_tmpz00_4493;
												}
												BGl_simplifyzd2regz12zc0zzsaw_registerzd2allocationzd2(
													((BgL_rtl_regz00_bglt) BgL_regz00_2678));
												{	/* SawMill/regalloc.scm 497 */
													obj_t BgL_arg2182z00_2681;

													BgL_arg2182z00_2681 =
														MAKE_YOUNG_PAIR(BgL_regz00_2678, BgL_stackz00_2663);
													{
														obj_t BgL_siza7eza7_7398;
														obj_t BgL_stackz00_7397;
														obj_t BgL_regsz00_7396;

														BgL_regsz00_7396 = BgL_regsz00_2680;
														BgL_stackz00_7397 = BgL_arg2182z00_2681;
														BgL_siza7eza7_7398 = BgL_nsiza7eza7_2679;
														BgL_siza7eza7_2664 = BgL_siza7eza7_7398;
														BgL_stackz00_2663 = BgL_stackz00_7397;
														BgL_regsz00_2662 = BgL_regsz00_7396;
														goto BgL_zc3z04anonymousza32172ze3z87_2665;
													}
												}
											}
										}
								}
							}
						}
					}
				}
			}
		}

	}



/* &<@anonymous:2184> */
	obj_t BGl_z62zc3z04anonymousza32184ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5502, obj_t BgL_r1z00_5503, obj_t BgL_r2z00_5504)
	{
		{	/* SawMill/regalloc.scm 483 */
			{	/* SawMill/regalloc.scm 484 */
				bool_t BgL_tmpz00_7400;

				{	/* SawMill/regalloc.scm 484 */
					int BgL_arg2185z00_5665;
					int BgL_arg2186z00_5666;

					{	/* SawMill/regalloc.scm 591 */
						obj_t BgL_arg2288z00_5667;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7401;

							{
								obj_t BgL_auxz00_7402;

								{	/* SawMill/regalloc.scm 591 */
									BgL_objectz00_bglt BgL_tmpz00_7403;

									BgL_tmpz00_7403 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_r1z00_5503));
									BgL_auxz00_7402 = BGL_OBJECT_WIDENING(BgL_tmpz00_7403);
								}
								BgL_auxz00_7401 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7402);
							}
							BgL_arg2288z00_5667 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7401))->
								BgL_interfere2z00);
						}
						BgL_arg2185z00_5665 =
							(((BgL_regsetz00_bglt) COBJECT(
									((BgL_regsetz00_bglt) BgL_arg2288z00_5667)))->BgL_lengthz00);
					}
					{	/* SawMill/regalloc.scm 591 */
						obj_t BgL_arg2288z00_5668;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7411;

							{
								obj_t BgL_auxz00_7412;

								{	/* SawMill/regalloc.scm 591 */
									BgL_objectz00_bglt BgL_tmpz00_7413;

									BgL_tmpz00_7413 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_r2z00_5504));
									BgL_auxz00_7412 = BGL_OBJECT_WIDENING(BgL_tmpz00_7413);
								}
								BgL_auxz00_7411 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7412);
							}
							BgL_arg2288z00_5668 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7411))->
								BgL_interfere2z00);
						}
						BgL_arg2186z00_5666 =
							(((BgL_regsetz00_bglt) COBJECT(
									((BgL_regsetz00_bglt) BgL_arg2288z00_5668)))->BgL_lengthz00);
					}
					BgL_tmpz00_7400 =
						((long) (BgL_arg2185z00_5665) < (long) (BgL_arg2186z00_5666));
				}
				return BBOOL(BgL_tmpz00_7400);
			}
		}

	}



/* &<@anonymous:2198> */
	obj_t BGl_z62zc3z04anonymousza32198ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5505, obj_t BgL_rz00_5507)
	{
		{	/* SawMill/regalloc.scm 454 */
			{	/* SawMill/regalloc.scm 455 */
				obj_t BgL_colorsz00_5506;

				BgL_colorsz00_5506 =
					((obj_t) PROCEDURE_REF(BgL_envz00_5505, (int) (0L)));
				{	/* SawMill/regalloc.scm 456 */
					bool_t BgL_test3074z00_7428;

					{	/* SawMill/regalloc.scm 456 */
						obj_t BgL_arg2202z00_5669;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7429;

							{
								obj_t BgL_auxz00_7430;

								{	/* SawMill/regalloc.scm 456 */
									BgL_objectz00_bglt BgL_tmpz00_7431;

									BgL_tmpz00_7431 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_rz00_5507));
									BgL_auxz00_7430 = BGL_OBJECT_WIDENING(BgL_tmpz00_7431);
								}
								BgL_auxz00_7429 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7430);
							}
							BgL_arg2202z00_5669 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7429))->
								BgL_colorz00);
						}
						BgL_test3074z00_7428 = INTEGERP(BgL_arg2202z00_5669);
					}
					if (BgL_test3074z00_7428)
						{	/* SawMill/regalloc.scm 457 */
							obj_t BgL_arg2201z00_5670;

							{
								BgL_rtl_regzf2razf2_bglt BgL_auxz00_7438;

								{
									obj_t BgL_auxz00_7439;

									{	/* SawMill/regalloc.scm 457 */
										BgL_objectz00_bglt BgL_tmpz00_7440;

										BgL_tmpz00_7440 =
											((BgL_objectz00_bglt)
											((BgL_rtl_regz00_bglt) BgL_rz00_5507));
										BgL_auxz00_7439 = BGL_OBJECT_WIDENING(BgL_tmpz00_7440);
									}
									BgL_auxz00_7438 =
										((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7439);
								}
								BgL_arg2201z00_5670 =
									(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7438))->
									BgL_colorz00);
							}
							{	/* SawMill/regalloc.scm 457 */
								long BgL_kz00_5671;

								BgL_kz00_5671 = (long) CINT(BgL_arg2201z00_5670);
								return
									VECTOR_SET(
									((obj_t) BgL_colorsz00_5506), BgL_kz00_5671, BTRUE);
							}
						}
					else
						{	/* SawMill/regalloc.scm 456 */
							return BFALSE;
						}
				}
			}
		}

	}



/* register-hardware-coloring */
	obj_t
		BGl_registerzd2hardwarezd2coloringz00zzsaw_registerzd2allocationzd2(obj_t
		BgL_pregsz00_94, obj_t BgL_hregsz00_95, obj_t BgL_cregsz00_96)
	{
		{	/* SawMill/regalloc.scm 502 */
			{
				obj_t BgL_stackz00_2881;
				obj_t BgL_rz00_2847;
				obj_t BgL_regsz00_2825;
				obj_t BgL_regsz00_2811;
				int BgL_kz00_2812;

				{	/* SawMill/regalloc.scm 542 */
					long BgL_kz00_2782;

					BgL_kz00_2782 = bgl_list_length(BgL_hregsz00_95);
					{
						obj_t BgL_regsz00_2785;
						obj_t BgL_stackz00_2786;
						long BgL_sz00_2787;
						long BgL_nz00_2788;

						BgL_regsz00_2785 = BgL_cregsz00_96;
						BgL_stackz00_2786 = BNIL;
						BgL_sz00_2787 = 0L;
						BgL_nz00_2788 = 0L;
					BgL_zc3z04anonymousza32233ze3z87_2789:
						if (NULLP(BgL_regsz00_2785))
							{	/* SawMill/regalloc.scm 565 */
								BgL_stackz00_2881 = BgL_stackz00_2786;
								{
									obj_t BgL_l1685z00_2884;

									BgL_l1685z00_2884 = BgL_stackz00_2881;
								BgL_zc3z04anonymousza32284ze3z87_2885:
									if (PAIRP(BgL_l1685z00_2884))
										{	/* SawMill/regalloc.scm 541 */
											BgL_rz00_2847 = CAR(BgL_l1685z00_2884);
											{	/* SawMill/regalloc.scm 526 */
												obj_t BgL_nrz00_2850;

												{
													obj_t BgL_l1682z00_2858;

													BgL_l1682z00_2858 = BgL_hregsz00_95;
												BgL_zc3z04anonymousza32272ze3z87_2859:
													if (NULLP(BgL_l1682z00_2858))
														{	/* SawMill/regalloc.scm 526 */
															BgL_nrz00_2850 = BFALSE;
														}
													else
														{	/* SawMill/regalloc.scm 527 */
															obj_t BgL__ortest_1684z00_2861;

															{	/* SawMill/regalloc.scm 527 */
																obj_t BgL_regz00_2863;

																BgL_regz00_2863 =
																	CAR(((obj_t) BgL_l1682z00_2858));
																{	/* SawMill/regalloc.scm 527 */
																	bool_t BgL_test3078z00_7458;

																	{	/* SawMill/regalloc.scm 527 */
																		obj_t BgL_arg2282z00_2879;

																		{
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_7459;

																			{
																				obj_t BgL_auxz00_7460;

																				{	/* SawMill/regalloc.scm 527 */
																					BgL_objectz00_bglt BgL_tmpz00_7461;

																					BgL_tmpz00_7461 =
																						((BgL_objectz00_bglt)
																						((BgL_rtl_regz00_bglt)
																							BgL_rz00_2847));
																					BgL_auxz00_7460 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_7461);
																				}
																				BgL_auxz00_7459 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_7460);
																			}
																			BgL_arg2282z00_2879 =
																				(((BgL_rtl_regzf2razf2_bglt)
																					COBJECT(BgL_auxz00_7459))->
																				BgL_interferez00);
																		}
																		BgL_test3078z00_7458 =
																			BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
																			((BgL_rtl_regz00_bglt) BgL_regz00_2863),
																			((BgL_regsetz00_bglt)
																				BgL_arg2282z00_2879));
																	}
																	if (BgL_test3078z00_7458)
																		{	/* SawMill/regalloc.scm 527 */
																			BgL__ortest_1684z00_2861 = BFALSE;
																		}
																	else
																		{	/* SawMill/regalloc.scm 528 */
																			bool_t BgL_test3079z00_7470;

																			{	/* SawMill/regalloc.scm 528 */
																				obj_t BgL_g1680z00_2868;

																				{	/* SawMill/regalloc.scm 530 */
																					obj_t BgL_arg2281z00_2878;

																					{
																						BgL_rtl_regzf2razf2_bglt
																							BgL_auxz00_7471;
																						{
																							obj_t BgL_auxz00_7472;

																							{	/* SawMill/regalloc.scm 530 */
																								BgL_objectz00_bglt
																									BgL_tmpz00_7473;
																								BgL_tmpz00_7473 =
																									((BgL_objectz00_bglt) (
																										(BgL_rtl_regz00_bglt)
																										BgL_rz00_2847));
																								BgL_auxz00_7472 =
																									BGL_OBJECT_WIDENING
																									(BgL_tmpz00_7473);
																							}
																							BgL_auxz00_7471 =
																								((BgL_rtl_regzf2razf2_bglt)
																								BgL_auxz00_7472);
																						}
																						BgL_arg2281z00_2878 =
																							(((BgL_rtl_regzf2razf2_bglt)
																								COBJECT(BgL_auxz00_7471))->
																							BgL_interferez00);
																					}
																					BgL_g1680z00_2868 =
																						BGl_regsetzd2ze3listz31zzsaw_regsetz00
																						(((BgL_regsetz00_bglt)
																							BgL_arg2281z00_2878));
																				}
																				{
																					obj_t BgL_l1678z00_2870;

																					BgL_l1678z00_2870 = BgL_g1680z00_2868;
																				BgL_zc3z04anonymousza32276ze3z87_2871:
																					if (NULLP(BgL_l1678z00_2870))
																						{	/* SawMill/regalloc.scm 530 */
																							BgL_test3079z00_7470 =
																								((bool_t) 0);
																						}
																					else
																						{	/* SawMill/regalloc.scm 529 */
																							bool_t BgL__ortest_1681z00_2873;

																							{	/* SawMill/regalloc.scm 529 */
																								obj_t BgL_arg2280z00_2876;

																								{	/* SawMill/regalloc.scm 529 */
																									BgL_rtl_regz00_bglt
																										BgL_oz00_4524;
																									BgL_oz00_4524 =
																										((BgL_rtl_regz00_bglt)
																										CAR(((obj_t)
																												BgL_l1678z00_2870)));
																									{
																										BgL_rtl_regzf2razf2_bglt
																											BgL_auxz00_7486;
																										{
																											obj_t BgL_auxz00_7487;

																											{	/* SawMill/regalloc.scm 529 */
																												BgL_objectz00_bglt
																													BgL_tmpz00_7488;
																												BgL_tmpz00_7488 =
																													((BgL_objectz00_bglt)
																													BgL_oz00_4524);
																												BgL_auxz00_7487 =
																													BGL_OBJECT_WIDENING
																													(BgL_tmpz00_7488);
																											}
																											BgL_auxz00_7486 =
																												(
																												(BgL_rtl_regzf2razf2_bglt)
																												BgL_auxz00_7487);
																										}
																										BgL_arg2280z00_2876 =
																											(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7486))->BgL_colorz00);
																									}
																								}
																								BgL__ortest_1681z00_2873 =
																									(BgL_arg2280z00_2876 ==
																									BgL_regz00_2863);
																							}
																							if (BgL__ortest_1681z00_2873)
																								{	/* SawMill/regalloc.scm 530 */
																									BgL_test3079z00_7470 =
																										BgL__ortest_1681z00_2873;
																								}
																							else
																								{	/* SawMill/regalloc.scm 530 */
																									obj_t BgL_arg2279z00_2874;

																									BgL_arg2279z00_2874 =
																										CDR(
																										((obj_t)
																											BgL_l1678z00_2870));
																									{
																										obj_t BgL_l1678z00_7497;

																										BgL_l1678z00_7497 =
																											BgL_arg2279z00_2874;
																										BgL_l1678z00_2870 =
																											BgL_l1678z00_7497;
																										goto
																											BgL_zc3z04anonymousza32276ze3z87_2871;
																									}
																								}
																						}
																				}
																			}
																			if (BgL_test3079z00_7470)
																				{	/* SawMill/regalloc.scm 528 */
																					BgL__ortest_1684z00_2861 = BFALSE;
																				}
																			else
																				{	/* SawMill/regalloc.scm 531 */
																					bool_t BgL_test3082z00_7498;

																					{	/* SawMill/regalloc.scm 533 */
																						obj_t BgL_arg2275z00_2867;

																						{
																							BgL_rtl_regzf2razf2_bglt
																								BgL_auxz00_7499;
																							{
																								obj_t BgL_auxz00_7500;

																								{	/* SawMill/regalloc.scm 533 */
																									BgL_objectz00_bglt
																										BgL_tmpz00_7501;
																									BgL_tmpz00_7501 =
																										((BgL_objectz00_bglt) (
																											(BgL_rtl_regz00_bglt)
																											BgL_regz00_2863));
																									BgL_auxz00_7500 =
																										BGL_OBJECT_WIDENING
																										(BgL_tmpz00_7501);
																								}
																								BgL_auxz00_7499 =
																									((BgL_rtl_regzf2razf2_bglt)
																									BgL_auxz00_7500);
																							}
																							BgL_arg2275z00_2867 =
																								(((BgL_rtl_regzf2razf2_bglt)
																									COBJECT(BgL_auxz00_7499))->
																								BgL_interfere2z00);
																						}
																						BgL_test3082z00_7498 =
																							BGl_regsetzd2memberzf3z21zzsaw_regsetz00
																							(((BgL_rtl_regz00_bglt)
																								BgL_rz00_2847),
																							((BgL_regsetz00_bglt)
																								BgL_arg2275z00_2867));
																					}
																					if (BgL_test3082z00_7498)
																						{	/* SawMill/regalloc.scm 531 */
																							BgL__ortest_1684z00_2861 = BFALSE;
																						}
																					else
																						{	/* SawMill/regalloc.scm 531 */
																							BgL__ortest_1684z00_2861 =
																								BgL_regz00_2863;
																						}
																				}
																		}
																}
															}
															if (CBOOL(BgL__ortest_1684z00_2861))
																{	/* SawMill/regalloc.scm 526 */
																	BgL_nrz00_2850 = BgL__ortest_1684z00_2861;
																}
															else
																{	/* SawMill/regalloc.scm 526 */
																	obj_t BgL_arg2274z00_2862;

																	BgL_arg2274z00_2862 =
																		CDR(((obj_t) BgL_l1682z00_2858));
																	{
																		obj_t BgL_l1682z00_7514;

																		BgL_l1682z00_7514 = BgL_arg2274z00_2862;
																		BgL_l1682z00_2858 = BgL_l1682z00_7514;
																		goto BgL_zc3z04anonymousza32272ze3z87_2859;
																	}
																}
														}
												}
												{	/* SawMill/regalloc.scm 536 */
													obj_t BgL_arg2269z00_2852;

													{
														BgL_rtl_regzf2razf2_bglt BgL_auxz00_7515;

														{
															obj_t BgL_auxz00_7516;

															{	/* SawMill/regalloc.scm 538 */
																BgL_objectz00_bglt BgL_tmpz00_7517;

																BgL_tmpz00_7517 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_regz00_bglt) BgL_rz00_2847));
																BgL_auxz00_7516 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_7517);
															}
															BgL_auxz00_7515 =
																((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7516);
														}
														BgL_arg2269z00_2852 =
															(((BgL_rtl_regzf2razf2_bglt)
																COBJECT(BgL_auxz00_7515))->BgL_interferez00);
													}
													{	/* SawMill/regalloc.scm 537 */
														obj_t BgL_zc3z04anonymousza32270ze3z87_5508;

														BgL_zc3z04anonymousza32270ze3z87_5508 =
															MAKE_FX_PROCEDURE
															(BGl_z62zc3z04anonymousza32270ze3ze5zzsaw_registerzd2allocationzd2,
															(int) (1L), (int) (1L));
														PROCEDURE_SET(BgL_zc3z04anonymousza32270ze3z87_5508,
															(int) (0L), BgL_nrz00_2850);
														BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
															(BgL_zc3z04anonymousza32270ze3z87_5508,
															((BgL_regsetz00_bglt) BgL_arg2269z00_2852));
												}}
												{
													BgL_rtl_regzf2razf2_bglt BgL_auxz00_7530;

													{
														obj_t BgL_auxz00_7531;

														{	/* SawMill/regalloc.scm 539 */
															BgL_objectz00_bglt BgL_tmpz00_7532;

															BgL_tmpz00_7532 =
																((BgL_objectz00_bglt)
																((BgL_rtl_regz00_bglt) BgL_rz00_2847));
															BgL_auxz00_7531 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_7532);
														}
														BgL_auxz00_7530 =
															((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7531);
													}
													((((BgL_rtl_regzf2razf2_bglt)
																COBJECT(BgL_auxz00_7530))->BgL_colorz00) =
														((obj_t) BgL_nrz00_2850), BUNSPEC);
											}}
											{
												obj_t BgL_l1685z00_7539;

												BgL_l1685z00_7539 = CDR(BgL_l1685z00_2884);
												BgL_l1685z00_2884 = BgL_l1685z00_7539;
												goto BgL_zc3z04anonymousza32284ze3z87_2885;
											}
										}
									else
										{	/* SawMill/regalloc.scm 541 */
											((bool_t) 1);
										}
								}
								{	/* SawMill/regalloc.scm 570 */
									long BgL_arg2235z00_2791;

									BgL_arg2235z00_2791 = bgl_list_length(BgL_cregsz00_96);
									{	/* SawMill/regalloc.scm 568 */
										obj_t BgL_list2236z00_2792;

										{	/* SawMill/regalloc.scm 568 */
											obj_t BgL_arg2237z00_2793;

											{	/* SawMill/regalloc.scm 568 */
												obj_t BgL_arg2238z00_2794;

												{	/* SawMill/regalloc.scm 568 */
													obj_t BgL_arg2239z00_2795;

													{	/* SawMill/regalloc.scm 568 */
														obj_t BgL_arg2240z00_2796;

														{	/* SawMill/regalloc.scm 568 */
															obj_t BgL_arg2241z00_2797;

															{	/* SawMill/regalloc.scm 568 */
																obj_t BgL_arg2242z00_2798;

																{	/* SawMill/regalloc.scm 568 */
																	obj_t BgL_arg2243z00_2799;

																	{	/* SawMill/regalloc.scm 568 */
																		obj_t BgL_arg2244z00_2800;

																		{	/* SawMill/regalloc.scm 568 */
																			obj_t BgL_arg2245z00_2801;

																			BgL_arg2245z00_2801 =
																				MAKE_YOUNG_PAIR
																				(BGl_string2806z00zzsaw_registerzd2allocationzd2,
																				BNIL);
																			BgL_arg2244z00_2800 =
																				MAKE_YOUNG_PAIR
																				(BGl_string2827z00zzsaw_registerzd2allocationzd2,
																				BgL_arg2245z00_2801);
																		}
																		BgL_arg2243z00_2799 =
																			MAKE_YOUNG_PAIR(BINT(BgL_sz00_2787),
																			BgL_arg2244z00_2800);
																	}
																	BgL_arg2242z00_2798 =
																		MAKE_YOUNG_PAIR
																		(BGl_string2828z00zzsaw_registerzd2allocationzd2,
																		BgL_arg2243z00_2799);
																}
																BgL_arg2241z00_2797 =
																	MAKE_YOUNG_PAIR(BINT(BgL_nz00_2788),
																	BgL_arg2242z00_2798);
															}
															BgL_arg2240z00_2796 =
																MAKE_YOUNG_PAIR
																(BGl_string2829z00zzsaw_registerzd2allocationzd2,
																BgL_arg2241z00_2797);
														}
														BgL_arg2239z00_2795 =
															MAKE_YOUNG_PAIR(BINT(BgL_arg2235z00_2791),
															BgL_arg2240z00_2796);
													}
													BgL_arg2238z00_2794 =
														MAKE_YOUNG_PAIR
														(BGl_string2830z00zzsaw_registerzd2allocationzd2,
														BgL_arg2239z00_2795);
												}
												BgL_arg2237z00_2793 =
													MAKE_YOUNG_PAIR(BINT(BgL_kz00_2782),
													BgL_arg2238z00_2794);
											}
											BgL_list2236z00_2792 =
												MAKE_YOUNG_PAIR
												(BGl_string2831z00zzsaw_registerzd2allocationzd2,
												BgL_arg2237z00_2793);
										}
										return
											BGl_verbosez00zztools_speekz00(BINT(3L),
											BgL_list2236z00_2792);
									}
								}
							}
						else
							{	/* SawMill/regalloc.scm 573 */
								obj_t BgL_srz00_2802;

								BgL_regsz00_2811 = BgL_regsz00_2785;
								BgL_kz00_2812 = (int) (BgL_kz00_2782);
								{
									obj_t BgL_l1675z00_2815;

									BgL_l1675z00_2815 = BgL_regsz00_2811;
								BgL_zc3z04anonymousza32252ze3z87_2816:
									if (NULLP(BgL_l1675z00_2815))
										{	/* SawMill/regalloc.scm 504 */
											BgL_srz00_2802 = BFALSE;
										}
									else
										{	/* SawMill/regalloc.scm 505 */
											obj_t BgL__ortest_1677z00_2818;

											{	/* SawMill/regalloc.scm 505 */
												obj_t BgL_rz00_2820;

												BgL_rz00_2820 = CAR(((obj_t) BgL_l1675z00_2815));
												{	/* SawMill/regalloc.scm 505 */
													obj_t BgL__andtest_1228z00_2821;

													BgL__andtest_1228z00_2821 =
														(((BgL_rtl_regz00_bglt) COBJECT(
																((BgL_rtl_regz00_bglt) BgL_rz00_2820)))->
														BgL_hardwarez00);
													if (CBOOL(BgL__andtest_1228z00_2821))
														{	/* SawMill/regalloc.scm 505 */
															BgL__ortest_1677z00_2818 = BFALSE;
														}
													else
														{	/* SawMill/regalloc.scm 506 */
															bool_t BgL_test3086z00_7566;

															{	/* SawMill/regalloc.scm 506 */
																int BgL_arg2255z00_2823;

																{	/* SawMill/regalloc.scm 591 */
																	obj_t BgL_arg2288z00_4497;

																	{
																		BgL_rtl_regzf2razf2_bglt BgL_auxz00_7567;

																		{
																			obj_t BgL_auxz00_7568;

																			{	/* SawMill/regalloc.scm 591 */
																				BgL_objectz00_bglt BgL_tmpz00_7569;

																				BgL_tmpz00_7569 =
																					((BgL_objectz00_bglt)
																					((BgL_rtl_regz00_bglt)
																						BgL_rz00_2820));
																				BgL_auxz00_7568 =
																					BGL_OBJECT_WIDENING(BgL_tmpz00_7569);
																			}
																			BgL_auxz00_7567 =
																				((BgL_rtl_regzf2razf2_bglt)
																				BgL_auxz00_7568);
																		}
																		BgL_arg2288z00_4497 =
																			(((BgL_rtl_regzf2razf2_bglt)
																				COBJECT(BgL_auxz00_7567))->
																			BgL_interfere2z00);
																	}
																	BgL_arg2255z00_2823 =
																		(((BgL_regsetz00_bglt) COBJECT(
																				((BgL_regsetz00_bglt)
																					BgL_arg2288z00_4497)))->
																		BgL_lengthz00);
																}
																BgL_test3086z00_7566 =
																	(
																	(long) (BgL_arg2255z00_2823) <
																	(long) (BgL_kz00_2812));
															}
															if (BgL_test3086z00_7566)
																{	/* SawMill/regalloc.scm 506 */
																	BgL__ortest_1677z00_2818 = BgL_rz00_2820;
																}
															else
																{	/* SawMill/regalloc.scm 506 */
																	BgL__ortest_1677z00_2818 = BFALSE;
																}
														}
												}
											}
											if (CBOOL(BgL__ortest_1677z00_2818))
												{	/* SawMill/regalloc.scm 504 */
													BgL_srz00_2802 = BgL__ortest_1677z00_2818;
												}
											else
												{	/* SawMill/regalloc.scm 504 */
													obj_t BgL_arg2254z00_2819;

													BgL_arg2254z00_2819 =
														CDR(((obj_t) BgL_l1675z00_2815));
													{
														obj_t BgL_l1675z00_7584;

														BgL_l1675z00_7584 = BgL_arg2254z00_2819;
														BgL_l1675z00_2815 = BgL_l1675z00_7584;
														goto BgL_zc3z04anonymousza32252ze3z87_2816;
													}
												}
										}
								}
								if (CBOOL(BgL_srz00_2802))
									{	/* SawMill/regalloc.scm 574 */
										BGl_simplifyzd2regz12zc0zzsaw_registerzd2allocationzd2(
											((BgL_rtl_regz00_bglt) BgL_srz00_2802));
										{	/* SawMill/regalloc.scm 578 */
											obj_t BgL_arg2246z00_2803;
											obj_t BgL_arg2247z00_2804;
											long BgL_arg2248z00_2805;

											BgL_arg2246z00_2803 =
												bgl_remq(BgL_srz00_2802, BgL_regsz00_2785);
											BgL_arg2247z00_2804 =
												MAKE_YOUNG_PAIR(BgL_srz00_2802, BgL_stackz00_2786);
											BgL_arg2248z00_2805 = (1L + BgL_nz00_2788);
											{
												long BgL_nz00_7595;
												obj_t BgL_stackz00_7594;
												obj_t BgL_regsz00_7593;

												BgL_regsz00_7593 = BgL_arg2246z00_2803;
												BgL_stackz00_7594 = BgL_arg2247z00_2804;
												BgL_nz00_7595 = BgL_arg2248z00_2805;
												BgL_nz00_2788 = BgL_nz00_7595;
												BgL_stackz00_2786 = BgL_stackz00_7594;
												BgL_regsz00_2785 = BgL_regsz00_7593;
												goto BgL_zc3z04anonymousza32233ze3z87_2789;
											}
										}
									}
								else
									{	/* SawMill/regalloc.scm 580 */
										BgL_rtl_regz00_bglt BgL_rz00_2806;

										BgL_regsz00_2825 = BgL_regsz00_2785;
										{
											obj_t BgL_regz00_2840;

											{
												obj_t BgL_regsz00_2829;
												obj_t BgL_regz00_2830;
												double BgL_msz00_2831;

												{
													obj_t BgL_auxz00_7596;

													BgL_regsz00_2829 = BgL_regsz00_2825;
													BgL_regz00_2830 = BUNSPEC;
													BgL_msz00_2831 = ((double) 0.0);
												BgL_zc3z04anonymousza32257ze3z87_2832:
													if (NULLP(BgL_regsz00_2829))
														{	/* SawMill/regalloc.scm 517 */
															BgL_auxz00_7596 = BgL_regz00_2830;
														}
													else
														{	/* SawMill/regalloc.scm 519 */
															obj_t BgL_rz00_2834;

															BgL_rz00_2834 = CAR(((obj_t) BgL_regsz00_2829));
															{	/* SawMill/regalloc.scm 519 */
																double BgL_sz00_2835;

																BgL_regz00_2840 = BgL_rz00_2834;
																{	/* SawMill/regalloc.scm 512 */
																	double BgL_arg2263z00_2842;
																	double BgL_arg2264z00_2843;

																	{	/* SawMill/regalloc.scm 512 */
																		int BgL_arg2265z00_2844;

																		{
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_7601;

																			{
																				obj_t BgL_auxz00_7602;

																				{	/* SawMill/regalloc.scm 512 */
																					BgL_objectz00_bglt BgL_tmpz00_7603;

																					BgL_tmpz00_7603 =
																						((BgL_objectz00_bglt)
																						((BgL_rtl_regz00_bglt)
																							BgL_regz00_2840));
																					BgL_auxz00_7602 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_7603);
																				}
																				BgL_auxz00_7601 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_7602);
																			}
																			BgL_arg2265z00_2844 =
																				(((BgL_rtl_regzf2razf2_bglt)
																					COBJECT(BgL_auxz00_7601))->
																				BgL_occurrencesz00);
																		}
																		BgL_arg2263z00_2842 =
																			(double) ((long) (BgL_arg2265z00_2844));
																	}
																	{	/* SawMill/regalloc.scm 513 */
																		int BgL_arg2266z00_2845;

																		{	/* SawMill/regalloc.scm 591 */
																			obj_t BgL_arg2288z00_4508;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_7611;
																				{
																					obj_t BgL_auxz00_7612;

																					{	/* SawMill/regalloc.scm 591 */
																						BgL_objectz00_bglt BgL_tmpz00_7613;

																						BgL_tmpz00_7613 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_regz00_2840));
																						BgL_auxz00_7612 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_7613);
																					}
																					BgL_auxz00_7611 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_7612);
																				}
																				BgL_arg2288z00_4508 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_7611))->
																					BgL_interfere2z00);
																			}
																			BgL_arg2266z00_2845 =
																				(((BgL_regsetz00_bglt) COBJECT(
																						((BgL_regsetz00_bglt)
																							BgL_arg2288z00_4508)))->
																				BgL_lengthz00);
																		}
																		BgL_arg2264z00_2843 =
																			(double) ((long) (BgL_arg2266z00_2845));
																	}
																	BgL_sz00_2835 =
																		(BgL_arg2263z00_2842 / BgL_arg2264z00_2843);
																}
																{	/* SawMill/regalloc.scm 520 */

																	if ((BgL_sz00_2835 > BgL_msz00_2831))
																		{	/* SawMill/regalloc.scm 522 */
																			obj_t BgL_arg2260z00_2837;

																			BgL_arg2260z00_2837 =
																				CDR(((obj_t) BgL_regsz00_2829));
																			{
																				double BgL_msz00_7630;
																				obj_t BgL_regz00_7629;
																				obj_t BgL_regsz00_7628;

																				BgL_regsz00_7628 = BgL_arg2260z00_2837;
																				BgL_regz00_7629 = BgL_rz00_2834;
																				BgL_msz00_7630 = BgL_sz00_2835;
																				BgL_msz00_2831 = BgL_msz00_7630;
																				BgL_regz00_2830 = BgL_regz00_7629;
																				BgL_regsz00_2829 = BgL_regsz00_7628;
																				goto
																					BgL_zc3z04anonymousza32257ze3z87_2832;
																			}
																		}
																	else
																		{	/* SawMill/regalloc.scm 523 */
																			obj_t BgL_arg2261z00_2838;

																			BgL_arg2261z00_2838 =
																				CDR(((obj_t) BgL_regsz00_2829));
																			{
																				obj_t BgL_regsz00_7633;

																				BgL_regsz00_7633 = BgL_arg2261z00_2838;
																				BgL_regsz00_2829 = BgL_regsz00_7633;
																				goto
																					BgL_zc3z04anonymousza32257ze3z87_2832;
																			}
																		}
																}
															}
														}
													BgL_rz00_2806 =
														((BgL_rtl_regz00_bglt) BgL_auxz00_7596);
												}
											}
										}
										{
											BgL_rtl_regzf2razf2_bglt BgL_auxz00_7635;

											{
												obj_t BgL_auxz00_7636;

												{	/* SawMill/regalloc.scm 582 */
													BgL_objectz00_bglt BgL_tmpz00_7637;

													BgL_tmpz00_7637 =
														((BgL_objectz00_bglt) BgL_rz00_2806);
													BgL_auxz00_7636 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_7637);
												}
												BgL_auxz00_7635 =
													((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7636);
											}
											((((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7635))->
													BgL_colorz00) = ((obj_t) BUNSPEC), BUNSPEC);
										}
										{	/* SawMill/regalloc.scm 583 */
											obj_t BgL_arg2249z00_2808;
											long BgL_arg2250z00_2809;

											BgL_arg2249z00_2808 =
												bgl_remq(((obj_t) BgL_rz00_2806), BgL_regsz00_2785);
											BgL_arg2250z00_2809 = (1L + BgL_sz00_2787);
											{
												long BgL_sz00_7646;
												obj_t BgL_regsz00_7645;

												BgL_regsz00_7645 = BgL_arg2249z00_2808;
												BgL_sz00_7646 = BgL_arg2250z00_2809;
												BgL_sz00_2787 = BgL_sz00_7646;
												BgL_regsz00_2785 = BgL_regsz00_7645;
												goto BgL_zc3z04anonymousza32233ze3z87_2789;
											}
										}
									}
							}
					}
				}
			}
		}

	}



/* &<@anonymous:2270> */
	obj_t BGl_z62zc3z04anonymousza32270ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5509, obj_t BgL_riz00_5511)
	{
		{	/* SawMill/regalloc.scm 536 */
			{	/* SawMill/regalloc.scm 537 */
				obj_t BgL_nrz00_5510;

				BgL_nrz00_5510 = PROCEDURE_REF(BgL_envz00_5509, (int) (0L));
				{	/* SawMill/regalloc.scm 537 */
					bool_t BgL_tmpz00_7649;

					{	/* SawMill/regalloc.scm 537 */
						obj_t BgL_arg2271z00_5672;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7650;

							{
								obj_t BgL_auxz00_7651;

								{	/* SawMill/regalloc.scm 537 */
									BgL_objectz00_bglt BgL_tmpz00_7652;

									BgL_tmpz00_7652 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_nrz00_5510));
									BgL_auxz00_7651 = BGL_OBJECT_WIDENING(BgL_tmpz00_7652);
								}
								BgL_auxz00_7650 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7651);
							}
							BgL_arg2271z00_5672 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7650))->
								BgL_interfere2z00);
						}
						BgL_tmpz00_7649 =
							BGl_regsetzd2addz12zc0zzsaw_regsetz00(
							((BgL_regsetz00_bglt) BgL_arg2271z00_5672),
							((BgL_rtl_regz00_bglt) BgL_riz00_5511));
					}
					return BBOOL(BgL_tmpz00_7649);
				}
			}
		}

	}



/* simplify-reg! */
	obj_t
		BGl_simplifyzd2regz12zc0zzsaw_registerzd2allocationzd2(BgL_rtl_regz00_bglt
		BgL_rz00_98)
	{
		{	/* SawMill/regalloc.scm 599 */
			{	/* SawMill/regalloc.scm 601 */
				obj_t BgL_arg2290z00_2897;

				{
					BgL_rtl_regzf2razf2_bglt BgL_auxz00_7662;

					{
						obj_t BgL_auxz00_7663;

						{	/* SawMill/regalloc.scm 601 */
							BgL_objectz00_bglt BgL_tmpz00_7664;

							BgL_tmpz00_7664 = ((BgL_objectz00_bglt) BgL_rz00_98);
							BgL_auxz00_7663 = BGL_OBJECT_WIDENING(BgL_tmpz00_7664);
						}
						BgL_auxz00_7662 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7663);
					}
					BgL_arg2290z00_2897 =
						(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7662))->
						BgL_interfere2z00);
				}
				{	/* SawMill/regalloc.scm 602 */
					obj_t BgL_zc3z04anonymousza32291ze3z87_5512;

					BgL_zc3z04anonymousza32291ze3z87_5512 =
						MAKE_FX_PROCEDURE
						(BGl_z62zc3z04anonymousza32291ze3ze5zzsaw_registerzd2allocationzd2,
						(int) (1L), (int) (2L));
					PROCEDURE_SET(BgL_zc3z04anonymousza32291ze3z87_5512, (int) (0L),
						((obj_t) BgL_rz00_98));
					PROCEDURE_SET(BgL_zc3z04anonymousza32291ze3z87_5512, (int) (1L),
						((obj_t) BgL_rz00_98));
					return
						BGl_regsetzd2forzd2eachz00zzsaw_regsetz00
						(BgL_zc3z04anonymousza32291ze3z87_5512,
						((BgL_regsetz00_bglt) BgL_arg2290z00_2897));
				}
			}
		}

	}



/* &<@anonymous:2291> */
	obj_t BGl_z62zc3z04anonymousza32291ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5513, obj_t BgL_r2z00_5516)
	{
		{	/* SawMill/regalloc.scm 601 */
			{	/* SawMill/regalloc.scm 602 */
				BgL_rtl_regz00_bglt BgL_rz00_5514;
				BgL_rtl_regz00_bglt BgL_i1236z00_5515;

				BgL_rz00_5514 =
					((BgL_rtl_regz00_bglt) PROCEDURE_REF(BgL_envz00_5513, (int) (0L)));
				BgL_i1236z00_5515 =
					((BgL_rtl_regz00_bglt) PROCEDURE_REF(BgL_envz00_5513, (int) (1L)));
				{	/* SawMill/regalloc.scm 602 */
					bool_t BgL_tmpz00_7686;

					{	/* SawMill/regalloc.scm 602 */
						obj_t BgL_arg2292z00_5673;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7687;

							{
								obj_t BgL_auxz00_7688;

								{	/* SawMill/regalloc.scm 602 */
									BgL_objectz00_bglt BgL_tmpz00_7689;

									BgL_tmpz00_7689 =
										((BgL_objectz00_bglt)
										((BgL_rtl_regz00_bglt) BgL_r2z00_5516));
									BgL_auxz00_7688 = BGL_OBJECT_WIDENING(BgL_tmpz00_7689);
								}
								BgL_auxz00_7687 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7688);
							}
							BgL_arg2292z00_5673 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7687))->
								BgL_interfere2z00);
						}
						BGl_regsetzd2removez12zc0zzsaw_regsetz00(
							((BgL_regsetz00_bglt) BgL_arg2292z00_5673), BgL_rz00_5514);
					}
					{	/* SawMill/regalloc.scm 603 */
						obj_t BgL_arg2293z00_5674;

						{
							BgL_rtl_regzf2razf2_bglt BgL_auxz00_7697;

							{
								obj_t BgL_auxz00_7698;

								{	/* SawMill/regalloc.scm 603 */
									BgL_objectz00_bglt BgL_tmpz00_7699;

									BgL_tmpz00_7699 = ((BgL_objectz00_bglt) BgL_i1236z00_5515);
									BgL_auxz00_7698 = BGL_OBJECT_WIDENING(BgL_tmpz00_7699);
								}
								BgL_auxz00_7697 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7698);
							}
							BgL_arg2293z00_5674 =
								(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7697))->
								BgL_interfere2z00);
						}
						BgL_tmpz00_7686 =
							BGl_regsetzd2removez12zc0zzsaw_regsetz00(
							((BgL_regsetz00_bglt) BgL_arg2293z00_5674),
							((BgL_rtl_regz00_bglt) BgL_r2z00_5516));
					}
					return BBOOL(BgL_tmpz00_7686);
				}
			}
		}

	}



/* rtl-map-registers! */
	obj_t BGl_rtlzd2mapzd2registersz12z12zzsaw_registerzd2allocationzd2(obj_t
		BgL_pregsz00_99, obj_t BgL_cregsz00_100, obj_t BgL_blocksz00_101)
	{
		{	/* SawMill/regalloc.scm 614 */
			{	/* SawMill/regalloc.scm 615 */
				obj_t BgL_colorsz00_2903;

				BgL_colorsz00_2903 =
					make_vector(
					(bgl_list_length(BgL_pregsz00_99) +
						bgl_list_length(BgL_cregsz00_100)), BUNSPEC);
				{	/* SawMill/regalloc.scm 621 */
					struct bgl_cell BgL_box3091_5637z00;
					obj_t BgL_mappingz00_5637;

					BgL_mappingz00_5637 = MAKE_CELL_STACK(BNIL, BgL_box3091_5637z00);
					{	/* SawMill/regalloc.scm 616 */
						obj_t BgL_g1701z00_2907;

						BgL_g1701z00_2907 =
							BGl_appendzd221011zd2zzsaw_registerzd2allocationzd2
							(BgL_cregsz00_100, BgL_pregsz00_99);
						{
							obj_t BgL_l1699z00_2909;

							BgL_l1699z00_2909 = BgL_g1701z00_2907;
						BgL_zc3z04anonymousza32294ze3z87_2910:
							if (PAIRP(BgL_l1699z00_2909))
								{	/* SawMill/regalloc.scm 620 */
									{	/* SawMill/regalloc.scm 617 */
										obj_t BgL_rz00_2912;

										BgL_rz00_2912 = CAR(BgL_l1699z00_2909);
										{	/* SawMill/regalloc.scm 618 */
											bool_t BgL_test3093z00_7716;

											{	/* SawMill/regalloc.scm 618 */
												obj_t BgL_arg2299z00_2917;

												{
													BgL_rtl_regzf2razf2_bglt BgL_auxz00_7717;

													{
														obj_t BgL_auxz00_7718;

														{	/* SawMill/regalloc.scm 618 */
															BgL_objectz00_bglt BgL_tmpz00_7719;

															BgL_tmpz00_7719 =
																((BgL_objectz00_bglt)
																((BgL_rtl_regz00_bglt) BgL_rz00_2912));
															BgL_auxz00_7718 =
																BGL_OBJECT_WIDENING(BgL_tmpz00_7719);
														}
														BgL_auxz00_7717 =
															((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7718);
													}
													BgL_arg2299z00_2917 =
														(((BgL_rtl_regzf2razf2_bglt)
															COBJECT(BgL_auxz00_7717))->BgL_colorz00);
												}
												BgL_test3093z00_7716 = INTEGERP(BgL_arg2299z00_2917);
											}
											if (BgL_test3093z00_7716)
												{	/* SawMill/regalloc.scm 619 */
													obj_t BgL_arg2298z00_2916;

													{
														BgL_rtl_regzf2razf2_bglt BgL_auxz00_7726;

														{
															obj_t BgL_auxz00_7727;

															{	/* SawMill/regalloc.scm 619 */
																BgL_objectz00_bglt BgL_tmpz00_7728;

																BgL_tmpz00_7728 =
																	((BgL_objectz00_bglt)
																	((BgL_rtl_regz00_bglt) BgL_rz00_2912));
																BgL_auxz00_7727 =
																	BGL_OBJECT_WIDENING(BgL_tmpz00_7728);
															}
															BgL_auxz00_7726 =
																((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7727);
														}
														BgL_arg2298z00_2916 =
															(((BgL_rtl_regzf2razf2_bglt)
																COBJECT(BgL_auxz00_7726))->BgL_colorz00);
													}
													VECTOR_SET(BgL_colorsz00_2903,
														(long) CINT(BgL_arg2298z00_2916), BgL_rz00_2912);
												}
											else
												{	/* SawMill/regalloc.scm 618 */
													BFALSE;
												}
										}
									}
									{
										obj_t BgL_l1699z00_7736;

										BgL_l1699z00_7736 = CDR(BgL_l1699z00_2909);
										BgL_l1699z00_2909 = BgL_l1699z00_7736;
										goto BgL_zc3z04anonymousza32294ze3z87_2910;
									}
								}
							else
								{	/* SawMill/regalloc.scm 620 */
									((bool_t) 1);
								}
						}
					}
					{
						obj_t BgL_l1717z00_2921;

						BgL_l1717z00_2921 = BgL_blocksz00_101;
					BgL_zc3z04anonymousza32301ze3z87_2922:
						if (PAIRP(BgL_l1717z00_2921))
							{	/* SawMill/regalloc.scm 660 */
								{	/* SawMill/regalloc.scm 661 */
									obj_t BgL_bz00_2924;

									BgL_bz00_2924 = CAR(BgL_l1717z00_2921);
									{	/* SawMill/regalloc.scm 661 */
										obj_t BgL_g1716z00_2925;

										BgL_g1716z00_2925 =
											(((BgL_blockz00_bglt) COBJECT(
													((BgL_blockz00_bglt) BgL_bz00_2924)))->BgL_firstz00);
										{
											obj_t BgL_l1714z00_2927;

											BgL_l1714z00_2927 = BgL_g1716z00_2925;
										BgL_zc3z04anonymousza32303ze3z87_2928:
											if (PAIRP(BgL_l1714z00_2927))
												{	/* SawMill/regalloc.scm 667 */
													{	/* SawMill/regalloc.scm 662 */
														obj_t BgL_iz00_2930;

														BgL_iz00_2930 = CAR(BgL_l1714z00_2927);
														{	/* SawMill/regalloc.scm 663 */
															bool_t BgL_test3096z00_7746;

															{	/* SawMill/regalloc.scm 663 */
																obj_t BgL_arg2308z00_2935;

																BgL_arg2308z00_2935 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_2930))))->BgL_destz00);
																{	/* SawMill/regalloc.scm 663 */
																	obj_t BgL_classz00_4725;

																	BgL_classz00_4725 =
																		BGl_rtl_regzf2razf2zzsaw_regsetz00;
																	if (BGL_OBJECTP(BgL_arg2308z00_2935))
																		{	/* SawMill/regalloc.scm 663 */
																			BgL_objectz00_bglt BgL_arg1801z00_4727;

																			BgL_arg1801z00_4727 =
																				(BgL_objectz00_bglt)
																				(BgL_arg2308z00_2935);
																			if (BGL_CONDEXPAND_ISA_ARCH64())
																				{	/* SawMill/regalloc.scm 663 */
																					long BgL_idxz00_4733;

																					BgL_idxz00_4733 =
																						BGL_OBJECT_INHERITANCE_NUM
																						(BgL_arg1801z00_4727);
																					BgL_test3096z00_7746 =
																						(VECTOR_REF
																						(BGl_za2inheritancesza2z00zz__objectz00,
																							(BgL_idxz00_4733 + 2L)) ==
																						BgL_classz00_4725);
																				}
																			else
																				{	/* SawMill/regalloc.scm 663 */
																					bool_t BgL_res2770z00_4755;

																					{	/* SawMill/regalloc.scm 663 */
																						obj_t BgL_oclassz00_4741;

																						{	/* SawMill/regalloc.scm 663 */
																							long BgL_arg1808z00_4747;

																							{	/* SawMill/regalloc.scm 663 */
																								long BgL_arg1809z00_4748;

																								BgL_arg1809z00_4748 =
																									BGL_OBJECT_CLASS_NUM
																									(BgL_arg1801z00_4727);
																								BgL_arg1808z00_4747 =
																									(BgL_arg1809z00_4748 -
																									OBJECT_TYPE);
																							}
																							BgL_oclassz00_4741 =
																								VECTOR_REF
																								(BGl_za2classesza2z00zz__objectz00,
																								BgL_arg1808z00_4747);
																						}
																						{	/* SawMill/regalloc.scm 663 */
																							bool_t BgL__ortest_1115z00_4742;

																							BgL__ortest_1115z00_4742 =
																								(BgL_classz00_4725 ==
																								BgL_oclassz00_4741);
																							if (BgL__ortest_1115z00_4742)
																								{	/* SawMill/regalloc.scm 663 */
																									BgL_res2770z00_4755 =
																										BgL__ortest_1115z00_4742;
																								}
																							else
																								{	/* SawMill/regalloc.scm 663 */
																									long BgL_odepthz00_4743;

																									BgL_odepthz00_4743 =
																										BGL_CLASS_DEPTH
																										(BgL_oclassz00_4741);
																									if ((2L < BgL_odepthz00_4743))
																										{	/* SawMill/regalloc.scm 663 */
																											obj_t BgL_arg1797z00_4745;

																											BgL_arg1797z00_4745 =
																												BGL_CLASS_ANCESTORS_REF
																												(BgL_oclassz00_4741,
																												2L);
																											BgL_res2770z00_4755 =
																												(BgL_arg1797z00_4745 ==
																												BgL_classz00_4725);
																										}
																									else
																										{	/* SawMill/regalloc.scm 663 */
																											BgL_res2770z00_4755 =
																												((bool_t) 0);
																										}
																								}
																						}
																					}
																					BgL_test3096z00_7746 =
																						BgL_res2770z00_4755;
																				}
																		}
																	else
																		{	/* SawMill/regalloc.scm 663 */
																			BgL_test3096z00_7746 = ((bool_t) 0);
																		}
																}
															}
															if (BgL_test3096z00_7746)
																{
																	obj_t BgL_auxz00_7769;

																	{	/* SawMill/regalloc.scm 664 */
																		obj_t BgL_arg2307z00_2934;

																		BgL_arg2307z00_2934 =
																			(((BgL_rtl_insz00_bglt) COBJECT(
																					((BgL_rtl_insz00_bglt)
																						((BgL_rtl_insz00_bglt)
																							BgL_iz00_2930))))->BgL_destz00);
																		BgL_auxz00_7769 =
																			BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																			(BgL_colorsz00_2903, BgL_mappingz00_5637,
																			BgL_arg2307z00_2934);
																	}
																	((((BgL_rtl_insz00_bglt) COBJECT(
																					((BgL_rtl_insz00_bglt)
																						((BgL_rtl_insz00_bglt)
																							BgL_iz00_2930))))->BgL_destz00) =
																		((obj_t) BgL_auxz00_7769), BUNSPEC);
																}
															else
																{	/* SawMill/regalloc.scm 663 */
																	BFALSE;
																}
														}
														{
															obj_t BgL_auxz00_7777;

															{	/* SawMill/regalloc.scm 665 */
																obj_t BgL_l1702z00_2936;

																BgL_l1702z00_2936 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_2930))))->BgL_z52spillz52);
																if (NULLP(BgL_l1702z00_2936))
																	{	/* SawMill/regalloc.scm 665 */
																		BgL_auxz00_7777 = BNIL;
																	}
																else
																	{	/* SawMill/regalloc.scm 665 */
																		obj_t BgL_head1704z00_2938;

																		{	/* SawMill/regalloc.scm 665 */
																			obj_t BgL_arg2315z00_2950;

																			{	/* SawMill/regalloc.scm 665 */
																				obj_t BgL_arg2316z00_2951;

																				BgL_arg2316z00_2951 =
																					CAR(BgL_l1702z00_2936);
																				BgL_arg2315z00_2950 =
																					BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																					(BgL_colorsz00_2903,
																					BgL_mappingz00_5637,
																					BgL_arg2316z00_2951);
																			}
																			BgL_head1704z00_2938 =
																				MAKE_YOUNG_PAIR(BgL_arg2315z00_2950,
																				BNIL);
																		}
																		{	/* SawMill/regalloc.scm 665 */
																			obj_t BgL_g1707z00_2939;

																			BgL_g1707z00_2939 =
																				CDR(BgL_l1702z00_2936);
																			{
																				obj_t BgL_l1702z00_2941;
																				obj_t BgL_tail1705z00_2942;

																				BgL_l1702z00_2941 = BgL_g1707z00_2939;
																				BgL_tail1705z00_2942 =
																					BgL_head1704z00_2938;
																			BgL_zc3z04anonymousza32310ze3z87_2943:
																				if (NULLP(BgL_l1702z00_2941))
																					{	/* SawMill/regalloc.scm 665 */
																						BgL_auxz00_7777 =
																							BgL_head1704z00_2938;
																					}
																				else
																					{	/* SawMill/regalloc.scm 665 */
																						obj_t BgL_newtail1706z00_2945;

																						{	/* SawMill/regalloc.scm 665 */
																							obj_t BgL_arg2313z00_2947;

																							{	/* SawMill/regalloc.scm 665 */
																								obj_t BgL_arg2314z00_2948;

																								BgL_arg2314z00_2948 =
																									CAR(
																									((obj_t) BgL_l1702z00_2941));
																								BgL_arg2313z00_2947 =
																									BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																									(BgL_colorsz00_2903,
																									BgL_mappingz00_5637,
																									BgL_arg2314z00_2948);
																							}
																							BgL_newtail1706z00_2945 =
																								MAKE_YOUNG_PAIR
																								(BgL_arg2313z00_2947, BNIL);
																						}
																						SET_CDR(BgL_tail1705z00_2942,
																							BgL_newtail1706z00_2945);
																						{	/* SawMill/regalloc.scm 665 */
																							obj_t BgL_arg2312z00_2946;

																							BgL_arg2312z00_2946 =
																								CDR(
																								((obj_t) BgL_l1702z00_2941));
																							{
																								obj_t BgL_tail1705z00_7799;
																								obj_t BgL_l1702z00_7798;

																								BgL_l1702z00_7798 =
																									BgL_arg2312z00_2946;
																								BgL_tail1705z00_7799 =
																									BgL_newtail1706z00_2945;
																								BgL_tail1705z00_2942 =
																									BgL_tail1705z00_7799;
																								BgL_l1702z00_2941 =
																									BgL_l1702z00_7798;
																								goto
																									BgL_zc3z04anonymousza32310ze3z87_2943;
																							}
																						}
																					}
																			}
																		}
																	}
															}
															((((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_2930))))->BgL_z52spillz52) =
																((obj_t) BgL_auxz00_7777), BUNSPEC);
														}
														{
															obj_t BgL_auxz00_7801;

															{	/* SawMill/regalloc.scm 666 */
																obj_t BgL_l1708z00_2952;

																BgL_l1708z00_2952 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_2930))))->BgL_argsz00);
																if (NULLP(BgL_l1708z00_2952))
																	{	/* SawMill/regalloc.scm 666 */
																		BgL_auxz00_7801 = BNIL;
																	}
																else
																	{	/* SawMill/regalloc.scm 666 */
																		obj_t BgL_head1710z00_2954;

																		{	/* SawMill/regalloc.scm 666 */
																			obj_t BgL_arg2324z00_2966;

																			{	/* SawMill/regalloc.scm 666 */
																				obj_t BgL_arg2325z00_2967;

																				BgL_arg2325z00_2967 =
																					CAR(BgL_l1708z00_2952);
																				BgL_arg2324z00_2966 =
																					BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																					(BgL_colorsz00_2903,
																					BgL_mappingz00_5637,
																					BgL_arg2325z00_2967);
																			}
																			BgL_head1710z00_2954 =
																				MAKE_YOUNG_PAIR(BgL_arg2324z00_2966,
																				BNIL);
																		}
																		{	/* SawMill/regalloc.scm 666 */
																			obj_t BgL_g1713z00_2955;

																			BgL_g1713z00_2955 =
																				CDR(BgL_l1708z00_2952);
																			{
																				obj_t BgL_l1708z00_2957;
																				obj_t BgL_tail1711z00_2958;

																				BgL_l1708z00_2957 = BgL_g1713z00_2955;
																				BgL_tail1711z00_2958 =
																					BgL_head1710z00_2954;
																			BgL_zc3z04anonymousza32318ze3z87_2959:
																				if (NULLP(BgL_l1708z00_2957))
																					{	/* SawMill/regalloc.scm 666 */
																						BgL_auxz00_7801 =
																							BgL_head1710z00_2954;
																					}
																				else
																					{	/* SawMill/regalloc.scm 666 */
																						obj_t BgL_newtail1712z00_2961;

																						{	/* SawMill/regalloc.scm 666 */
																							obj_t BgL_arg2322z00_2963;

																							{	/* SawMill/regalloc.scm 666 */
																								obj_t BgL_arg2323z00_2964;

																								BgL_arg2323z00_2964 =
																									CAR(
																									((obj_t) BgL_l1708z00_2957));
																								BgL_arg2322z00_2963 =
																									BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																									(BgL_colorsz00_2903,
																									BgL_mappingz00_5637,
																									BgL_arg2323z00_2964);
																							}
																							BgL_newtail1712z00_2961 =
																								MAKE_YOUNG_PAIR
																								(BgL_arg2322z00_2963, BNIL);
																						}
																						SET_CDR(BgL_tail1711z00_2958,
																							BgL_newtail1712z00_2961);
																						{	/* SawMill/regalloc.scm 666 */
																							obj_t BgL_arg2320z00_2962;

																							BgL_arg2320z00_2962 =
																								CDR(
																								((obj_t) BgL_l1708z00_2957));
																							{
																								obj_t BgL_tail1711z00_7823;
																								obj_t BgL_l1708z00_7822;

																								BgL_l1708z00_7822 =
																									BgL_arg2320z00_2962;
																								BgL_tail1711z00_7823 =
																									BgL_newtail1712z00_2961;
																								BgL_tail1711z00_2958 =
																									BgL_tail1711z00_7823;
																								BgL_l1708z00_2957 =
																									BgL_l1708z00_7822;
																								goto
																									BgL_zc3z04anonymousza32318ze3z87_2959;
																							}
																						}
																					}
																			}
																		}
																	}
															}
															((((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_2930))))->BgL_argsz00) =
																((obj_t) BgL_auxz00_7801), BUNSPEC);
														}
													}
													{
														obj_t BgL_l1714z00_7825;

														BgL_l1714z00_7825 = CDR(BgL_l1714z00_2927);
														BgL_l1714z00_2927 = BgL_l1714z00_7825;
														goto BgL_zc3z04anonymousza32303ze3z87_2928;
													}
												}
											else
												{	/* SawMill/regalloc.scm 667 */
													((bool_t) 1);
												}
										}
									}
								}
								{
									obj_t BgL_l1717z00_7827;

									BgL_l1717z00_7827 = CDR(BgL_l1717z00_2921);
									BgL_l1717z00_2921 = BgL_l1717z00_7827;
									goto BgL_zc3z04anonymousza32301ze3z87_2922;
								}
							}
						else
							{	/* SawMill/regalloc.scm 660 */
								((bool_t) 1);
							}
					}
					return BgL_blocksz00_101;
				}
			}
		}

	}



/* map-register~0 */
	obj_t BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2(obj_t
		BgL_colorsz00_5635, obj_t BgL_mappingz00_5634, obj_t BgL_oz00_2996)
	{
		{	/* SawMill/regalloc.scm 659 */
			{
				BgL_typez00_bglt BgL_tyz00_2972;
				BgL_rtl_regz00_bglt BgL_rz00_2973;

				{	/* SawMill/regalloc.scm 642 */
					bool_t BgL_test3105z00_7829;

					{	/* SawMill/regalloc.scm 642 */
						obj_t BgL_classz00_4605;

						BgL_classz00_4605 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
						if (BGL_OBJECTP(BgL_oz00_2996))
							{	/* SawMill/regalloc.scm 642 */
								BgL_objectz00_bglt BgL_arg1801z00_4607;

								BgL_arg1801z00_4607 = (BgL_objectz00_bglt) (BgL_oz00_2996);
								if (BGL_CONDEXPAND_ISA_ARCH64())
									{	/* SawMill/regalloc.scm 642 */
										long BgL_idxz00_4613;

										BgL_idxz00_4613 =
											BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4607);
										BgL_test3105z00_7829 =
											(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
												(BgL_idxz00_4613 + 2L)) == BgL_classz00_4605);
									}
								else
									{	/* SawMill/regalloc.scm 642 */
										bool_t BgL_res2767z00_4635;

										{	/* SawMill/regalloc.scm 642 */
											obj_t BgL_oclassz00_4621;

											{	/* SawMill/regalloc.scm 642 */
												long BgL_arg1808z00_4627;

												{	/* SawMill/regalloc.scm 642 */
													long BgL_arg1809z00_4628;

													BgL_arg1809z00_4628 =
														BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4607);
													BgL_arg1808z00_4627 =
														(BgL_arg1809z00_4628 - OBJECT_TYPE);
												}
												BgL_oclassz00_4621 =
													VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
													BgL_arg1808z00_4627);
											}
											{	/* SawMill/regalloc.scm 642 */
												bool_t BgL__ortest_1115z00_4622;

												BgL__ortest_1115z00_4622 =
													(BgL_classz00_4605 == BgL_oclassz00_4621);
												if (BgL__ortest_1115z00_4622)
													{	/* SawMill/regalloc.scm 642 */
														BgL_res2767z00_4635 = BgL__ortest_1115z00_4622;
													}
												else
													{	/* SawMill/regalloc.scm 642 */
														long BgL_odepthz00_4623;

														BgL_odepthz00_4623 =
															BGL_CLASS_DEPTH(BgL_oclassz00_4621);
														if ((2L < BgL_odepthz00_4623))
															{	/* SawMill/regalloc.scm 642 */
																obj_t BgL_arg1797z00_4625;

																BgL_arg1797z00_4625 =
																	BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4621,
																	2L);
																BgL_res2767z00_4635 =
																	(BgL_arg1797z00_4625 == BgL_classz00_4605);
															}
														else
															{	/* SawMill/regalloc.scm 642 */
																BgL_res2767z00_4635 = ((bool_t) 0);
															}
													}
											}
										}
										BgL_test3105z00_7829 = BgL_res2767z00_4635;
									}
							}
						else
							{	/* SawMill/regalloc.scm 642 */
								BgL_test3105z00_7829 = ((bool_t) 0);
							}
					}
					if (BgL_test3105z00_7829)
						{	/* SawMill/regalloc.scm 644 */
							BgL_typez00_bglt BgL_arg2337z00_2999;
							obj_t BgL_arg2338z00_3000;

							BgL_arg2337z00_2999 =
								(((BgL_rtl_regz00_bglt) COBJECT(
										((BgL_rtl_regz00_bglt) BgL_oz00_2996)))->BgL_typez00);
							{	/* SawMill/regalloc.scm 647 */
								bool_t BgL_test3110z00_7851;

								{	/* SawMill/regalloc.scm 647 */
									obj_t BgL_arg2345z00_3008;

									{
										BgL_rtl_regzf2razf2_bglt BgL_auxz00_7852;

										{
											obj_t BgL_auxz00_7853;

											{	/* SawMill/regalloc.scm 647 */
												BgL_objectz00_bglt BgL_tmpz00_7854;

												BgL_tmpz00_7854 =
													((BgL_objectz00_bglt)
													((BgL_rtl_regz00_bglt) BgL_oz00_2996));
												BgL_auxz00_7853 = BGL_OBJECT_WIDENING(BgL_tmpz00_7854);
											}
											BgL_auxz00_7852 =
												((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7853);
										}
										BgL_arg2345z00_3008 =
											(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7852))->
											BgL_colorz00);
									}
									BgL_test3110z00_7851 = INTEGERP(BgL_arg2345z00_3008);
								}
								if (BgL_test3110z00_7851)
									{	/* SawMill/regalloc.scm 648 */
										obj_t BgL_arg2341z00_3004;

										{
											BgL_rtl_regzf2razf2_bglt BgL_auxz00_7861;

											{
												obj_t BgL_auxz00_7862;

												{	/* SawMill/regalloc.scm 648 */
													BgL_objectz00_bglt BgL_tmpz00_7863;

													BgL_tmpz00_7863 =
														((BgL_objectz00_bglt)
														((BgL_rtl_regz00_bglt) BgL_oz00_2996));
													BgL_auxz00_7862 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_7863);
												}
												BgL_auxz00_7861 =
													((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7862);
											}
											BgL_arg2341z00_3004 =
												(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_7861))->
												BgL_colorz00);
										}
										BgL_arg2338z00_3000 =
											VECTOR_REF(BgL_colorsz00_5635,
											(long) CINT(BgL_arg2341z00_3004));
									}
								else
									{	/* SawMill/regalloc.scm 649 */
										bool_t BgL_test3111z00_7871;

										{	/* SawMill/regalloc.scm 649 */
											obj_t BgL_arg2344z00_3007;

											{
												BgL_rtl_regzf2razf2_bglt BgL_auxz00_7872;

												{
													obj_t BgL_auxz00_7873;

													{	/* SawMill/regalloc.scm 649 */
														BgL_objectz00_bglt BgL_tmpz00_7874;

														BgL_tmpz00_7874 =
															((BgL_objectz00_bglt)
															((BgL_rtl_regz00_bglt) BgL_oz00_2996));
														BgL_auxz00_7873 =
															BGL_OBJECT_WIDENING(BgL_tmpz00_7874);
													}
													BgL_auxz00_7872 =
														((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7873);
												}
												BgL_arg2344z00_3007 =
													(((BgL_rtl_regzf2razf2_bglt)
														COBJECT(BgL_auxz00_7872))->BgL_colorz00);
											}
											{	/* SawMill/regalloc.scm 649 */
												obj_t BgL_classz00_4642;

												BgL_classz00_4642 = BGl_rtl_regz00zzsaw_defsz00;
												if (BGL_OBJECTP(BgL_arg2344z00_3007))
													{	/* SawMill/regalloc.scm 649 */
														BgL_objectz00_bglt BgL_arg1801z00_4644;

														BgL_arg1801z00_4644 =
															(BgL_objectz00_bglt) (BgL_arg2344z00_3007);
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/regalloc.scm 649 */
																long BgL_idxz00_4650;

																BgL_idxz00_4650 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_4644);
																BgL_test3111z00_7871 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_4650 + 1L)) ==
																	BgL_classz00_4642);
															}
														else
															{	/* SawMill/regalloc.scm 649 */
																bool_t BgL_res2768z00_4672;

																{	/* SawMill/regalloc.scm 649 */
																	obj_t BgL_oclassz00_4658;

																	{	/* SawMill/regalloc.scm 649 */
																		long BgL_arg1808z00_4664;

																		{	/* SawMill/regalloc.scm 649 */
																			long BgL_arg1809z00_4665;

																			BgL_arg1809z00_4665 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_4644);
																			BgL_arg1808z00_4664 =
																				(BgL_arg1809z00_4665 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_4658 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_4664);
																	}
																	{	/* SawMill/regalloc.scm 649 */
																		bool_t BgL__ortest_1115z00_4659;

																		BgL__ortest_1115z00_4659 =
																			(BgL_classz00_4642 == BgL_oclassz00_4658);
																		if (BgL__ortest_1115z00_4659)
																			{	/* SawMill/regalloc.scm 649 */
																				BgL_res2768z00_4672 =
																					BgL__ortest_1115z00_4659;
																			}
																		else
																			{	/* SawMill/regalloc.scm 649 */
																				long BgL_odepthz00_4660;

																				BgL_odepthz00_4660 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_4658);
																				if ((1L < BgL_odepthz00_4660))
																					{	/* SawMill/regalloc.scm 649 */
																						obj_t BgL_arg1797z00_4662;

																						BgL_arg1797z00_4662 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_4658, 1L);
																						BgL_res2768z00_4672 =
																							(BgL_arg1797z00_4662 ==
																							BgL_classz00_4642);
																					}
																				else
																					{	/* SawMill/regalloc.scm 649 */
																						BgL_res2768z00_4672 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test3111z00_7871 = BgL_res2768z00_4672;
															}
													}
												else
													{	/* SawMill/regalloc.scm 649 */
														BgL_test3111z00_7871 = ((bool_t) 0);
													}
											}
										}
										if (BgL_test3111z00_7871)
											{
												BgL_rtl_regzf2razf2_bglt BgL_auxz00_7899;

												{
													obj_t BgL_auxz00_7900;

													{	/* SawMill/regalloc.scm 650 */
														BgL_objectz00_bglt BgL_tmpz00_7901;

														BgL_tmpz00_7901 =
															((BgL_objectz00_bglt)
															((BgL_rtl_regz00_bglt) BgL_oz00_2996));
														BgL_auxz00_7900 =
															BGL_OBJECT_WIDENING(BgL_tmpz00_7901);
													}
													BgL_auxz00_7899 =
														((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_7900);
												}
												BgL_arg2338z00_3000 =
													(((BgL_rtl_regzf2razf2_bglt)
														COBJECT(BgL_auxz00_7899))->BgL_colorz00);
											}
										else
											{	/* SawMill/regalloc.scm 649 */
												BgL_arg2338z00_3000 = BgL_oz00_2996;
											}
									}
							}
							BgL_tyz00_2972 = BgL_arg2337z00_2999;
							BgL_rz00_2973 = ((BgL_rtl_regz00_bglt) BgL_arg2338z00_3000);
							{	/* SawMill/regalloc.scm 624 */
								bool_t BgL_test3116z00_7907;

								{	/* SawMill/regalloc.scm 624 */
									obj_t BgL_classz00_4552;

									BgL_classz00_4552 = BGl_rtl_regzf2razf2zzsaw_regsetz00;
									{	/* SawMill/regalloc.scm 624 */
										BgL_objectz00_bglt BgL_arg1801z00_4554;

										{	/* SawMill/regalloc.scm 624 */
											obj_t BgL_tmpz00_7908;

											BgL_tmpz00_7908 = ((obj_t) BgL_rz00_2973);
											BgL_arg1801z00_4554 =
												(BgL_objectz00_bglt) (BgL_tmpz00_7908);
										}
										if (BGL_CONDEXPAND_ISA_ARCH64())
											{	/* SawMill/regalloc.scm 624 */
												long BgL_idxz00_4560;

												BgL_idxz00_4560 =
													BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4554);
												BgL_test3116z00_7907 =
													(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
														(BgL_idxz00_4560 + 2L)) == BgL_classz00_4552);
											}
										else
											{	/* SawMill/regalloc.scm 624 */
												bool_t BgL_res2766z00_4582;

												{	/* SawMill/regalloc.scm 624 */
													obj_t BgL_oclassz00_4568;

													{	/* SawMill/regalloc.scm 624 */
														long BgL_arg1808z00_4574;

														{	/* SawMill/regalloc.scm 624 */
															long BgL_arg1809z00_4575;

															BgL_arg1809z00_4575 =
																BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4554);
															BgL_arg1808z00_4574 =
																(BgL_arg1809z00_4575 - OBJECT_TYPE);
														}
														BgL_oclassz00_4568 =
															VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
															BgL_arg1808z00_4574);
													}
													{	/* SawMill/regalloc.scm 624 */
														bool_t BgL__ortest_1115z00_4569;

														BgL__ortest_1115z00_4569 =
															(BgL_classz00_4552 == BgL_oclassz00_4568);
														if (BgL__ortest_1115z00_4569)
															{	/* SawMill/regalloc.scm 624 */
																BgL_res2766z00_4582 = BgL__ortest_1115z00_4569;
															}
														else
															{	/* SawMill/regalloc.scm 624 */
																long BgL_odepthz00_4570;

																BgL_odepthz00_4570 =
																	BGL_CLASS_DEPTH(BgL_oclassz00_4568);
																if ((2L < BgL_odepthz00_4570))
																	{	/* SawMill/regalloc.scm 624 */
																		obj_t BgL_arg1797z00_4572;

																		BgL_arg1797z00_4572 =
																			BGL_CLASS_ANCESTORS_REF
																			(BgL_oclassz00_4568, 2L);
																		BgL_res2766z00_4582 =
																			(BgL_arg1797z00_4572 ==
																			BgL_classz00_4552);
																	}
																else
																	{	/* SawMill/regalloc.scm 624 */
																		BgL_res2766z00_4582 = ((bool_t) 0);
																	}
															}
													}
												}
												BgL_test3116z00_7907 = BgL_res2766z00_4582;
											}
									}
								}
								if (BgL_test3116z00_7907)
									{	/* SawMill/regalloc.scm 624 */
										if (CBOOL(
												(((BgL_rtl_regz00_bglt) COBJECT(BgL_rz00_2973))->
													BgL_hardwarez00)))
											{	/* SawMill/regalloc.scm 626 */
												if (
													(((obj_t) BgL_tyz00_2972) ==
														BGl_za2objza2z00zztype_cachez00))
													{	/* SawMill/regalloc.scm 628 */
														return ((obj_t) BgL_rz00_2973);
													}
												else
													{	/* SawMill/regalloc.scm 631 */
														obj_t BgL_kz00_2977;

														BgL_kz00_2977 =
															MAKE_YOUNG_PAIR(
															((obj_t) BgL_rz00_2973),
															((obj_t) BgL_tyz00_2972));
														{	/* SawMill/regalloc.scm 632 */
															obj_t BgL_cz00_2978;

															BgL_cz00_2978 =
																BGl_assocz00zz__r4_pairs_and_lists_6_3z00
																(BgL_kz00_2977, CELL_REF(BgL_mappingz00_5634));
															if (PAIRP(BgL_cz00_2978))
																{	/* SawMill/regalloc.scm 633 */
																	return CDR(BgL_cz00_2978);
																}
															else
																{	/* SawMill/regalloc.scm 635 */
																	BgL_rtl_regz00_bglt BgL_newrz00_2980;

																	{	/* SawMill/regalloc.scm 635 */
																		BgL_rtl_regz00_bglt BgL_new1238z00_2983;

																		{	/* SawMill/regalloc.scm 637 */
																			BgL_rtl_regz00_bglt BgL_tmp1248z00_2991;
																			BgL_rtl_regzf2razf2_bglt
																				BgL_wide1249z00_2992;
																			{
																				BgL_rtl_regz00_bglt BgL_auxz00_7941;

																				{	/* SawMill/regalloc.scm 637 */
																					BgL_rtl_regz00_bglt
																						BgL_new1247z00_2994;
																					BgL_new1247z00_2994 =
																						((BgL_rtl_regz00_bglt)
																						BOBJECT(GC_MALLOC(sizeof(struct
																									BgL_rtl_regz00_bgl))));
																					{	/* SawMill/regalloc.scm 637 */
																						long BgL_arg2334z00_2995;

																						BgL_arg2334z00_2995 =
																							BGL_CLASS_NUM
																							(BGl_rtl_regz00zzsaw_defsz00);
																						BGL_OBJECT_CLASS_NUM_SET((
																								(BgL_objectz00_bglt)
																								BgL_new1247z00_2994),
																							BgL_arg2334z00_2995);
																					}
																					{	/* SawMill/regalloc.scm 637 */
																						BgL_objectz00_bglt BgL_tmpz00_7946;

																						BgL_tmpz00_7946 =
																							((BgL_objectz00_bglt)
																							BgL_new1247z00_2994);
																						BGL_OBJECT_WIDENING_SET
																							(BgL_tmpz00_7946, BFALSE);
																					}
																					((BgL_objectz00_bglt)
																						BgL_new1247z00_2994);
																					BgL_auxz00_7941 = BgL_new1247z00_2994;
																				}
																				BgL_tmp1248z00_2991 =
																					((BgL_rtl_regz00_bglt)
																					BgL_auxz00_7941);
																			}
																			BgL_wide1249z00_2992 =
																				((BgL_rtl_regzf2razf2_bglt)
																				BOBJECT(GC_MALLOC(sizeof(struct
																							BgL_rtl_regzf2razf2_bgl))));
																			{	/* SawMill/regalloc.scm 637 */
																				obj_t BgL_auxz00_7954;
																				BgL_objectz00_bglt BgL_tmpz00_7952;

																				BgL_auxz00_7954 =
																					((obj_t) BgL_wide1249z00_2992);
																				BgL_tmpz00_7952 =
																					((BgL_objectz00_bglt)
																					BgL_tmp1248z00_2991);
																				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_7952,
																					BgL_auxz00_7954);
																			}
																			((BgL_objectz00_bglt)
																				BgL_tmp1248z00_2991);
																			{	/* SawMill/regalloc.scm 637 */
																				long BgL_arg2333z00_2993;

																				BgL_arg2333z00_2993 =
																					BGL_CLASS_NUM
																					(BGl_rtl_regzf2razf2zzsaw_regsetz00);
																				BGL_OBJECT_CLASS_NUM_SET((
																						(BgL_objectz00_bglt)
																						BgL_tmp1248z00_2991),
																					BgL_arg2333z00_2993);
																			}
																			BgL_new1238z00_2983 =
																				((BgL_rtl_regz00_bglt)
																				BgL_tmp1248z00_2991);
																		}
																		((((BgL_rtl_regz00_bglt) COBJECT(
																						((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_typez00) =
																			((BgL_typez00_bglt) BgL_tyz00_2972),
																			BUNSPEC);
																		((((BgL_rtl_regz00_bglt)
																					COBJECT(((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_varz00) =
																			((obj_t) (((BgL_rtl_regz00_bglt)
																						COBJECT(BgL_rz00_2973))->
																					BgL_varz00)), BUNSPEC);
																		((((BgL_rtl_regz00_bglt)
																					COBJECT(((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_onexprzf3zf3) =
																			((obj_t) (((BgL_rtl_regz00_bglt)
																						COBJECT(BgL_rz00_2973))->
																					BgL_onexprzf3zf3)), BUNSPEC);
																		((((BgL_rtl_regz00_bglt)
																					COBJECT(((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_namez00) =
																			((obj_t) (((BgL_rtl_regz00_bglt)
																						COBJECT(BgL_rz00_2973))->
																					BgL_namez00)), BUNSPEC);
																		{
																			obj_t BgL_auxz00_7973;

																			{	/* SawMill/regalloc.scm 636 */

																				{	/* SawMill/regalloc.scm 636 */

																					BgL_auxz00_7973 =
																						BGl_gensymz00zz__r4_symbols_6_4z00
																						(BFALSE);
																			}}
																			((((BgL_rtl_regz00_bglt) COBJECT(
																							((BgL_rtl_regz00_bglt)
																								BgL_new1238z00_2983)))->
																					BgL_keyz00) =
																				((obj_t) BgL_auxz00_7973), BUNSPEC);
																		}
																		((((BgL_rtl_regz00_bglt) COBJECT(
																						((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_debugnamez00) =
																			((obj_t) (((BgL_rtl_regz00_bglt)
																						COBJECT(BgL_rz00_2973))->
																					BgL_debugnamez00)), BUNSPEC);
																		((((BgL_rtl_regz00_bglt)
																					COBJECT(((BgL_rtl_regz00_bglt)
																							BgL_new1238z00_2983)))->
																				BgL_hardwarez00) =
																			((obj_t) (((BgL_rtl_regz00_bglt)
																						COBJECT(BgL_rz00_2973))->
																					BgL_hardwarez00)), BUNSPEC);
																		{
																			int BgL_auxz00_7989;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_7983;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_7990;
																				{
																					obj_t BgL_auxz00_7991;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_7992;

																						BgL_tmpz00_7992 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_7991 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_7992);
																					}
																					BgL_auxz00_7990 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_7991);
																				}
																				BgL_auxz00_7989 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_7990))->
																					BgL_numz00);
																			}
																			{
																				obj_t BgL_auxz00_7984;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_7985;

																					BgL_tmpz00_7985 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_7984 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_7985);
																				}
																				BgL_auxz00_7983 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_7984);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_7983))->
																					BgL_numz00) =
																				((int) BgL_auxz00_7989), BUNSPEC);
																		}
																		{
																			obj_t BgL_auxz00_8005;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_7999;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_8006;
																				{
																					obj_t BgL_auxz00_8007;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_8008;

																						BgL_tmpz00_8008 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_8007 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_8008);
																					}
																					BgL_auxz00_8006 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_8007);
																				}
																				BgL_auxz00_8005 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8006))->
																					BgL_colorz00);
																			}
																			{
																				obj_t BgL_auxz00_8000;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_8001;

																					BgL_tmpz00_8001 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_8000 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_8001);
																				}
																				BgL_auxz00_7999 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_8000);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_7999))->
																					BgL_colorz00) =
																				((obj_t) BgL_auxz00_8005), BUNSPEC);
																		}
																		{
																			obj_t BgL_auxz00_8021;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_8015;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_8022;
																				{
																					obj_t BgL_auxz00_8023;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_8024;

																						BgL_tmpz00_8024 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_8023 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_8024);
																					}
																					BgL_auxz00_8022 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_8023);
																				}
																				BgL_auxz00_8021 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8022))->
																					BgL_coalescez00);
																			}
																			{
																				obj_t BgL_auxz00_8016;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_8017;

																					BgL_tmpz00_8017 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_8016 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_8017);
																				}
																				BgL_auxz00_8015 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_8016);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8015))->
																					BgL_coalescez00) =
																				((obj_t) BgL_auxz00_8021), BUNSPEC);
																		}
																		{
																			int BgL_auxz00_8037;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_8031;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_8038;
																				{
																					obj_t BgL_auxz00_8039;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_8040;

																						BgL_tmpz00_8040 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_8039 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_8040);
																					}
																					BgL_auxz00_8038 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_8039);
																				}
																				BgL_auxz00_8037 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8038))->
																					BgL_occurrencesz00);
																			}
																			{
																				obj_t BgL_auxz00_8032;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_8033;

																					BgL_tmpz00_8033 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_8032 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_8033);
																				}
																				BgL_auxz00_8031 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_8032);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8031))->
																					BgL_occurrencesz00) =
																				((int) BgL_auxz00_8037), BUNSPEC);
																		}
																		{
																			obj_t BgL_auxz00_8053;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_8047;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_8054;
																				{
																					obj_t BgL_auxz00_8055;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_8056;

																						BgL_tmpz00_8056 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_8055 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_8056);
																					}
																					BgL_auxz00_8054 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_8055);
																				}
																				BgL_auxz00_8053 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8054))->
																					BgL_interferez00);
																			}
																			{
																				obj_t BgL_auxz00_8048;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_8049;

																					BgL_tmpz00_8049 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_8048 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_8049);
																				}
																				BgL_auxz00_8047 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_8048);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8047))->
																					BgL_interferez00) =
																				((obj_t) BgL_auxz00_8053), BUNSPEC);
																		}
																		{
																			obj_t BgL_auxz00_8069;
																			BgL_rtl_regzf2razf2_bglt BgL_auxz00_8063;

																			{
																				BgL_rtl_regzf2razf2_bglt
																					BgL_auxz00_8070;
																				{
																					obj_t BgL_auxz00_8071;

																					{	/* SawMill/regalloc.scm 636 */
																						BgL_objectz00_bglt BgL_tmpz00_8072;

																						BgL_tmpz00_8072 =
																							((BgL_objectz00_bglt)
																							((BgL_rtl_regz00_bglt)
																								BgL_rz00_2973));
																						BgL_auxz00_8071 =
																							BGL_OBJECT_WIDENING
																							(BgL_tmpz00_8072);
																					}
																					BgL_auxz00_8070 =
																						((BgL_rtl_regzf2razf2_bglt)
																						BgL_auxz00_8071);
																				}
																				BgL_auxz00_8069 =
																					(((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8070))->
																					BgL_interfere2z00);
																			}
																			{
																				obj_t BgL_auxz00_8064;

																				{	/* SawMill/regalloc.scm 636 */
																					BgL_objectz00_bglt BgL_tmpz00_8065;

																					BgL_tmpz00_8065 =
																						((BgL_objectz00_bglt)
																						BgL_new1238z00_2983);
																					BgL_auxz00_8064 =
																						BGL_OBJECT_WIDENING
																						(BgL_tmpz00_8065);
																				}
																				BgL_auxz00_8063 =
																					((BgL_rtl_regzf2razf2_bglt)
																					BgL_auxz00_8064);
																			}
																			((((BgL_rtl_regzf2razf2_bglt)
																						COBJECT(BgL_auxz00_8063))->
																					BgL_interfere2z00) =
																				((obj_t) BgL_auxz00_8069), BUNSPEC);
																		}
																		BgL_newrz00_2980 = BgL_new1238z00_2983;
																	}
																	{	/* SawMill/regalloc.scm 638 */
																		obj_t BgL_auxz00_5636;

																		{	/* SawMill/regalloc.scm 638 */
																			obj_t BgL_arg2332z00_2981;

																			BgL_arg2332z00_2981 =
																				MAKE_YOUNG_PAIR(BgL_kz00_2977,
																				((obj_t) BgL_newrz00_2980));
																			BgL_auxz00_5636 =
																				MAKE_YOUNG_PAIR(BgL_arg2332z00_2981,
																				CELL_REF(BgL_mappingz00_5634));
																		}
																		CELL_SET(BgL_mappingz00_5634,
																			BgL_auxz00_5636);
																	}
																	return ((obj_t) BgL_newrz00_2980);
																}
														}
													}
											}
										else
											{	/* SawMill/regalloc.scm 626 */
												return ((obj_t) BgL_rz00_2973);
											}
									}
								else
									{	/* SawMill/regalloc.scm 624 */
										return ((obj_t) BgL_rz00_2973);
									}
							}
						}
					else
						{	/* SawMill/regalloc.scm 653 */
							bool_t BgL_test3123z00_8086;

							{	/* SawMill/regalloc.scm 653 */
								obj_t BgL_classz00_4674;

								BgL_classz00_4674 = BGl_rtl_insz00zzsaw_defsz00;
								if (BGL_OBJECTP(BgL_oz00_2996))
									{	/* SawMill/regalloc.scm 653 */
										BgL_objectz00_bglt BgL_arg1801z00_4676;

										BgL_arg1801z00_4676 = (BgL_objectz00_bglt) (BgL_oz00_2996);
										if (BGL_CONDEXPAND_ISA_ARCH64())
											{	/* SawMill/regalloc.scm 653 */
												long BgL_idxz00_4682;

												BgL_idxz00_4682 =
													BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4676);
												BgL_test3123z00_8086 =
													(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
														(BgL_idxz00_4682 + 1L)) == BgL_classz00_4674);
											}
										else
											{	/* SawMill/regalloc.scm 653 */
												bool_t BgL_res2769z00_4704;

												{	/* SawMill/regalloc.scm 653 */
													obj_t BgL_oclassz00_4690;

													{	/* SawMill/regalloc.scm 653 */
														long BgL_arg1808z00_4696;

														{	/* SawMill/regalloc.scm 653 */
															long BgL_arg1809z00_4697;

															BgL_arg1809z00_4697 =
																BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4676);
															BgL_arg1808z00_4696 =
																(BgL_arg1809z00_4697 - OBJECT_TYPE);
														}
														BgL_oclassz00_4690 =
															VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
															BgL_arg1808z00_4696);
													}
													{	/* SawMill/regalloc.scm 653 */
														bool_t BgL__ortest_1115z00_4691;

														BgL__ortest_1115z00_4691 =
															(BgL_classz00_4674 == BgL_oclassz00_4690);
														if (BgL__ortest_1115z00_4691)
															{	/* SawMill/regalloc.scm 653 */
																BgL_res2769z00_4704 = BgL__ortest_1115z00_4691;
															}
														else
															{	/* SawMill/regalloc.scm 653 */
																long BgL_odepthz00_4692;

																BgL_odepthz00_4692 =
																	BGL_CLASS_DEPTH(BgL_oclassz00_4690);
																if ((1L < BgL_odepthz00_4692))
																	{	/* SawMill/regalloc.scm 653 */
																		obj_t BgL_arg1797z00_4694;

																		BgL_arg1797z00_4694 =
																			BGL_CLASS_ANCESTORS_REF
																			(BgL_oclassz00_4690, 1L);
																		BgL_res2769z00_4704 =
																			(BgL_arg1797z00_4694 ==
																			BgL_classz00_4674);
																	}
																else
																	{	/* SawMill/regalloc.scm 653 */
																		BgL_res2769z00_4704 = ((bool_t) 0);
																	}
															}
													}
												}
												BgL_test3123z00_8086 = BgL_res2769z00_4704;
											}
									}
								else
									{	/* SawMill/regalloc.scm 653 */
										BgL_test3123z00_8086 = ((bool_t) 0);
									}
							}
							if (BgL_test3123z00_8086)
								{	/* SawMill/regalloc.scm 653 */
									{
										obj_t BgL_auxz00_8106;

										{	/* SawMill/regalloc.scm 655 */
											obj_t BgL_l1687z00_3011;

											BgL_l1687z00_3011 =
												(((BgL_rtl_insz00_bglt) COBJECT(
														((BgL_rtl_insz00_bglt) BgL_oz00_2996)))->
												BgL_z52spillz52);
											if (NULLP(BgL_l1687z00_3011))
												{	/* SawMill/regalloc.scm 655 */
													BgL_auxz00_8106 = BNIL;
												}
											else
												{	/* SawMill/regalloc.scm 655 */
													obj_t BgL_head1689z00_3013;

													{	/* SawMill/regalloc.scm 655 */
														obj_t BgL_arg2354z00_3025;

														{	/* SawMill/regalloc.scm 655 */
															obj_t BgL_arg2355z00_3026;

															BgL_arg2355z00_3026 = CAR(BgL_l1687z00_3011);
															BgL_arg2354z00_3025 =
																BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																(BgL_colorsz00_5635, BgL_mappingz00_5634,
																BgL_arg2355z00_3026);
														}
														BgL_head1689z00_3013 =
															MAKE_YOUNG_PAIR(BgL_arg2354z00_3025, BNIL);
													}
													{	/* SawMill/regalloc.scm 655 */
														obj_t BgL_g1692z00_3014;

														BgL_g1692z00_3014 = CDR(BgL_l1687z00_3011);
														{
															obj_t BgL_l1687z00_3016;
															obj_t BgL_tail1690z00_3017;

															BgL_l1687z00_3016 = BgL_g1692z00_3014;
															BgL_tail1690z00_3017 = BgL_head1689z00_3013;
														BgL_zc3z04anonymousza32348ze3z87_3018:
															if (NULLP(BgL_l1687z00_3016))
																{	/* SawMill/regalloc.scm 655 */
																	BgL_auxz00_8106 = BgL_head1689z00_3013;
																}
															else
																{	/* SawMill/regalloc.scm 655 */
																	obj_t BgL_newtail1691z00_3020;

																	{	/* SawMill/regalloc.scm 655 */
																		obj_t BgL_arg2352z00_3022;

																		{	/* SawMill/regalloc.scm 655 */
																			obj_t BgL_arg2353z00_3023;

																			BgL_arg2353z00_3023 =
																				CAR(((obj_t) BgL_l1687z00_3016));
																			BgL_arg2352z00_3022 =
																				BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																				(BgL_colorsz00_5635,
																				BgL_mappingz00_5634,
																				BgL_arg2353z00_3023);
																		}
																		BgL_newtail1691z00_3020 =
																			MAKE_YOUNG_PAIR(BgL_arg2352z00_3022,
																			BNIL);
																	}
																	SET_CDR(BgL_tail1690z00_3017,
																		BgL_newtail1691z00_3020);
																	{	/* SawMill/regalloc.scm 655 */
																		obj_t BgL_arg2351z00_3021;

																		BgL_arg2351z00_3021 =
																			CDR(((obj_t) BgL_l1687z00_3016));
																		{
																			obj_t BgL_tail1690z00_8126;
																			obj_t BgL_l1687z00_8125;

																			BgL_l1687z00_8125 = BgL_arg2351z00_3021;
																			BgL_tail1690z00_8126 =
																				BgL_newtail1691z00_3020;
																			BgL_tail1690z00_3017 =
																				BgL_tail1690z00_8126;
																			BgL_l1687z00_3016 = BgL_l1687z00_8125;
																			goto
																				BgL_zc3z04anonymousza32348ze3z87_3018;
																		}
																	}
																}
														}
													}
												}
										}
										((((BgL_rtl_insz00_bglt) COBJECT(
														((BgL_rtl_insz00_bglt) BgL_oz00_2996)))->
												BgL_z52spillz52) = ((obj_t) BgL_auxz00_8106), BUNSPEC);
									}
									{
										obj_t BgL_auxz00_8128;

										{	/* SawMill/regalloc.scm 656 */
											obj_t BgL_l1693z00_3027;

											BgL_l1693z00_3027 =
												(((BgL_rtl_insz00_bglt) COBJECT(
														((BgL_rtl_insz00_bglt) BgL_oz00_2996)))->
												BgL_argsz00);
											if (NULLP(BgL_l1693z00_3027))
												{	/* SawMill/regalloc.scm 656 */
													BgL_auxz00_8128 = BNIL;
												}
											else
												{	/* SawMill/regalloc.scm 656 */
													obj_t BgL_head1695z00_3029;

													{	/* SawMill/regalloc.scm 656 */
														obj_t BgL_arg2363z00_3041;

														{	/* SawMill/regalloc.scm 656 */
															obj_t BgL_arg2364z00_3042;

															BgL_arg2364z00_3042 = CAR(BgL_l1693z00_3027);
															BgL_arg2363z00_3041 =
																BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																(BgL_colorsz00_5635, BgL_mappingz00_5634,
																BgL_arg2364z00_3042);
														}
														BgL_head1695z00_3029 =
															MAKE_YOUNG_PAIR(BgL_arg2363z00_3041, BNIL);
													}
													{	/* SawMill/regalloc.scm 656 */
														obj_t BgL_g1698z00_3030;

														BgL_g1698z00_3030 = CDR(BgL_l1693z00_3027);
														{
															obj_t BgL_l1693z00_3032;
															obj_t BgL_tail1696z00_3033;

															BgL_l1693z00_3032 = BgL_g1698z00_3030;
															BgL_tail1696z00_3033 = BgL_head1695z00_3029;
														BgL_zc3z04anonymousza32357ze3z87_3034:
															if (NULLP(BgL_l1693z00_3032))
																{	/* SawMill/regalloc.scm 656 */
																	BgL_auxz00_8128 = BgL_head1695z00_3029;
																}
															else
																{	/* SawMill/regalloc.scm 656 */
																	obj_t BgL_newtail1697z00_3036;

																	{	/* SawMill/regalloc.scm 656 */
																		obj_t BgL_arg2360z00_3038;

																		{	/* SawMill/regalloc.scm 656 */
																			obj_t BgL_arg2362z00_3039;

																			BgL_arg2362z00_3039 =
																				CAR(((obj_t) BgL_l1693z00_3032));
																			BgL_arg2360z00_3038 =
																				BGl_mapzd2registerze70z35zzsaw_registerzd2allocationzd2
																				(BgL_colorsz00_5635,
																				BgL_mappingz00_5634,
																				BgL_arg2362z00_3039);
																		}
																		BgL_newtail1697z00_3036 =
																			MAKE_YOUNG_PAIR(BgL_arg2360z00_3038,
																			BNIL);
																	}
																	SET_CDR(BgL_tail1696z00_3033,
																		BgL_newtail1697z00_3036);
																	{	/* SawMill/regalloc.scm 656 */
																		obj_t BgL_arg2359z00_3037;

																		BgL_arg2359z00_3037 =
																			CDR(((obj_t) BgL_l1693z00_3032));
																		{
																			obj_t BgL_tail1696z00_8148;
																			obj_t BgL_l1693z00_8147;

																			BgL_l1693z00_8147 = BgL_arg2359z00_3037;
																			BgL_tail1696z00_8148 =
																				BgL_newtail1697z00_3036;
																			BgL_tail1696z00_3033 =
																				BgL_tail1696z00_8148;
																			BgL_l1693z00_3032 = BgL_l1693z00_8147;
																			goto
																				BgL_zc3z04anonymousza32357ze3z87_3034;
																		}
																	}
																}
														}
													}
												}
										}
										((((BgL_rtl_insz00_bglt) COBJECT(
														((BgL_rtl_insz00_bglt) BgL_oz00_2996)))->
												BgL_argsz00) = ((obj_t) BgL_auxz00_8128), BUNSPEC);
									}
									return BgL_oz00_2996;
								}
							else
								{	/* SawMill/regalloc.scm 653 */
									return BgL_oz00_2996;
								}
						}
				}
			}
		}

	}



/* remove-nop-move! */
	obj_t BGl_removezd2nopzd2movez12z12zzsaw_registerzd2allocationzd2(obj_t
		BgL_blocksz00_102)
	{
		{	/* SawMill/regalloc.scm 676 */
			{	/* SawMill/regalloc.scm 704 */
				obj_t BgL_nz00_3051;

				{	/* SawMill/regalloc.scm 704 */
					obj_t BgL_runner2382z00_3071;

					if (NULLP(BgL_blocksz00_102))
						{	/* SawMill/regalloc.scm 704 */
							BgL_runner2382z00_3071 = BNIL;
						}
					else
						{	/* SawMill/regalloc.scm 704 */
							obj_t BgL_head1721z00_3057;

							{	/* SawMill/regalloc.scm 704 */
								long BgL_arg2380z00_3069;

								{	/* SawMill/regalloc.scm 704 */
									obj_t BgL_arg2381z00_3070;

									BgL_arg2381z00_3070 = CAR(((obj_t) BgL_blocksz00_102));
									BgL_arg2380z00_3069 =
										BGl_removezd2blockz12ze70z27zzsaw_registerzd2allocationzd2
										(BgL_arg2381z00_3070);
								}
								BgL_head1721z00_3057 =
									MAKE_YOUNG_PAIR(BINT(BgL_arg2380z00_3069), BNIL);
							}
							{	/* SawMill/regalloc.scm 704 */
								obj_t BgL_g1724z00_3058;

								BgL_g1724z00_3058 = CDR(((obj_t) BgL_blocksz00_102));
								{
									obj_t BgL_l1719z00_3060;
									obj_t BgL_tail1722z00_3061;

									BgL_l1719z00_3060 = BgL_g1724z00_3058;
									BgL_tail1722z00_3061 = BgL_head1721z00_3057;
								BgL_zc3z04anonymousza32373ze3z87_3062:
									if (NULLP(BgL_l1719z00_3060))
										{	/* SawMill/regalloc.scm 704 */
											BgL_runner2382z00_3071 = BgL_head1721z00_3057;
										}
									else
										{	/* SawMill/regalloc.scm 704 */
											obj_t BgL_newtail1723z00_3064;

											{	/* SawMill/regalloc.scm 704 */
												long BgL_arg2377z00_3066;

												{	/* SawMill/regalloc.scm 704 */
													obj_t BgL_arg2378z00_3067;

													BgL_arg2378z00_3067 =
														CAR(((obj_t) BgL_l1719z00_3060));
													BgL_arg2377z00_3066 =
														BGl_removezd2blockz12ze70z27zzsaw_registerzd2allocationzd2
														(BgL_arg2378z00_3067);
												}
												BgL_newtail1723z00_3064 =
													MAKE_YOUNG_PAIR(BINT(BgL_arg2377z00_3066), BNIL);
											}
											SET_CDR(BgL_tail1722z00_3061, BgL_newtail1723z00_3064);
											{	/* SawMill/regalloc.scm 704 */
												obj_t BgL_arg2375z00_3065;

												BgL_arg2375z00_3065 = CDR(((obj_t) BgL_l1719z00_3060));
												{
													obj_t BgL_tail1722z00_8170;
													obj_t BgL_l1719z00_8169;

													BgL_l1719z00_8169 = BgL_arg2375z00_3065;
													BgL_tail1722z00_8170 = BgL_newtail1723z00_3064;
													BgL_tail1722z00_3061 = BgL_tail1722z00_8170;
													BgL_l1719z00_3060 = BgL_l1719z00_8169;
													goto BgL_zc3z04anonymousza32373ze3z87_3062;
												}
											}
										}
								}
							}
						}
					BgL_nz00_3051 =
						BGl_zb2zb2zz__r4_numbers_6_5z00(BgL_runner2382z00_3071);
				}
				{	/* SawMill/regalloc.scm 705 */
					obj_t BgL_list2369z00_3052;

					{	/* SawMill/regalloc.scm 705 */
						obj_t BgL_arg2370z00_3053;

						{	/* SawMill/regalloc.scm 705 */
							obj_t BgL_arg2371z00_3054;

							BgL_arg2371z00_3054 =
								MAKE_YOUNG_PAIR(BGl_string2832z00zzsaw_registerzd2allocationzd2,
								BNIL);
							BgL_arg2370z00_3053 =
								MAKE_YOUNG_PAIR(BgL_nz00_3051, BgL_arg2371z00_3054);
						}
						BgL_list2369z00_3052 =
							MAKE_YOUNG_PAIR(BGl_string2833z00zzsaw_registerzd2allocationzd2,
							BgL_arg2370z00_3053);
					}
					return BGl_verbosez00zztools_speekz00(BINT(3L), BgL_list2369z00_3052);
				}
			}
		}

	}



/* remove-block!~0 */
	long BGl_removezd2blockz12ze70z27zzsaw_registerzd2allocationzd2(obj_t
		BgL_bz00_3085)
	{
		{	/* SawMill/regalloc.scm 703 */
			{
				obj_t BgL_iz00_3072;

				{	/* SawMill/regalloc.scm 684 */
					obj_t BgL_g1257z00_3087;

					BgL_g1257z00_3087 =
						(((BgL_blockz00_bglt) COBJECT(
								((BgL_blockz00_bglt) BgL_bz00_3085)))->BgL_firstz00);
					{
						obj_t BgL_insz00_3089;
						obj_t BgL_prevz00_3090;
						long BgL_nz00_3091;

						BgL_insz00_3089 = BgL_g1257z00_3087;
						BgL_prevz00_3090 = BFALSE;
						BgL_nz00_3091 = 0L;
					BgL_zc3z04anonymousza32395ze3z87_3092:
						if (PAIRP(BgL_insz00_3089))
							{	/* SawMill/regalloc.scm 688 */
								bool_t BgL_test3135z00_8181;

								BgL_iz00_3072 = CAR(BgL_insz00_3089);
								{	/* SawMill/regalloc.scm 679 */
									bool_t BgL_test3136z00_8182;

									{	/* SawMill/regalloc.scm 679 */
										BgL_rtl_funz00_bglt BgL_arg2393z00_3084;

										BgL_arg2393z00_3084 =
											(((BgL_rtl_insz00_bglt) COBJECT(
													((BgL_rtl_insz00_bglt)
														((BgL_rtl_insz00_bglt) BgL_iz00_3072))))->
											BgL_funz00);
										{	/* SawMill/regalloc.scm 679 */
											obj_t BgL_classz00_4768;

											BgL_classz00_4768 = BGl_rtl_movz00zzsaw_defsz00;
											{	/* SawMill/regalloc.scm 679 */
												BgL_objectz00_bglt BgL_arg1801z00_4770;

												{	/* SawMill/regalloc.scm 679 */
													obj_t BgL_tmpz00_8186;

													BgL_tmpz00_8186 =
														((obj_t)
														((BgL_objectz00_bglt) BgL_arg2393z00_3084));
													BgL_arg1801z00_4770 =
														(BgL_objectz00_bglt) (BgL_tmpz00_8186);
												}
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* SawMill/regalloc.scm 679 */
														long BgL_idxz00_4776;

														BgL_idxz00_4776 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4770);
														BgL_test3136z00_8182 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_4776 + 3L)) == BgL_classz00_4768);
													}
												else
													{	/* SawMill/regalloc.scm 679 */
														bool_t BgL_res2771z00_4798;

														{	/* SawMill/regalloc.scm 679 */
															obj_t BgL_oclassz00_4784;

															{	/* SawMill/regalloc.scm 679 */
																long BgL_arg1808z00_4790;

																{	/* SawMill/regalloc.scm 679 */
																	long BgL_arg1809z00_4791;

																	BgL_arg1809z00_4791 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4770);
																	BgL_arg1808z00_4790 =
																		(BgL_arg1809z00_4791 - OBJECT_TYPE);
																}
																BgL_oclassz00_4784 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_4790);
															}
															{	/* SawMill/regalloc.scm 679 */
																bool_t BgL__ortest_1115z00_4785;

																BgL__ortest_1115z00_4785 =
																	(BgL_classz00_4768 == BgL_oclassz00_4784);
																if (BgL__ortest_1115z00_4785)
																	{	/* SawMill/regalloc.scm 679 */
																		BgL_res2771z00_4798 =
																			BgL__ortest_1115z00_4785;
																	}
																else
																	{	/* SawMill/regalloc.scm 679 */
																		long BgL_odepthz00_4786;

																		BgL_odepthz00_4786 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_4784);
																		if ((3L < BgL_odepthz00_4786))
																			{	/* SawMill/regalloc.scm 679 */
																				obj_t BgL_arg1797z00_4788;

																				BgL_arg1797z00_4788 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_4784, 3L);
																				BgL_res2771z00_4798 =
																					(BgL_arg1797z00_4788 ==
																					BgL_classz00_4768);
																			}
																		else
																			{	/* SawMill/regalloc.scm 679 */
																				BgL_res2771z00_4798 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test3136z00_8182 = BgL_res2771z00_4798;
													}
											}
										}
									}
									if (BgL_test3136z00_8182)
										{	/* SawMill/regalloc.scm 679 */
											if (NULLP(
													(((BgL_rtl_insz00_bglt) COBJECT(
																((BgL_rtl_insz00_bglt)
																	((BgL_rtl_insz00_bglt) BgL_iz00_3072))))->
														BgL_argsz00)))
												{	/* SawMill/regalloc.scm 680 */
													BgL_test3135z00_8181 = ((bool_t) 0);
												}
											else
												{	/* SawMill/regalloc.scm 681 */
													bool_t BgL_test3141z00_8211;

													{	/* SawMill/regalloc.scm 681 */
														obj_t BgL_tmpz00_8212;

														{	/* SawMill/regalloc.scm 681 */
															obj_t BgL_pairz00_4799;

															BgL_pairz00_4799 =
																(((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt)
																			((BgL_rtl_insz00_bglt) BgL_iz00_3072))))->
																BgL_argsz00);
															BgL_tmpz00_8212 = CDR(BgL_pairz00_4799);
														}
														BgL_test3141z00_8211 = NULLP(BgL_tmpz00_8212);
													}
													if (BgL_test3141z00_8211)
														{	/* SawMill/regalloc.scm 682 */
															obj_t BgL_tmpz00_8218;

															{	/* SawMill/regalloc.scm 682 */
																obj_t BgL_pairz00_4800;

																BgL_pairz00_4800 =
																	(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_3072))))->BgL_argsz00);
																BgL_tmpz00_8218 = CAR(BgL_pairz00_4800);
															}
															BgL_test3135z00_8181 =
																(
																(((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				((BgL_rtl_insz00_bglt)
																					BgL_iz00_3072))))->BgL_destz00) ==
																BgL_tmpz00_8218);
														}
													else
														{	/* SawMill/regalloc.scm 681 */
															BgL_test3135z00_8181 = ((bool_t) 0);
														}
												}
										}
									else
										{	/* SawMill/regalloc.scm 679 */
											BgL_test3135z00_8181 = ((bool_t) 0);
										}
								}
								if (BgL_test3135z00_8181)
									{	/* SawMill/regalloc.scm 689 */
										BgL_rtl_insz00_bglt BgL_i1258z00_3096;

										BgL_i1258z00_3096 =
											((BgL_rtl_insz00_bglt) CAR(BgL_insz00_3089));
										if (PAIRP(BgL_prevz00_3090))
											{	/* SawMill/regalloc.scm 691 */
												{	/* SawMill/regalloc.scm 692 */
													obj_t BgL_tmpz00_8232;

													BgL_tmpz00_8232 = CDR(BgL_insz00_3089);
													SET_CDR(BgL_prevz00_3090, BgL_tmpz00_8232);
												}
												{
													long BgL_nz00_8237;
													obj_t BgL_insz00_8235;

													BgL_insz00_8235 = CDR(BgL_insz00_3089);
													BgL_nz00_8237 = (1L + BgL_nz00_3091);
													BgL_nz00_3091 = BgL_nz00_8237;
													BgL_insz00_3089 = BgL_insz00_8235;
													goto BgL_zc3z04anonymousza32395ze3z87_3092;
												}
											}
										else
											{	/* SawMill/regalloc.scm 691 */
												if (NULLP(CDR(BgL_insz00_3089)))
													{	/* SawMill/regalloc.scm 694 */
														{
															BgL_rtl_funz00_bglt BgL_auxz00_8242;

															{	/* SawMill/regalloc.scm 695 */
																BgL_rtl_nopz00_bglt BgL_new1260z00_3103;

																{	/* SawMill/regalloc.scm 695 */
																	BgL_rtl_nopz00_bglt BgL_new1259z00_3104;

																	BgL_new1259z00_3104 =
																		((BgL_rtl_nopz00_bglt)
																		BOBJECT(GC_MALLOC(sizeof(struct
																					BgL_rtl_nopz00_bgl))));
																	{	/* SawMill/regalloc.scm 695 */
																		long BgL_arg2407z00_3105;

																		{	/* SawMill/regalloc.scm 695 */
																			obj_t BgL_classz00_4809;

																			BgL_classz00_4809 =
																				BGl_rtl_nopz00zzsaw_defsz00;
																			BgL_arg2407z00_3105 =
																				BGL_CLASS_NUM(BgL_classz00_4809);
																		}
																		BGL_OBJECT_CLASS_NUM_SET(
																			((BgL_objectz00_bglt)
																				BgL_new1259z00_3104),
																			BgL_arg2407z00_3105);
																	}
																	BgL_new1260z00_3103 = BgL_new1259z00_3104;
																}
																((((BgL_rtl_funz00_bglt) COBJECT(
																				((BgL_rtl_funz00_bglt)
																					BgL_new1260z00_3103)))->BgL_locz00) =
																	((obj_t) BFALSE), BUNSPEC);
																BgL_auxz00_8242 =
																	((BgL_rtl_funz00_bglt) BgL_new1260z00_3103);
															}
															((((BgL_rtl_insz00_bglt) COBJECT(
																			((BgL_rtl_insz00_bglt)
																				BgL_i1258z00_3096)))->BgL_funz00) =
																((BgL_rtl_funz00_bglt) BgL_auxz00_8242),
																BUNSPEC);
														}
														((((BgL_rtl_insz00_bglt) COBJECT(
																		((BgL_rtl_insz00_bglt)
																			BgL_i1258z00_3096)))->BgL_destz00) =
															((obj_t) BFALSE), BUNSPEC);
														((((BgL_rtl_insz00_bglt)
																	COBJECT(((BgL_rtl_insz00_bglt)
																			BgL_i1258z00_3096)))->BgL_argsz00) =
															((obj_t) BNIL), BUNSPEC);
														return (1L + BgL_nz00_3091);
													}
												else
													{	/* SawMill/regalloc.scm 694 */
														{	/* SawMill/regalloc.scm 700 */
															obj_t BgL_arg2409z00_3106;

															BgL_arg2409z00_3106 = CDR(BgL_insz00_3089);
															((((BgL_blockz00_bglt) COBJECT(
																			((BgL_blockz00_bglt) BgL_bz00_3085)))->
																	BgL_firstz00) =
																((obj_t) ((obj_t) BgL_arg2409z00_3106)),
																BUNSPEC);
														}
														{
															long BgL_nz00_8263;
															obj_t BgL_insz00_8261;

															BgL_insz00_8261 = CDR(BgL_insz00_3089);
															BgL_nz00_8263 = (1L + BgL_nz00_3091);
															BgL_nz00_3091 = BgL_nz00_8263;
															BgL_insz00_3089 = BgL_insz00_8261;
															goto BgL_zc3z04anonymousza32395ze3z87_3092;
														}
													}
											}
									}
								else
									{
										obj_t BgL_prevz00_8267;
										obj_t BgL_insz00_8265;

										BgL_insz00_8265 = CDR(BgL_insz00_3089);
										BgL_prevz00_8267 = BgL_insz00_3089;
										BgL_prevz00_3090 = BgL_prevz00_8267;
										BgL_insz00_3089 = BgL_insz00_8265;
										goto BgL_zc3z04anonymousza32395ze3z87_3092;
									}
							}
						else
							{	/* SawMill/regalloc.scm 687 */
								return BgL_nz00_3091;
							}
					}
				}
			}
		}

	}



/* funcall-spill! */
	obj_t BGl_funcallzd2spillz12zc0zzsaw_registerzd2allocationzd2(obj_t
		BgL_hregsz00_103, obj_t BgL_blocksz00_104)
	{
		{	/* SawMill/regalloc.scm 715 */
			{
				obj_t BgL_bz00_3154;

				if (NULLP(BgL_hregsz00_103))
					{	/* SawMill/regalloc.scm 734 */
						return BgL_blocksz00_104;
					}
				else
					{
						obj_t BgL_l1731z00_3120;

						{	/* SawMill/regalloc.scm 736 */
							bool_t BgL_tmpz00_8270;

							BgL_l1731z00_3120 = BgL_blocksz00_104;
						BgL_zc3z04anonymousza32417ze3z87_3121:
							if (PAIRP(BgL_l1731z00_3120))
								{	/* SawMill/regalloc.scm 736 */
									BgL_bz00_3154 = CAR(BgL_l1731z00_3120);
									{	/* SawMill/regalloc.scm 733 */
										obj_t BgL_g1730z00_3157;

										BgL_g1730z00_3157 =
											(((BgL_blockz00_bglt) COBJECT(
													((BgL_blockz00_bglt) BgL_bz00_3154)))->BgL_firstz00);
										{
											obj_t BgL_l1728z00_3159;

											BgL_l1728z00_3159 = BgL_g1730z00_3157;
										BgL_zc3z04anonymousza32440ze3z87_3160:
											if (PAIRP(BgL_l1728z00_3159))
												{	/* SawMill/regalloc.scm 733 */
													{	/* SawMill/regalloc.scm 733 */
														obj_t BgL_arg2443z00_3162;

														BgL_arg2443z00_3162 = CAR(BgL_l1728z00_3159);
														BGl_inszd2funcallzd2spillz12ze70zf5zzsaw_registerzd2allocationzd2
															(((BgL_rtl_insz00_bglt) BgL_arg2443z00_3162));
													}
													{
														obj_t BgL_l1728z00_8280;

														BgL_l1728z00_8280 = CDR(BgL_l1728z00_3159);
														BgL_l1728z00_3159 = BgL_l1728z00_8280;
														goto BgL_zc3z04anonymousza32440ze3z87_3160;
													}
												}
											else
												{	/* SawMill/regalloc.scm 733 */
													((bool_t) 1);
												}
										}
									}
									{
										obj_t BgL_l1731z00_8283;

										BgL_l1731z00_8283 = CDR(BgL_l1731z00_3120);
										BgL_l1731z00_3120 = BgL_l1731z00_8283;
										goto BgL_zc3z04anonymousza32417ze3z87_3121;
									}
								}
							else
								{	/* SawMill/regalloc.scm 736 */
									BgL_tmpz00_8270 = ((bool_t) 1);
								}
							return BBOOL(BgL_tmpz00_8270);
						}
					}
			}
		}

	}



/* ins-funcall-spill!~0 */
	bool_t
		BGl_inszd2funcallzd2spillz12ze70zf5zzsaw_registerzd2allocationzd2
		(BgL_rtl_insz00_bglt BgL_iz00_3129)
	{
		{	/* SawMill/regalloc.scm 730 */
			{	/* SawMill/regalloc.scm 721 */
				obj_t BgL_aspillz00_3132;

				{	/* SawMill/regalloc.scm 722 */
					obj_t BgL_arg2427z00_3135;

					{
						BgL_rtl_inszf2razf2_bglt BgL_auxz00_8286;

						{
							obj_t BgL_auxz00_8287;

							{	/* SawMill/regalloc.scm 721 */
								BgL_objectz00_bglt BgL_tmpz00_8288;

								BgL_tmpz00_8288 = ((BgL_objectz00_bglt) BgL_iz00_3129);
								BgL_auxz00_8287 = BGL_OBJECT_WIDENING(BgL_tmpz00_8288);
							}
							BgL_auxz00_8286 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8287);
						}
						BgL_arg2427z00_3135 =
							(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8286))->
							BgL_outz00);
					}
					{	/* SawMill/regalloc.scm 723 */
						obj_t BgL_zc3z04anonymousza32428ze3z87_5517;

						BgL_zc3z04anonymousza32428ze3z87_5517 =
							MAKE_FX_PROCEDURE
							(BGl_z62zc3z04anonymousza32428ze3ze5zzsaw_registerzd2allocationzd2,
							(int) (1L), (int) (1L));
						PROCEDURE_SET(BgL_zc3z04anonymousza32428ze3z87_5517, (int) (0L),
							((obj_t) BgL_iz00_3129));
						BgL_aspillz00_3132 =
							BGl_regsetzd2filterzd2zzsaw_regsetz00
							(BgL_zc3z04anonymousza32428ze3z87_5517,
							((BgL_regsetz00_bglt) BgL_arg2427z00_3135));
				}}
				if (NULLP(BgL_aspillz00_3132))
					{	/* SawMill/regalloc.scm 728 */
						BFALSE;
					}
				else
					{	/* SawMill/regalloc.scm 729 */
						obj_t BgL_vz00_4893;

						BgL_vz00_4893 = BgL_aspillz00_3132;
						((((BgL_rtl_insz00_bglt) COBJECT(
										((BgL_rtl_insz00_bglt) BgL_iz00_3129)))->BgL_z52spillz52) =
							((obj_t) BgL_vz00_4893), BUNSPEC);
					}
			}
			{	/* SawMill/regalloc.scm 730 */
				obj_t BgL_g1727z00_3146;

				BgL_g1727z00_3146 =
					(((BgL_rtl_insz00_bglt) COBJECT(
							((BgL_rtl_insz00_bglt) BgL_iz00_3129)))->BgL_argsz00);
				{
					obj_t BgL_l1725z00_3148;

					BgL_l1725z00_3148 = BgL_g1727z00_3146;
				BgL_zc3z04anonymousza32435ze3z87_3149:
					if (PAIRP(BgL_l1725z00_3148))
						{	/* SawMill/regalloc.scm 730 */
							{	/* SawMill/regalloc.scm 730 */
								obj_t BgL_arg2437z00_3151;

								BgL_arg2437z00_3151 = CAR(BgL_l1725z00_3148);
								{	/* SawMill/regalloc.scm 717 */
									bool_t BgL_test3149z00_8310;

									{	/* SawMill/regalloc.scm 717 */
										obj_t BgL_classz00_4896;

										BgL_classz00_4896 = BGl_rtl_insz00zzsaw_defsz00;
										if (BGL_OBJECTP(BgL_arg2437z00_3151))
											{	/* SawMill/regalloc.scm 717 */
												BgL_objectz00_bglt BgL_arg1801z00_4898;

												BgL_arg1801z00_4898 =
													(BgL_objectz00_bglt) (BgL_arg2437z00_3151);
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* SawMill/regalloc.scm 717 */
														long BgL_idxz00_4904;

														BgL_idxz00_4904 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4898);
														BgL_test3149z00_8310 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_4904 + 1L)) == BgL_classz00_4896);
													}
												else
													{	/* SawMill/regalloc.scm 717 */
														bool_t BgL_res2774z00_4926;

														{	/* SawMill/regalloc.scm 717 */
															obj_t BgL_oclassz00_4912;

															{	/* SawMill/regalloc.scm 717 */
																long BgL_arg1808z00_4918;

																{	/* SawMill/regalloc.scm 717 */
																	long BgL_arg1809z00_4919;

																	BgL_arg1809z00_4919 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4898);
																	BgL_arg1808z00_4918 =
																		(BgL_arg1809z00_4919 - OBJECT_TYPE);
																}
																BgL_oclassz00_4912 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_4918);
															}
															{	/* SawMill/regalloc.scm 717 */
																bool_t BgL__ortest_1115z00_4913;

																BgL__ortest_1115z00_4913 =
																	(BgL_classz00_4896 == BgL_oclassz00_4912);
																if (BgL__ortest_1115z00_4913)
																	{	/* SawMill/regalloc.scm 717 */
																		BgL_res2774z00_4926 =
																			BgL__ortest_1115z00_4913;
																	}
																else
																	{	/* SawMill/regalloc.scm 717 */
																		long BgL_odepthz00_4914;

																		BgL_odepthz00_4914 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_4912);
																		if ((1L < BgL_odepthz00_4914))
																			{	/* SawMill/regalloc.scm 717 */
																				obj_t BgL_arg1797z00_4916;

																				BgL_arg1797z00_4916 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_4912, 1L);
																				BgL_res2774z00_4926 =
																					(BgL_arg1797z00_4916 ==
																					BgL_classz00_4896);
																			}
																		else
																			{	/* SawMill/regalloc.scm 717 */
																				BgL_res2774z00_4926 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test3149z00_8310 = BgL_res2774z00_4926;
													}
											}
										else
											{	/* SawMill/regalloc.scm 717 */
												BgL_test3149z00_8310 = ((bool_t) 0);
											}
									}
									if (BgL_test3149z00_8310)
										{	/* SawMill/regalloc.scm 717 */
											BGl_inszd2funcallzd2spillz12ze70zf5zzsaw_registerzd2allocationzd2
												(((BgL_rtl_insz00_bglt) BgL_arg2437z00_3151));
										}
									else
										{	/* SawMill/regalloc.scm 717 */
											((bool_t) 0);
										}
								}
							}
							{
								obj_t BgL_l1725z00_8332;

								BgL_l1725z00_8332 = CDR(BgL_l1725z00_3148);
								BgL_l1725z00_3148 = BgL_l1725z00_8332;
								goto BgL_zc3z04anonymousza32435ze3z87_3149;
							}
						}
					else
						{	/* SawMill/regalloc.scm 730 */
							return ((bool_t) 1);
						}
				}
			}
		}

	}



/* &<@anonymous:2428> */
	obj_t BGl_z62zc3z04anonymousza32428ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5518, obj_t BgL_rz00_5520)
	{
		{	/* SawMill/regalloc.scm 722 */
			{	/* SawMill/regalloc.scm 723 */
				BgL_rtl_insz00_bglt BgL_i1261z00_5519;

				BgL_i1261z00_5519 =
					((BgL_rtl_insz00_bglt) PROCEDURE_REF(BgL_envz00_5518, (int) (0L)));
				{	/* SawMill/regalloc.scm 723 */
					bool_t BgL_tmpz00_8337;

					{	/* SawMill/regalloc.scm 723 */
						bool_t BgL_test3154z00_8338;

						{	/* SawMill/regalloc.scm 723 */
							obj_t BgL_arg2434z00_5675;

							{
								BgL_rtl_inszf2razf2_bglt BgL_auxz00_8339;

								{
									obj_t BgL_auxz00_8340;

									{	/* SawMill/regalloc.scm 723 */
										BgL_objectz00_bglt BgL_tmpz00_8341;

										BgL_tmpz00_8341 = ((BgL_objectz00_bglt) BgL_i1261z00_5519);
										BgL_auxz00_8340 = BGL_OBJECT_WIDENING(BgL_tmpz00_8341);
									}
									BgL_auxz00_8339 =
										((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8340);
								}
								BgL_arg2434z00_5675 =
									(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8339))->
									BgL_defz00);
							}
							BgL_test3154z00_8338 =
								BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
								((BgL_rtl_regz00_bglt) BgL_rz00_5520),
								((BgL_regsetz00_bglt) BgL_arg2434z00_5675));
						}
						if (BgL_test3154z00_8338)
							{	/* SawMill/regalloc.scm 723 */
								BgL_tmpz00_8337 = ((bool_t) 0);
							}
						else
							{	/* SawMill/regalloc.scm 725 */
								bool_t BgL_test3155z00_8349;

								{	/* SawMill/regalloc.scm 725 */
									obj_t BgL_arg2432z00_5676;

									{
										BgL_rtl_regzf2razf2_bglt BgL_auxz00_8350;

										{
											obj_t BgL_auxz00_8351;

											{	/* SawMill/regalloc.scm 725 */
												BgL_objectz00_bglt BgL_tmpz00_8352;

												BgL_tmpz00_8352 =
													((BgL_objectz00_bglt)
													((BgL_rtl_regz00_bglt) BgL_rz00_5520));
												BgL_auxz00_8351 = BGL_OBJECT_WIDENING(BgL_tmpz00_8352);
											}
											BgL_auxz00_8350 =
												((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_8351);
										}
										BgL_arg2432z00_5676 =
											(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_8350))->
											BgL_colorz00);
									}
									{	/* SawMill/regalloc.scm 725 */
										obj_t BgL_classz00_5677;

										BgL_classz00_5677 = BGl_rtl_regz00zzsaw_defsz00;
										if (BGL_OBJECTP(BgL_arg2432z00_5676))
											{	/* SawMill/regalloc.scm 725 */
												BgL_objectz00_bglt BgL_arg1801z00_5678;

												BgL_arg1801z00_5678 =
													(BgL_objectz00_bglt) (BgL_arg2432z00_5676);
												if (BGL_CONDEXPAND_ISA_ARCH64())
													{	/* SawMill/regalloc.scm 725 */
														long BgL_idxz00_5679;

														BgL_idxz00_5679 =
															BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_5678);
														BgL_test3155z00_8349 =
															(VECTOR_REF
															(BGl_za2inheritancesza2z00zz__objectz00,
																(BgL_idxz00_5679 + 1L)) == BgL_classz00_5677);
													}
												else
													{	/* SawMill/regalloc.scm 725 */
														bool_t BgL_res2773z00_5682;

														{	/* SawMill/regalloc.scm 725 */
															obj_t BgL_oclassz00_5683;

															{	/* SawMill/regalloc.scm 725 */
																long BgL_arg1808z00_5684;

																{	/* SawMill/regalloc.scm 725 */
																	long BgL_arg1809z00_5685;

																	BgL_arg1809z00_5685 =
																		BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_5678);
																	BgL_arg1808z00_5684 =
																		(BgL_arg1809z00_5685 - OBJECT_TYPE);
																}
																BgL_oclassz00_5683 =
																	VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
																	BgL_arg1808z00_5684);
															}
															{	/* SawMill/regalloc.scm 725 */
																bool_t BgL__ortest_1115z00_5686;

																BgL__ortest_1115z00_5686 =
																	(BgL_classz00_5677 == BgL_oclassz00_5683);
																if (BgL__ortest_1115z00_5686)
																	{	/* SawMill/regalloc.scm 725 */
																		BgL_res2773z00_5682 =
																			BgL__ortest_1115z00_5686;
																	}
																else
																	{	/* SawMill/regalloc.scm 725 */
																		long BgL_odepthz00_5687;

																		BgL_odepthz00_5687 =
																			BGL_CLASS_DEPTH(BgL_oclassz00_5683);
																		if ((1L < BgL_odepthz00_5687))
																			{	/* SawMill/regalloc.scm 725 */
																				obj_t BgL_arg1797z00_5688;

																				BgL_arg1797z00_5688 =
																					BGL_CLASS_ANCESTORS_REF
																					(BgL_oclassz00_5683, 1L);
																				BgL_res2773z00_5682 =
																					(BgL_arg1797z00_5688 ==
																					BgL_classz00_5677);
																			}
																		else
																			{	/* SawMill/regalloc.scm 725 */
																				BgL_res2773z00_5682 = ((bool_t) 0);
																			}
																	}
															}
														}
														BgL_test3155z00_8349 = BgL_res2773z00_5682;
													}
											}
										else
											{	/* SawMill/regalloc.scm 725 */
												BgL_test3155z00_8349 = ((bool_t) 0);
											}
									}
								}
								if (BgL_test3155z00_8349)
									{	/* SawMill/regalloc.scm 726 */
										obj_t BgL_arg2429z00_5689;
										obj_t BgL_arg2430z00_5690;

										{
											BgL_rtl_regzf2razf2_bglt BgL_auxz00_8377;

											{
												obj_t BgL_auxz00_8378;

												{	/* SawMill/regalloc.scm 726 */
													BgL_objectz00_bglt BgL_tmpz00_8379;

													BgL_tmpz00_8379 =
														((BgL_objectz00_bglt)
														((BgL_rtl_regz00_bglt) BgL_rz00_5520));
													BgL_auxz00_8378 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_8379);
												}
												BgL_auxz00_8377 =
													((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_8378);
											}
											BgL_arg2429z00_5689 =
												(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_8377))->
												BgL_colorz00);
										}
										{
											BgL_rtl_inszf2razf2_bglt BgL_auxz00_8385;

											{
												obj_t BgL_auxz00_8386;

												{	/* SawMill/regalloc.scm 726 */
													BgL_objectz00_bglt BgL_tmpz00_8387;

													BgL_tmpz00_8387 =
														((BgL_objectz00_bglt) BgL_i1261z00_5519);
													BgL_auxz00_8386 =
														BGL_OBJECT_WIDENING(BgL_tmpz00_8387);
												}
												BgL_auxz00_8385 =
													((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8386);
											}
											BgL_arg2430z00_5690 =
												(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8385))->
												BgL_spillz00);
										}
										BgL_tmpz00_8337 =
											BGl_regsetzd2memberzf3z21zzsaw_regsetz00(
											((BgL_rtl_regz00_bglt) BgL_arg2429z00_5689),
											((BgL_regsetz00_bglt) BgL_arg2430z00_5690));
									}
								else
									{	/* SawMill/regalloc.scm 725 */
										BgL_tmpz00_8337 = ((bool_t) 0);
									}
							}
					}
					return BBOOL(BgL_tmpz00_8337);
				}
			}
		}

	}



/* cleanup-move-tree! */
	bool_t BGl_cleanupzd2movezd2treez12z12zzsaw_registerzd2allocationzd2(obj_t
		BgL_blocksz00_105)
	{
		{	/* SawMill/regalloc.scm 743 */
			{
				obj_t BgL_iz00_3207;
				obj_t BgL_bz00_3226;

				{
					obj_t BgL_l1748z00_3173;

					BgL_l1748z00_3173 = BgL_blocksz00_105;
				BgL_zc3z04anonymousza32445ze3z87_3174:
					if (PAIRP(BgL_l1748z00_3173))
						{	/* SawMill/regalloc.scm 767 */
							BgL_bz00_3226 = CAR(BgL_l1748z00_3173);
							{	/* SawMill/regalloc.scm 765 */
								obj_t BgL_g1747z00_3229;

								BgL_g1747z00_3229 =
									(((BgL_blockz00_bglt) COBJECT(
											((BgL_blockz00_bglt) BgL_bz00_3226)))->BgL_firstz00);
								{
									obj_t BgL_l1745z00_3231;

									BgL_l1745z00_3231 = BgL_g1747z00_3229;
								BgL_zc3z04anonymousza32479ze3z87_3232:
									if (PAIRP(BgL_l1745z00_3231))
										{	/* SawMill/regalloc.scm 765 */
											BgL_iz00_3207 = CAR(BgL_l1745z00_3231);
											{
												obj_t BgL_auxz00_8402;

												{	/* SawMill/regalloc.scm 760 */
													obj_t BgL_l1739z00_3210;

													BgL_l1739z00_3210 =
														(((BgL_rtl_insz00_bglt) COBJECT(
																((BgL_rtl_insz00_bglt) BgL_iz00_3207)))->
														BgL_argsz00);
													if (NULLP(BgL_l1739z00_3210))
														{	/* SawMill/regalloc.scm 760 */
															BgL_auxz00_8402 = BNIL;
														}
													else
														{	/* SawMill/regalloc.scm 760 */
															obj_t BgL_head1741z00_3212;

															{	/* SawMill/regalloc.scm 760 */
																obj_t BgL_arg2475z00_3224;

																{	/* SawMill/regalloc.scm 760 */
																	obj_t BgL_arg2477z00_3225;

																	BgL_arg2477z00_3225 = CAR(BgL_l1739z00_3210);
																	BgL_arg2475z00_3224 =
																		BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
																		(BgL_arg2477z00_3225);
																}
																BgL_head1741z00_3212 =
																	MAKE_YOUNG_PAIR(BgL_arg2475z00_3224, BNIL);
															}
															{	/* SawMill/regalloc.scm 760 */
																obj_t BgL_g1744z00_3213;

																BgL_g1744z00_3213 = CDR(BgL_l1739z00_3210);
																{
																	obj_t BgL_l1739z00_3215;
																	obj_t BgL_tail1742z00_3216;

																	BgL_l1739z00_3215 = BgL_g1744z00_3213;
																	BgL_tail1742z00_3216 = BgL_head1741z00_3212;
																BgL_zc3z04anonymousza32470ze3z87_3217:
																	if (NULLP(BgL_l1739z00_3215))
																		{	/* SawMill/regalloc.scm 760 */
																			BgL_auxz00_8402 = BgL_head1741z00_3212;
																		}
																	else
																		{	/* SawMill/regalloc.scm 760 */
																			obj_t BgL_newtail1743z00_3219;

																			{	/* SawMill/regalloc.scm 760 */
																				obj_t BgL_arg2473z00_3221;

																				{	/* SawMill/regalloc.scm 760 */
																					obj_t BgL_arg2474z00_3222;

																					BgL_arg2474z00_3222 =
																						CAR(((obj_t) BgL_l1739z00_3215));
																					BgL_arg2473z00_3221 =
																						BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
																						(BgL_arg2474z00_3222);
																				}
																				BgL_newtail1743z00_3219 =
																					MAKE_YOUNG_PAIR(BgL_arg2473z00_3221,
																					BNIL);
																			}
																			SET_CDR(BgL_tail1742z00_3216,
																				BgL_newtail1743z00_3219);
																			{	/* SawMill/regalloc.scm 760 */
																				obj_t BgL_arg2472z00_3220;

																				BgL_arg2472z00_3220 =
																					CDR(((obj_t) BgL_l1739z00_3215));
																				{
																					obj_t BgL_tail1742z00_8422;
																					obj_t BgL_l1739z00_8421;

																					BgL_l1739z00_8421 =
																						BgL_arg2472z00_3220;
																					BgL_tail1742z00_8422 =
																						BgL_newtail1743z00_3219;
																					BgL_tail1742z00_3216 =
																						BgL_tail1742z00_8422;
																					BgL_l1739z00_3215 = BgL_l1739z00_8421;
																					goto
																						BgL_zc3z04anonymousza32470ze3z87_3217;
																				}
																			}
																		}
																}
															}
														}
												}
												((((BgL_rtl_insz00_bglt) COBJECT(
																((BgL_rtl_insz00_bglt) BgL_iz00_3207)))->
														BgL_argsz00) = ((obj_t) BgL_auxz00_8402), BUNSPEC);
											}
											BgL_iz00_3207;
											{
												obj_t BgL_l1745z00_8425;

												BgL_l1745z00_8425 = CDR(BgL_l1745z00_3231);
												BgL_l1745z00_3231 = BgL_l1745z00_8425;
												goto BgL_zc3z04anonymousza32479ze3z87_3232;
											}
										}
									else
										{	/* SawMill/regalloc.scm 765 */
											((bool_t) 1);
										}
								}
							}
							{
								obj_t BgL_l1748z00_8428;

								BgL_l1748z00_8428 = CDR(BgL_l1748z00_3173);
								BgL_l1748z00_3173 = BgL_l1748z00_8428;
								goto BgL_zc3z04anonymousza32445ze3z87_3174;
							}
						}
					else
						{	/* SawMill/regalloc.scm 767 */
							return ((bool_t) 1);
						}
				}
			}
		}

	}



/* args-cleanup-move-tree!~0 */
	obj_t
		BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
		(obj_t BgL_az00_3183)
	{
		{	/* SawMill/regalloc.scm 756 */
			{	/* SawMill/regalloc.scm 750 */
				bool_t BgL_test3164z00_8430;

				{	/* SawMill/regalloc.scm 750 */
					obj_t BgL_classz00_4932;

					BgL_classz00_4932 = BGl_rtl_insz00zzsaw_defsz00;
					if (BGL_OBJECTP(BgL_az00_3183))
						{	/* SawMill/regalloc.scm 750 */
							BgL_objectz00_bglt BgL_arg1801z00_4934;

							BgL_arg1801z00_4934 = (BgL_objectz00_bglt) (BgL_az00_3183);
							if (BGL_CONDEXPAND_ISA_ARCH64())
								{	/* SawMill/regalloc.scm 750 */
									long BgL_idxz00_4940;

									BgL_idxz00_4940 =
										BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4934);
									BgL_test3164z00_8430 =
										(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
											(BgL_idxz00_4940 + 1L)) == BgL_classz00_4932);
								}
							else
								{	/* SawMill/regalloc.scm 750 */
									bool_t BgL_res2775z00_4962;

									{	/* SawMill/regalloc.scm 750 */
										obj_t BgL_oclassz00_4948;

										{	/* SawMill/regalloc.scm 750 */
											long BgL_arg1808z00_4954;

											{	/* SawMill/regalloc.scm 750 */
												long BgL_arg1809z00_4955;

												BgL_arg1809z00_4955 =
													BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4934);
												BgL_arg1808z00_4954 =
													(BgL_arg1809z00_4955 - OBJECT_TYPE);
											}
											BgL_oclassz00_4948 =
												VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
												BgL_arg1808z00_4954);
										}
										{	/* SawMill/regalloc.scm 750 */
											bool_t BgL__ortest_1115z00_4949;

											BgL__ortest_1115z00_4949 =
												(BgL_classz00_4932 == BgL_oclassz00_4948);
											if (BgL__ortest_1115z00_4949)
												{	/* SawMill/regalloc.scm 750 */
													BgL_res2775z00_4962 = BgL__ortest_1115z00_4949;
												}
											else
												{	/* SawMill/regalloc.scm 750 */
													long BgL_odepthz00_4950;

													BgL_odepthz00_4950 =
														BGL_CLASS_DEPTH(BgL_oclassz00_4948);
													if ((1L < BgL_odepthz00_4950))
														{	/* SawMill/regalloc.scm 750 */
															obj_t BgL_arg1797z00_4952;

															BgL_arg1797z00_4952 =
																BGL_CLASS_ANCESTORS_REF(BgL_oclassz00_4948, 1L);
															BgL_res2775z00_4962 =
																(BgL_arg1797z00_4952 == BgL_classz00_4932);
														}
													else
														{	/* SawMill/regalloc.scm 750 */
															BgL_res2775z00_4962 = ((bool_t) 0);
														}
												}
										}
									}
									BgL_test3164z00_8430 = BgL_res2775z00_4962;
								}
						}
					else
						{	/* SawMill/regalloc.scm 750 */
							BgL_test3164z00_8430 = ((bool_t) 0);
						}
				}
				if (BgL_test3164z00_8430)
					{	/* SawMill/regalloc.scm 750 */
						{
							obj_t BgL_auxz00_8450;

							{	/* SawMill/regalloc.scm 752 */
								obj_t BgL_l1733z00_3187;

								BgL_l1733z00_3187 =
									(((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_az00_3183)))->BgL_argsz00);
								if (NULLP(BgL_l1733z00_3187))
									{	/* SawMill/regalloc.scm 752 */
										BgL_auxz00_8450 = BNIL;
									}
								else
									{	/* SawMill/regalloc.scm 752 */
										obj_t BgL_head1735z00_3189;

										{	/* SawMill/regalloc.scm 752 */
											obj_t BgL_arg2461z00_3201;

											{	/* SawMill/regalloc.scm 752 */
												obj_t BgL_arg2463z00_3202;

												BgL_arg2463z00_3202 = CAR(BgL_l1733z00_3187);
												BgL_arg2461z00_3201 =
													BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
													(BgL_arg2463z00_3202);
											}
											BgL_head1735z00_3189 =
												MAKE_YOUNG_PAIR(BgL_arg2461z00_3201, BNIL);
										}
										{	/* SawMill/regalloc.scm 752 */
											obj_t BgL_g1738z00_3190;

											BgL_g1738z00_3190 = CDR(BgL_l1733z00_3187);
											{
												obj_t BgL_l1733z00_3192;
												obj_t BgL_tail1736z00_3193;

												BgL_l1733z00_3192 = BgL_g1738z00_3190;
												BgL_tail1736z00_3193 = BgL_head1735z00_3189;
											BgL_zc3z04anonymousza32455ze3z87_3194:
												if (NULLP(BgL_l1733z00_3192))
													{	/* SawMill/regalloc.scm 752 */
														BgL_auxz00_8450 = BgL_head1735z00_3189;
													}
												else
													{	/* SawMill/regalloc.scm 752 */
														obj_t BgL_newtail1737z00_3196;

														{	/* SawMill/regalloc.scm 752 */
															obj_t BgL_arg2458z00_3198;

															{	/* SawMill/regalloc.scm 752 */
																obj_t BgL_arg2460z00_3199;

																BgL_arg2460z00_3199 =
																	CAR(((obj_t) BgL_l1733z00_3192));
																BgL_arg2458z00_3198 =
																	BGl_argszd2cleanupzd2movezd2treez12ze70z27zzsaw_registerzd2allocationzd2
																	(BgL_arg2460z00_3199);
															}
															BgL_newtail1737z00_3196 =
																MAKE_YOUNG_PAIR(BgL_arg2458z00_3198, BNIL);
														}
														SET_CDR(BgL_tail1736z00_3193,
															BgL_newtail1737z00_3196);
														{	/* SawMill/regalloc.scm 752 */
															obj_t BgL_arg2457z00_3197;

															BgL_arg2457z00_3197 =
																CDR(((obj_t) BgL_l1733z00_3192));
															{
																obj_t BgL_tail1736z00_8470;
																obj_t BgL_l1733z00_8469;

																BgL_l1733z00_8469 = BgL_arg2457z00_3197;
																BgL_tail1736z00_8470 = BgL_newtail1737z00_3196;
																BgL_tail1736z00_3193 = BgL_tail1736z00_8470;
																BgL_l1733z00_3192 = BgL_l1733z00_8469;
																goto BgL_zc3z04anonymousza32455ze3z87_3194;
															}
														}
													}
											}
										}
									}
							}
							((((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_az00_3183)))->BgL_argsz00) =
								((obj_t) BgL_auxz00_8450), BUNSPEC);
						}
						{	/* SawMill/regalloc.scm 753 */
							bool_t BgL_test3171z00_8472;

							{	/* SawMill/regalloc.scm 753 */
								BgL_rtl_funz00_bglt BgL_arg2467z00_3206;

								BgL_arg2467z00_3206 =
									(((BgL_rtl_insz00_bglt) COBJECT(
											((BgL_rtl_insz00_bglt) BgL_az00_3183)))->BgL_funz00);
								{	/* SawMill/regalloc.scm 753 */
									obj_t BgL_classz00_4968;

									BgL_classz00_4968 = BGl_rtl_movz00zzsaw_defsz00;
									{	/* SawMill/regalloc.scm 753 */
										BgL_objectz00_bglt BgL_arg1801z00_4970;

										{	/* SawMill/regalloc.scm 753 */
											obj_t BgL_tmpz00_8475;

											BgL_tmpz00_8475 =
												((obj_t) ((BgL_objectz00_bglt) BgL_arg2467z00_3206));
											BgL_arg1801z00_4970 =
												(BgL_objectz00_bglt) (BgL_tmpz00_8475);
										}
										if (BGL_CONDEXPAND_ISA_ARCH64())
											{	/* SawMill/regalloc.scm 753 */
												long BgL_idxz00_4976;

												BgL_idxz00_4976 =
													BGL_OBJECT_INHERITANCE_NUM(BgL_arg1801z00_4970);
												BgL_test3171z00_8472 =
													(VECTOR_REF(BGl_za2inheritancesza2z00zz__objectz00,
														(BgL_idxz00_4976 + 3L)) == BgL_classz00_4968);
											}
										else
											{	/* SawMill/regalloc.scm 753 */
												bool_t BgL_res2776z00_4998;

												{	/* SawMill/regalloc.scm 753 */
													obj_t BgL_oclassz00_4984;

													{	/* SawMill/regalloc.scm 753 */
														long BgL_arg1808z00_4990;

														{	/* SawMill/regalloc.scm 753 */
															long BgL_arg1809z00_4991;

															BgL_arg1809z00_4991 =
																BGL_OBJECT_CLASS_NUM(BgL_arg1801z00_4970);
															BgL_arg1808z00_4990 =
																(BgL_arg1809z00_4991 - OBJECT_TYPE);
														}
														BgL_oclassz00_4984 =
															VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
															BgL_arg1808z00_4990);
													}
													{	/* SawMill/regalloc.scm 753 */
														bool_t BgL__ortest_1115z00_4985;

														BgL__ortest_1115z00_4985 =
															(BgL_classz00_4968 == BgL_oclassz00_4984);
														if (BgL__ortest_1115z00_4985)
															{	/* SawMill/regalloc.scm 753 */
																BgL_res2776z00_4998 = BgL__ortest_1115z00_4985;
															}
														else
															{	/* SawMill/regalloc.scm 753 */
																long BgL_odepthz00_4986;

																BgL_odepthz00_4986 =
																	BGL_CLASS_DEPTH(BgL_oclassz00_4984);
																if ((3L < BgL_odepthz00_4986))
																	{	/* SawMill/regalloc.scm 753 */
																		obj_t BgL_arg1797z00_4988;

																		BgL_arg1797z00_4988 =
																			BGL_CLASS_ANCESTORS_REF
																			(BgL_oclassz00_4984, 3L);
																		BgL_res2776z00_4998 =
																			(BgL_arg1797z00_4988 ==
																			BgL_classz00_4968);
																	}
																else
																	{	/* SawMill/regalloc.scm 753 */
																		BgL_res2776z00_4998 = ((bool_t) 0);
																	}
															}
													}
												}
												BgL_test3171z00_8472 = BgL_res2776z00_4998;
											}
									}
								}
							}
							if (BgL_test3171z00_8472)
								{	/* SawMill/regalloc.scm 754 */
									obj_t BgL_pairz00_4999;

									BgL_pairz00_4999 =
										(((BgL_rtl_insz00_bglt) COBJECT(
												((BgL_rtl_insz00_bglt) BgL_az00_3183)))->BgL_argsz00);
									return CAR(BgL_pairz00_4999);
								}
							else
								{	/* SawMill/regalloc.scm 753 */
									return BgL_az00_3183;
								}
						}
					}
				else
					{	/* SawMill/regalloc.scm 750 */
						return BgL_az00_3183;
					}
			}
		}

	}



/* use-register! */
	BgL_rtl_regz00_bglt
		BGl_usezd2registerz12zc0zzsaw_registerzd2allocationzd2(BgL_rtl_regz00_bglt
		BgL_regz00_106)
	{
		{	/* SawMill/regalloc.scm 776 */
			{
				int BgL_auxz00_8504;
				BgL_rtl_regzf2razf2_bglt BgL_auxz00_8498;

				{	/* SawMill/regalloc.scm 778 */
					int BgL_arg2483z00_3242;

					{
						BgL_rtl_regzf2razf2_bglt BgL_auxz00_8505;

						{
							obj_t BgL_auxz00_8506;

							{	/* SawMill/regalloc.scm 778 */
								BgL_objectz00_bglt BgL_tmpz00_8507;

								BgL_tmpz00_8507 = ((BgL_objectz00_bglt) BgL_regz00_106);
								BgL_auxz00_8506 = BGL_OBJECT_WIDENING(BgL_tmpz00_8507);
							}
							BgL_auxz00_8505 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_8506);
						}
						BgL_arg2483z00_3242 =
							(((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_8505))->
							BgL_occurrencesz00);
					}
					BgL_auxz00_8504 = (int) ((1L + (long) (BgL_arg2483z00_3242)));
				}
				{
					obj_t BgL_auxz00_8499;

					{	/* SawMill/regalloc.scm 778 */
						BgL_objectz00_bglt BgL_tmpz00_8500;

						BgL_tmpz00_8500 = ((BgL_objectz00_bglt) BgL_regz00_106);
						BgL_auxz00_8499 = BGL_OBJECT_WIDENING(BgL_tmpz00_8500);
					}
					BgL_auxz00_8498 = ((BgL_rtl_regzf2razf2_bglt) BgL_auxz00_8499);
				}
				((((BgL_rtl_regzf2razf2_bglt) COBJECT(BgL_auxz00_8498))->
						BgL_occurrencesz00) = ((int) BgL_auxz00_8504), BUNSPEC);
			}
			return BgL_regz00_106;
		}

	}



/* object-init */
	obj_t BGl_objectzd2initzd2zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			{	/* SawMill/regalloc.scm 34 */
				obj_t BgL_arg2490z00_3247;
				obj_t BgL_arg2492z00_3248;

				{	/* SawMill/regalloc.scm 34 */
					obj_t BgL_v1756z00_3274;

					BgL_v1756z00_3274 = create_vector(1L);
					{	/* SawMill/regalloc.scm 34 */
						obj_t BgL_arg2504z00_3275;

						BgL_arg2504z00_3275 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(0L),
							BGl_proc2835z00zzsaw_registerzd2allocationzd2,
							BGl_proc2834z00zzsaw_registerzd2allocationzd2, ((bool_t) 0),
							((bool_t) 0), BFALSE, BFALSE, CNST_TABLE_REF(1L));
						VECTOR_SET(BgL_v1756z00_3274, 0L, BgL_arg2504z00_3275);
					}
					BgL_arg2490z00_3247 = BgL_v1756z00_3274;
				}
				{	/* SawMill/regalloc.scm 34 */
					obj_t BgL_v1757z00_3285;

					BgL_v1757z00_3285 = create_vector(0L);
					BgL_arg2492z00_3248 = BgL_v1757z00_3285;
				}
				BGl_blockzf2razf2zzsaw_registerzd2allocationzd2 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(2L),
					CNST_TABLE_REF(3L), BGl_blockz00zzsaw_defsz00, 29229L,
					BGl_proc2839z00zzsaw_registerzd2allocationzd2,
					BGl_proc2838z00zzsaw_registerzd2allocationzd2, BFALSE,
					BGl_proc2837z00zzsaw_registerzd2allocationzd2,
					BGl_proc2836z00zzsaw_registerzd2allocationzd2, BgL_arg2490z00_3247,
					BgL_arg2492z00_3248);
			}
			{	/* SawMill/regalloc.scm 37 */
				obj_t BgL_arg2516z00_3294;
				obj_t BgL_arg2518z00_3295;

				{	/* SawMill/regalloc.scm 37 */
					obj_t BgL_v1758z00_3325;

					BgL_v1758z00_3325 = create_vector(4L);
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_arg2537z00_3326;

						BgL_arg2537z00_3326 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(4L),
							BGl_proc2842z00zzsaw_registerzd2allocationzd2,
							BGl_proc2841z00zzsaw_registerzd2allocationzd2, ((bool_t) 0),
							((bool_t) 0), BFALSE,
							BGl_proc2840z00zzsaw_registerzd2allocationzd2,
							CNST_TABLE_REF(5L));
						VECTOR_SET(BgL_v1758z00_3325, 0L, BgL_arg2537z00_3326);
					}
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_arg2545z00_3339;

						BgL_arg2545z00_3339 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(6L),
							BGl_proc2845z00zzsaw_registerzd2allocationzd2,
							BGl_proc2844z00zzsaw_registerzd2allocationzd2, ((bool_t) 0),
							((bool_t) 0), BFALSE,
							BGl_proc2843z00zzsaw_registerzd2allocationzd2,
							CNST_TABLE_REF(5L));
						VECTOR_SET(BgL_v1758z00_3325, 1L, BgL_arg2545z00_3339);
					}
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_arg2553z00_3352;

						BgL_arg2553z00_3352 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(7L),
							BGl_proc2848z00zzsaw_registerzd2allocationzd2,
							BGl_proc2847z00zzsaw_registerzd2allocationzd2, ((bool_t) 0),
							((bool_t) 0), BFALSE,
							BGl_proc2846z00zzsaw_registerzd2allocationzd2,
							CNST_TABLE_REF(5L));
						VECTOR_SET(BgL_v1758z00_3325, 2L, BgL_arg2553z00_3352);
					}
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_arg2565z00_3365;

						BgL_arg2565z00_3365 =
							BGl_makezd2classzd2fieldz00zz__objectz00(CNST_TABLE_REF(8L),
							BGl_proc2851z00zzsaw_registerzd2allocationzd2,
							BGl_proc2850z00zzsaw_registerzd2allocationzd2, ((bool_t) 0),
							((bool_t) 0), BFALSE,
							BGl_proc2849z00zzsaw_registerzd2allocationzd2,
							CNST_TABLE_REF(5L));
						VECTOR_SET(BgL_v1758z00_3325, 3L, BgL_arg2565z00_3365);
					}
					BgL_arg2516z00_3294 = BgL_v1758z00_3325;
				}
				{	/* SawMill/regalloc.scm 37 */
					obj_t BgL_v1759z00_3378;

					BgL_v1759z00_3378 = create_vector(0L);
					BgL_arg2518z00_3295 = BgL_v1759z00_3378;
				}
				return (BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2 =
					BGl_registerzd2classz12zc0zz__objectz00(CNST_TABLE_REF(9L),
						CNST_TABLE_REF(3L), BGl_rtl_insz00zzsaw_defsz00, 22325L,
						BGl_proc2855z00zzsaw_registerzd2allocationzd2,
						BGl_proc2854z00zzsaw_registerzd2allocationzd2, BFALSE,
						BGl_proc2853z00zzsaw_registerzd2allocationzd2,
						BGl_proc2852z00zzsaw_registerzd2allocationzd2, BgL_arg2516z00_3294,
						BgL_arg2518z00_3295), BUNSPEC);
			}
		}

	}



/* &lambda2529 */
	BgL_rtl_insz00_bglt BGl_z62lambda2529z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5543, obj_t BgL_o1176z00_5544)
	{
		{	/* SawMill/regalloc.scm 37 */
			{	/* SawMill/regalloc.scm 37 */
				long BgL_arg2531z00_5692;

				{	/* SawMill/regalloc.scm 37 */
					obj_t BgL_arg2532z00_5693;

					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_arg2535z00_5694;

						{	/* SawMill/regalloc.scm 37 */
							long BgL_arg1808z00_5695;

							{	/* SawMill/regalloc.scm 37 */
								long BgL_arg1809z00_5696;

								BgL_arg1809z00_5696 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_rtl_insz00_bglt) BgL_o1176z00_5544)));
								BgL_arg1808z00_5695 = (BgL_arg1809z00_5696 - OBJECT_TYPE);
							}
							BgL_arg2535z00_5694 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_5695);
						}
						BgL_arg2532z00_5693 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg2535z00_5694);
					}
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_tmpz00_8552;

						BgL_tmpz00_8552 = ((obj_t) BgL_arg2532z00_5693);
						BgL_arg2531z00_5692 = BGL_CLASS_NUM(BgL_tmpz00_8552);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_rtl_insz00_bglt) BgL_o1176z00_5544)), BgL_arg2531z00_5692);
			}
			{	/* SawMill/regalloc.scm 37 */
				BgL_objectz00_bglt BgL_tmpz00_8558;

				BgL_tmpz00_8558 =
					((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1176z00_5544));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8558, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1176z00_5544));
			return ((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1176z00_5544));
		}

	}



/* &<@anonymous:2528> */
	obj_t BGl_z62zc3z04anonymousza32528ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5545, obj_t BgL_new1175z00_5546)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_insz00_bglt BgL_auxz00_8566;

				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt)
									((BgL_rtl_insz00_bglt) BgL_new1175z00_5546))))->BgL_locz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				((((BgL_rtl_insz00_bglt)
							COBJECT(((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
										BgL_new1175z00_5546))))->BgL_z52spillz52) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_rtl_insz00_bglt)
							COBJECT(((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt)
										BgL_new1175z00_5546))))->BgL_destz00) =
					((obj_t) BUNSPEC), BUNSPEC);
				{
					BgL_rtl_funz00_bglt BgL_auxz00_8576;

					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_classz00_5698;

						BgL_classz00_5698 = BGl_rtl_funz00zzsaw_defsz00;
						{	/* SawMill/regalloc.scm 37 */
							obj_t BgL__ortest_1117z00_5699;

							BgL__ortest_1117z00_5699 = BGL_CLASS_NIL(BgL_classz00_5698);
							if (CBOOL(BgL__ortest_1117z00_5699))
								{	/* SawMill/regalloc.scm 37 */
									BgL_auxz00_8576 =
										((BgL_rtl_funz00_bglt) BgL__ortest_1117z00_5699);
								}
							else
								{	/* SawMill/regalloc.scm 37 */
									BgL_auxz00_8576 =
										((BgL_rtl_funz00_bglt)
										BGl_classzd2nilzd2initz12z12zz__objectz00
										(BgL_classz00_5698));
								}
						}
					}
					((((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt)
										((BgL_rtl_insz00_bglt) BgL_new1175z00_5546))))->
							BgL_funz00) = ((BgL_rtl_funz00_bglt) BgL_auxz00_8576), BUNSPEC);
				}
				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt)
									((BgL_rtl_insz00_bglt) BgL_new1175z00_5546))))->BgL_argsz00) =
					((obj_t) BNIL), BUNSPEC);
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8589;

					{
						obj_t BgL_auxz00_8590;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8591;

							BgL_tmpz00_8591 =
								((BgL_objectz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_new1175z00_5546));
							BgL_auxz00_8590 = BGL_OBJECT_WIDENING(BgL_tmpz00_8591);
						}
						BgL_auxz00_8589 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8590);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8589))->BgL_defz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8597;

					{
						obj_t BgL_auxz00_8598;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8599;

							BgL_tmpz00_8599 =
								((BgL_objectz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_new1175z00_5546));
							BgL_auxz00_8598 = BGL_OBJECT_WIDENING(BgL_tmpz00_8599);
						}
						BgL_auxz00_8597 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8598);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8597))->BgL_outz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8605;

					{
						obj_t BgL_auxz00_8606;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8607;

							BgL_tmpz00_8607 =
								((BgL_objectz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_new1175z00_5546));
							BgL_auxz00_8606 = BGL_OBJECT_WIDENING(BgL_tmpz00_8607);
						}
						BgL_auxz00_8605 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8606);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8605))->BgL_inz00) =
						((obj_t) BUNSPEC), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8613;

					{
						obj_t BgL_auxz00_8614;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8615;

							BgL_tmpz00_8615 =
								((BgL_objectz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_new1175z00_5546));
							BgL_auxz00_8614 = BGL_OBJECT_WIDENING(BgL_tmpz00_8615);
						}
						BgL_auxz00_8613 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8614);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8613))->
							BgL_spillz00) = ((obj_t) BUNSPEC), BUNSPEC);
				}
				BgL_auxz00_8566 = ((BgL_rtl_insz00_bglt) BgL_new1175z00_5546);
				return ((obj_t) BgL_auxz00_8566);
			}
		}

	}



/* &lambda2525 */
	BgL_rtl_insz00_bglt BGl_z62lambda2525z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5547, obj_t BgL_o1172z00_5548)
	{
		{	/* SawMill/regalloc.scm 37 */
			{	/* SawMill/regalloc.scm 37 */
				BgL_rtl_inszf2razf2_bglt BgL_wide1174z00_5701;

				BgL_wide1174z00_5701 =
					((BgL_rtl_inszf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_rtl_inszf2razf2_bgl))));
				{	/* SawMill/regalloc.scm 37 */
					obj_t BgL_auxz00_8628;
					BgL_objectz00_bglt BgL_tmpz00_8624;

					BgL_auxz00_8628 = ((obj_t) BgL_wide1174z00_5701);
					BgL_tmpz00_8624 =
						((BgL_objectz00_bglt)
						((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1172z00_5548)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8624, BgL_auxz00_8628);
				}
				((BgL_objectz00_bglt)
					((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1172z00_5548)));
				{	/* SawMill/regalloc.scm 37 */
					long BgL_arg2527z00_5702;

					BgL_arg2527z00_5702 =
						BGL_CLASS_NUM(BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_rtl_insz00_bglt)
								((BgL_rtl_insz00_bglt) BgL_o1172z00_5548))),
						BgL_arg2527z00_5702);
				}
				return
					((BgL_rtl_insz00_bglt)
					((BgL_rtl_insz00_bglt) ((BgL_rtl_insz00_bglt) BgL_o1172z00_5548)));
			}
		}

	}



/* &lambda2519 */
	BgL_rtl_insz00_bglt BGl_z62lambda2519z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5549, obj_t BgL_loc1163z00_5550, obj_t BgL_z52spill1164z52_5551,
		obj_t BgL_dest1165z00_5552, obj_t BgL_fun1166z00_5553,
		obj_t BgL_args1167z00_5554, obj_t BgL_def1168z00_5555,
		obj_t BgL_out1169z00_5556, obj_t BgL_in1170z00_5557,
		obj_t BgL_spill1171z00_5558)
	{
		{	/* SawMill/regalloc.scm 37 */
			{	/* SawMill/regalloc.scm 37 */
				BgL_rtl_insz00_bglt BgL_new1280z00_5706;

				{	/* SawMill/regalloc.scm 37 */
					BgL_rtl_insz00_bglt BgL_tmp1278z00_5707;
					BgL_rtl_inszf2razf2_bglt BgL_wide1279z00_5708;

					{
						BgL_rtl_insz00_bglt BgL_auxz00_8642;

						{	/* SawMill/regalloc.scm 37 */
							BgL_rtl_insz00_bglt BgL_new1277z00_5709;

							BgL_new1277z00_5709 =
								((BgL_rtl_insz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
											BgL_rtl_insz00_bgl))));
							{	/* SawMill/regalloc.scm 37 */
								long BgL_arg2524z00_5710;

								BgL_arg2524z00_5710 =
									BGL_CLASS_NUM(BGl_rtl_insz00zzsaw_defsz00);
								BGL_OBJECT_CLASS_NUM_SET(
									((BgL_objectz00_bglt) BgL_new1277z00_5709),
									BgL_arg2524z00_5710);
							}
							{	/* SawMill/regalloc.scm 37 */
								BgL_objectz00_bglt BgL_tmpz00_8647;

								BgL_tmpz00_8647 = ((BgL_objectz00_bglt) BgL_new1277z00_5709);
								BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8647, BFALSE);
							}
							((BgL_objectz00_bglt) BgL_new1277z00_5709);
							BgL_auxz00_8642 = BgL_new1277z00_5709;
						}
						BgL_tmp1278z00_5707 = ((BgL_rtl_insz00_bglt) BgL_auxz00_8642);
					}
					BgL_wide1279z00_5708 =
						((BgL_rtl_inszf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
									BgL_rtl_inszf2razf2_bgl))));
					{	/* SawMill/regalloc.scm 37 */
						obj_t BgL_auxz00_8655;
						BgL_objectz00_bglt BgL_tmpz00_8653;

						BgL_auxz00_8655 = ((obj_t) BgL_wide1279z00_5708);
						BgL_tmpz00_8653 = ((BgL_objectz00_bglt) BgL_tmp1278z00_5707);
						BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8653, BgL_auxz00_8655);
					}
					((BgL_objectz00_bglt) BgL_tmp1278z00_5707);
					{	/* SawMill/regalloc.scm 37 */
						long BgL_arg2520z00_5711;

						BgL_arg2520z00_5711 =
							BGL_CLASS_NUM(BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2);
						BGL_OBJECT_CLASS_NUM_SET(
							((BgL_objectz00_bglt) BgL_tmp1278z00_5707), BgL_arg2520z00_5711);
					}
					BgL_new1280z00_5706 = ((BgL_rtl_insz00_bglt) BgL_tmp1278z00_5707);
				}
				((((BgL_rtl_insz00_bglt) COBJECT(
								((BgL_rtl_insz00_bglt) BgL_new1280z00_5706)))->BgL_locz00) =
					((obj_t) BgL_loc1163z00_5550), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1280z00_5706)))->BgL_z52spillz52) =
					((obj_t) ((obj_t) BgL_z52spill1164z52_5551)), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1280z00_5706)))->BgL_destz00) =
					((obj_t) BgL_dest1165z00_5552), BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1280z00_5706)))->BgL_funz00) =
					((BgL_rtl_funz00_bglt) ((BgL_rtl_funz00_bglt) BgL_fun1166z00_5553)),
					BUNSPEC);
				((((BgL_rtl_insz00_bglt) COBJECT(((BgL_rtl_insz00_bglt)
									BgL_new1280z00_5706)))->BgL_argsz00) =
					((obj_t) ((obj_t) BgL_args1167z00_5554)), BUNSPEC);
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8676;

					{
						obj_t BgL_auxz00_8677;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8678;

							BgL_tmpz00_8678 = ((BgL_objectz00_bglt) BgL_new1280z00_5706);
							BgL_auxz00_8677 = BGL_OBJECT_WIDENING(BgL_tmpz00_8678);
						}
						BgL_auxz00_8676 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8677);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8676))->BgL_defz00) =
						((obj_t) BgL_def1168z00_5555), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8683;

					{
						obj_t BgL_auxz00_8684;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8685;

							BgL_tmpz00_8685 = ((BgL_objectz00_bglt) BgL_new1280z00_5706);
							BgL_auxz00_8684 = BGL_OBJECT_WIDENING(BgL_tmpz00_8685);
						}
						BgL_auxz00_8683 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8684);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8683))->BgL_outz00) =
						((obj_t) BgL_out1169z00_5556), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8690;

					{
						obj_t BgL_auxz00_8691;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8692;

							BgL_tmpz00_8692 = ((BgL_objectz00_bglt) BgL_new1280z00_5706);
							BgL_auxz00_8691 = BGL_OBJECT_WIDENING(BgL_tmpz00_8692);
						}
						BgL_auxz00_8690 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8691);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8690))->BgL_inz00) =
						((obj_t) BgL_in1170z00_5557), BUNSPEC);
				}
				{
					BgL_rtl_inszf2razf2_bglt BgL_auxz00_8697;

					{
						obj_t BgL_auxz00_8698;

						{	/* SawMill/regalloc.scm 37 */
							BgL_objectz00_bglt BgL_tmpz00_8699;

							BgL_tmpz00_8699 = ((BgL_objectz00_bglt) BgL_new1280z00_5706);
							BgL_auxz00_8698 = BGL_OBJECT_WIDENING(BgL_tmpz00_8699);
						}
						BgL_auxz00_8697 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8698);
					}
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8697))->
							BgL_spillz00) = ((obj_t) BgL_spill1171z00_5558), BUNSPEC);
				}
				return BgL_new1280z00_5706;
			}
		}

	}



/* &<@anonymous:2573> */
	obj_t BGl_z62zc3z04anonymousza32573ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5559)
	{
		{	/* SawMill/regalloc.scm 37 */
			return BUNSPEC;
		}

	}



/* &lambda2572 */
	obj_t BGl_z62lambda2572z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5560, obj_t BgL_oz00_5561, obj_t BgL_vz00_5562)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8704;

				{
					obj_t BgL_auxz00_8705;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8706;

						BgL_tmpz00_8706 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5561));
						BgL_auxz00_8705 = BGL_OBJECT_WIDENING(BgL_tmpz00_8706);
					}
					BgL_auxz00_8704 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8705);
				}
				return
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8704))->
						BgL_spillz00) = ((obj_t) BgL_vz00_5562), BUNSPEC);
			}
		}

	}



/* &lambda2571 */
	obj_t BGl_z62lambda2571z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5563, obj_t BgL_oz00_5564)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8712;

				{
					obj_t BgL_auxz00_8713;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8714;

						BgL_tmpz00_8714 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5564));
						BgL_auxz00_8713 = BGL_OBJECT_WIDENING(BgL_tmpz00_8714);
					}
					BgL_auxz00_8712 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8713);
				}
				return
					(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8712))->BgL_spillz00);
			}
		}

	}



/* &<@anonymous:2561> */
	obj_t BGl_z62zc3z04anonymousza32561ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5565)
	{
		{	/* SawMill/regalloc.scm 37 */
			return BUNSPEC;
		}

	}



/* &lambda2560 */
	obj_t BGl_z62lambda2560z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5566, obj_t BgL_oz00_5567, obj_t BgL_vz00_5568)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8720;

				{
					obj_t BgL_auxz00_8721;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8722;

						BgL_tmpz00_8722 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5567));
						BgL_auxz00_8721 = BGL_OBJECT_WIDENING(BgL_tmpz00_8722);
					}
					BgL_auxz00_8720 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8721);
				}
				return
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8720))->BgL_inz00) =
					((obj_t) BgL_vz00_5568), BUNSPEC);
			}
		}

	}



/* &lambda2559 */
	obj_t BGl_z62lambda2559z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5569, obj_t BgL_oz00_5570)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8728;

				{
					obj_t BgL_auxz00_8729;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8730;

						BgL_tmpz00_8730 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5570));
						BgL_auxz00_8729 = BGL_OBJECT_WIDENING(BgL_tmpz00_8730);
					}
					BgL_auxz00_8728 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8729);
				}
				return
					(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8728))->BgL_inz00);
			}
		}

	}



/* &<@anonymous:2552> */
	obj_t BGl_z62zc3z04anonymousza32552ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5571)
	{
		{	/* SawMill/regalloc.scm 37 */
			return BUNSPEC;
		}

	}



/* &lambda2551 */
	obj_t BGl_z62lambda2551z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5572, obj_t BgL_oz00_5573, obj_t BgL_vz00_5574)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8736;

				{
					obj_t BgL_auxz00_8737;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8738;

						BgL_tmpz00_8738 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5573));
						BgL_auxz00_8737 = BGL_OBJECT_WIDENING(BgL_tmpz00_8738);
					}
					BgL_auxz00_8736 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8737);
				}
				return
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8736))->BgL_outz00) =
					((obj_t) BgL_vz00_5574), BUNSPEC);
			}
		}

	}



/* &lambda2550 */
	obj_t BGl_z62lambda2550z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5575, obj_t BgL_oz00_5576)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8744;

				{
					obj_t BgL_auxz00_8745;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8746;

						BgL_tmpz00_8746 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5576));
						BgL_auxz00_8745 = BGL_OBJECT_WIDENING(BgL_tmpz00_8746);
					}
					BgL_auxz00_8744 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8745);
				}
				return
					(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8744))->BgL_outz00);
			}
		}

	}



/* &<@anonymous:2543> */
	obj_t BGl_z62zc3z04anonymousza32543ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5577)
	{
		{	/* SawMill/regalloc.scm 37 */
			return BUNSPEC;
		}

	}



/* &lambda2542 */
	obj_t BGl_z62lambda2542z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5578, obj_t BgL_oz00_5579, obj_t BgL_vz00_5580)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8752;

				{
					obj_t BgL_auxz00_8753;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8754;

						BgL_tmpz00_8754 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5579));
						BgL_auxz00_8753 = BGL_OBJECT_WIDENING(BgL_tmpz00_8754);
					}
					BgL_auxz00_8752 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8753);
				}
				return
					((((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8752))->BgL_defz00) =
					((obj_t) BgL_vz00_5580), BUNSPEC);
			}
		}

	}



/* &lambda2541 */
	obj_t BGl_z62lambda2541z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5581, obj_t BgL_oz00_5582)
	{
		{	/* SawMill/regalloc.scm 37 */
			{
				BgL_rtl_inszf2razf2_bglt BgL_auxz00_8760;

				{
					obj_t BgL_auxz00_8761;

					{	/* SawMill/regalloc.scm 37 */
						BgL_objectz00_bglt BgL_tmpz00_8762;

						BgL_tmpz00_8762 =
							((BgL_objectz00_bglt) ((BgL_rtl_insz00_bglt) BgL_oz00_5582));
						BgL_auxz00_8761 = BGL_OBJECT_WIDENING(BgL_tmpz00_8762);
					}
					BgL_auxz00_8760 = ((BgL_rtl_inszf2razf2_bglt) BgL_auxz00_8761);
				}
				return
					(((BgL_rtl_inszf2razf2_bglt) COBJECT(BgL_auxz00_8760))->BgL_defz00);
			}
		}

	}



/* &lambda2500 */
	BgL_blockz00_bglt BGl_z62lambda2500z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5583, obj_t BgL_o1161z00_5584)
	{
		{	/* SawMill/regalloc.scm 34 */
			{	/* SawMill/regalloc.scm 34 */
				long BgL_arg2501z00_5721;

				{	/* SawMill/regalloc.scm 34 */
					obj_t BgL_arg2502z00_5722;

					{	/* SawMill/regalloc.scm 34 */
						obj_t BgL_arg2503z00_5723;

						{	/* SawMill/regalloc.scm 34 */
							long BgL_arg1808z00_5724;

							{	/* SawMill/regalloc.scm 34 */
								long BgL_arg1809z00_5725;

								BgL_arg1809z00_5725 =
									BGL_OBJECT_CLASS_NUM(
									((BgL_objectz00_bglt)
										((BgL_blockz00_bglt) BgL_o1161z00_5584)));
								BgL_arg1808z00_5724 = (BgL_arg1809z00_5725 - OBJECT_TYPE);
							}
							BgL_arg2503z00_5723 =
								VECTOR_REF(BGl_za2classesza2z00zz__objectz00,
								BgL_arg1808z00_5724);
						}
						BgL_arg2502z00_5722 =
							BGl_classzd2superzd2zz__objectz00(BgL_arg2503z00_5723);
					}
					{	/* SawMill/regalloc.scm 34 */
						obj_t BgL_tmpz00_8774;

						BgL_tmpz00_8774 = ((obj_t) BgL_arg2502z00_5722);
						BgL_arg2501z00_5721 = BGL_CLASS_NUM(BgL_tmpz00_8774);
				}}
				BGL_OBJECT_CLASS_NUM_SET(
					((BgL_objectz00_bglt)
						((BgL_blockz00_bglt) BgL_o1161z00_5584)), BgL_arg2501z00_5721);
			}
			{	/* SawMill/regalloc.scm 34 */
				BgL_objectz00_bglt BgL_tmpz00_8780;

				BgL_tmpz00_8780 =
					((BgL_objectz00_bglt) ((BgL_blockz00_bglt) BgL_o1161z00_5584));
				BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8780, BFALSE);
			}
			((BgL_objectz00_bglt) ((BgL_blockz00_bglt) BgL_o1161z00_5584));
			return ((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_o1161z00_5584));
		}

	}



/* &<@anonymous:2499> */
	obj_t BGl_z62zc3z04anonymousza32499ze3ze5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5585, obj_t BgL_new1160z00_5586)
	{
		{	/* SawMill/regalloc.scm 34 */
			{
				BgL_blockz00_bglt BgL_auxz00_8788;

				((((BgL_blockz00_bglt) COBJECT(
								((BgL_blockz00_bglt)
									((BgL_blockz00_bglt) BgL_new1160z00_5586))))->BgL_labelz00) =
					((int) (int) (0L)), BUNSPEC);
				((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt) ((BgL_blockz00_bglt)
										BgL_new1160z00_5586))))->BgL_predsz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt) ((BgL_blockz00_bglt)
										BgL_new1160z00_5586))))->BgL_succsz00) =
					((obj_t) BNIL), BUNSPEC);
				((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt) ((BgL_blockz00_bglt)
										BgL_new1160z00_5586))))->BgL_firstz00) =
					((obj_t) BNIL), BUNSPEC);
				{
					BgL_blockzf2razf2_bglt BgL_auxz00_8802;

					{
						obj_t BgL_auxz00_8803;

						{	/* SawMill/regalloc.scm 34 */
							BgL_objectz00_bglt BgL_tmpz00_8804;

							BgL_tmpz00_8804 =
								((BgL_objectz00_bglt)
								((BgL_blockz00_bglt) BgL_new1160z00_5586));
							BgL_auxz00_8803 = BGL_OBJECT_WIDENING(BgL_tmpz00_8804);
						}
						BgL_auxz00_8802 = ((BgL_blockzf2razf2_bglt) BgL_auxz00_8803);
					}
					((((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_8802))->BgL_lastz00) =
						((obj_t) BNIL), BUNSPEC);
				}
				BgL_auxz00_8788 = ((BgL_blockz00_bglt) BgL_new1160z00_5586);
				return ((obj_t) BgL_auxz00_8788);
			}
		}

	}



/* &lambda2497 */
	BgL_blockz00_bglt BGl_z62lambda2497z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5587, obj_t BgL_o1157z00_5588)
	{
		{	/* SawMill/regalloc.scm 34 */
			{	/* SawMill/regalloc.scm 34 */
				BgL_blockzf2razf2_bglt BgL_wide1159z00_5728;

				BgL_wide1159z00_5728 =
					((BgL_blockzf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
								BgL_blockzf2razf2_bgl))));
				{	/* SawMill/regalloc.scm 34 */
					obj_t BgL_auxz00_8817;
					BgL_objectz00_bglt BgL_tmpz00_8813;

					BgL_auxz00_8817 = ((obj_t) BgL_wide1159z00_5728);
					BgL_tmpz00_8813 =
						((BgL_objectz00_bglt)
						((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_o1157z00_5588)));
					BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8813, BgL_auxz00_8817);
				}
				((BgL_objectz00_bglt)
					((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_o1157z00_5588)));
				{	/* SawMill/regalloc.scm 34 */
					long BgL_arg2498z00_5729;

					BgL_arg2498z00_5729 =
						BGL_CLASS_NUM(BGl_blockzf2razf2zzsaw_registerzd2allocationzd2);
					BGL_OBJECT_CLASS_NUM_SET(
						((BgL_objectz00_bglt)
							((BgL_blockz00_bglt)
								((BgL_blockz00_bglt) BgL_o1157z00_5588))), BgL_arg2498z00_5729);
				}
				return
					((BgL_blockz00_bglt)
					((BgL_blockz00_bglt) ((BgL_blockz00_bglt) BgL_o1157z00_5588)));
			}
		}

	}



/* &lambda2493 */
	BgL_blockz00_bglt BGl_z62lambda2493z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5589, obj_t BgL_label1152z00_5590, obj_t BgL_preds1153z00_5591,
		obj_t BgL_succs1154z00_5592, obj_t BgL_first1155z00_5593,
		obj_t BgL_last1156z00_5594)
	{
		{	/* SawMill/regalloc.scm 34 */
			{	/* SawMill/regalloc.scm 34 */
				int BgL_label1152z00_5730;

				BgL_label1152z00_5730 = CINT(BgL_label1152z00_5590);
				{	/* SawMill/regalloc.scm 34 */
					BgL_blockz00_bglt BgL_new1275z00_5735;

					{	/* SawMill/regalloc.scm 34 */
						BgL_blockz00_bglt BgL_tmp1273z00_5736;
						BgL_blockzf2razf2_bglt BgL_wide1274z00_5737;

						{
							BgL_blockz00_bglt BgL_auxz00_8832;

							{	/* SawMill/regalloc.scm 34 */
								BgL_blockz00_bglt BgL_new1272z00_5738;

								BgL_new1272z00_5738 =
									((BgL_blockz00_bglt) BOBJECT(GC_MALLOC(sizeof(struct
												BgL_blockz00_bgl))));
								{	/* SawMill/regalloc.scm 34 */
									long BgL_arg2496z00_5739;

									BgL_arg2496z00_5739 =
										BGL_CLASS_NUM(BGl_blockz00zzsaw_defsz00);
									BGL_OBJECT_CLASS_NUM_SET(
										((BgL_objectz00_bglt) BgL_new1272z00_5738),
										BgL_arg2496z00_5739);
								}
								{	/* SawMill/regalloc.scm 34 */
									BgL_objectz00_bglt BgL_tmpz00_8837;

									BgL_tmpz00_8837 = ((BgL_objectz00_bglt) BgL_new1272z00_5738);
									BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8837, BFALSE);
								}
								((BgL_objectz00_bglt) BgL_new1272z00_5738);
								BgL_auxz00_8832 = BgL_new1272z00_5738;
							}
							BgL_tmp1273z00_5736 = ((BgL_blockz00_bglt) BgL_auxz00_8832);
						}
						BgL_wide1274z00_5737 =
							((BgL_blockzf2razf2_bglt) BOBJECT(GC_MALLOC(sizeof(struct
										BgL_blockzf2razf2_bgl))));
						{	/* SawMill/regalloc.scm 34 */
							obj_t BgL_auxz00_8845;
							BgL_objectz00_bglt BgL_tmpz00_8843;

							BgL_auxz00_8845 = ((obj_t) BgL_wide1274z00_5737);
							BgL_tmpz00_8843 = ((BgL_objectz00_bglt) BgL_tmp1273z00_5736);
							BGL_OBJECT_WIDENING_SET(BgL_tmpz00_8843, BgL_auxz00_8845);
						}
						((BgL_objectz00_bglt) BgL_tmp1273z00_5736);
						{	/* SawMill/regalloc.scm 34 */
							long BgL_arg2494z00_5740;

							BgL_arg2494z00_5740 =
								BGL_CLASS_NUM(BGl_blockzf2razf2zzsaw_registerzd2allocationzd2);
							BGL_OBJECT_CLASS_NUM_SET(
								((BgL_objectz00_bglt) BgL_tmp1273z00_5736),
								BgL_arg2494z00_5740);
						}
						BgL_new1275z00_5735 = ((BgL_blockz00_bglt) BgL_tmp1273z00_5736);
					}
					((((BgL_blockz00_bglt) COBJECT(
									((BgL_blockz00_bglt) BgL_new1275z00_5735)))->BgL_labelz00) =
						((int) BgL_label1152z00_5730), BUNSPEC);
					((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt)
										BgL_new1275z00_5735)))->BgL_predsz00) =
						((obj_t) ((obj_t) BgL_preds1153z00_5591)), BUNSPEC);
					((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt)
										BgL_new1275z00_5735)))->BgL_succsz00) =
						((obj_t) ((obj_t) BgL_succs1154z00_5592)), BUNSPEC);
					((((BgL_blockz00_bglt) COBJECT(((BgL_blockz00_bglt)
										BgL_new1275z00_5735)))->BgL_firstz00) =
						((obj_t) ((obj_t) BgL_first1155z00_5593)), BUNSPEC);
					{
						BgL_blockzf2razf2_bglt BgL_auxz00_8864;

						{
							obj_t BgL_auxz00_8865;

							{	/* SawMill/regalloc.scm 34 */
								BgL_objectz00_bglt BgL_tmpz00_8866;

								BgL_tmpz00_8866 = ((BgL_objectz00_bglt) BgL_new1275z00_5735);
								BgL_auxz00_8865 = BGL_OBJECT_WIDENING(BgL_tmpz00_8866);
							}
							BgL_auxz00_8864 = ((BgL_blockzf2razf2_bglt) BgL_auxz00_8865);
						}
						((((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_8864))->
								BgL_lastz00) =
							((obj_t) ((obj_t) BgL_last1156z00_5594)), BUNSPEC);
					}
					return BgL_new1275z00_5735;
				}
			}
		}

	}



/* &lambda2508 */
	obj_t BGl_z62lambda2508z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5595, obj_t BgL_oz00_5596, obj_t BgL_vz00_5597)
	{
		{	/* SawMill/regalloc.scm 34 */
			{
				BgL_blockzf2razf2_bglt BgL_auxz00_8872;

				{
					obj_t BgL_auxz00_8873;

					{	/* SawMill/regalloc.scm 34 */
						BgL_objectz00_bglt BgL_tmpz00_8874;

						BgL_tmpz00_8874 =
							((BgL_objectz00_bglt) ((BgL_blockz00_bglt) BgL_oz00_5596));
						BgL_auxz00_8873 = BGL_OBJECT_WIDENING(BgL_tmpz00_8874);
					}
					BgL_auxz00_8872 = ((BgL_blockzf2razf2_bglt) BgL_auxz00_8873);
				}
				return
					((((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_8872))->BgL_lastz00) =
					((obj_t) ((obj_t) BgL_vz00_5597)), BUNSPEC);
			}
		}

	}



/* &lambda2507 */
	obj_t BGl_z62lambda2507z62zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5598, obj_t BgL_oz00_5599)
	{
		{	/* SawMill/regalloc.scm 34 */
			{
				BgL_blockzf2razf2_bglt BgL_auxz00_8881;

				{
					obj_t BgL_auxz00_8882;

					{	/* SawMill/regalloc.scm 34 */
						BgL_objectz00_bglt BgL_tmpz00_8883;

						BgL_tmpz00_8883 =
							((BgL_objectz00_bglt) ((BgL_blockz00_bglt) BgL_oz00_5599));
						BgL_auxz00_8882 = BGL_OBJECT_WIDENING(BgL_tmpz00_8883);
					}
					BgL_auxz00_8881 = ((BgL_blockzf2razf2_bglt) BgL_auxz00_8882);
				}
				return
					(((BgL_blockzf2razf2_bglt) COBJECT(BgL_auxz00_8881))->BgL_lastz00);
			}
		}

	}



/* generic-init */
	obj_t BGl_genericzd2initzd2zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_protectzd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
				BGl_proc2856z00zzsaw_registerzd2allocationzd2, BFALSE,
				BGl_string2857z00zzsaw_registerzd2allocationzd2);
			BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_typezd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
				BGl_proc2858z00zzsaw_registerzd2allocationzd2,
				BGl_backendz00zzbackend_backendz00,
				BGl_string2859z00zzsaw_registerzd2allocationzd2);
			return
				BGl_registerzd2genericz12zc0zz__objectz00
				(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
				BGl_proc2860z00zzsaw_registerzd2allocationzd2, BFALSE,
				BGl_string2861z00zzsaw_registerzd2allocationzd2);
		}

	}



/* &rtl-size1764 */
	obj_t BGl_z62rtlzd2siza7e1764z17zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5603, obj_t BgL_oz00_5604)
	{
		{	/* SawMill/regalloc.scm 784 */
			if (PAIRP(BgL_oz00_5604))
				{	/* SawMill/regalloc.scm 786 */
					obj_t BgL_runner2617z00_5744;

					{	/* SawMill/regalloc.scm 786 */
						obj_t BgL_head1752z00_5745;

						BgL_head1752z00_5745 =
							MAKE_YOUNG_PAIR(BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2
							(CAR(BgL_oz00_5604)), BNIL);
						{	/* SawMill/regalloc.scm 786 */
							obj_t BgL_g1755z00_5746;

							BgL_g1755z00_5746 = CDR(BgL_oz00_5604);
							{
								obj_t BgL_l1750z00_5748;
								obj_t BgL_tail1753z00_5749;

								BgL_l1750z00_5748 = BgL_g1755z00_5746;
								BgL_tail1753z00_5749 = BgL_head1752z00_5745;
							BgL_zc3z04anonymousza32610ze3z87_5747:
								if (NULLP(BgL_l1750z00_5748))
									{	/* SawMill/regalloc.scm 786 */
										BgL_runner2617z00_5744 = BgL_head1752z00_5745;
									}
								else
									{	/* SawMill/regalloc.scm 786 */
										obj_t BgL_newtail1754z00_5750;

										{	/* SawMill/regalloc.scm 786 */
											obj_t BgL_arg2613z00_5751;

											{	/* SawMill/regalloc.scm 786 */
												obj_t BgL_arg2614z00_5752;

												BgL_arg2614z00_5752 = CAR(((obj_t) BgL_l1750z00_5748));
												BgL_arg2613z00_5751 =
													BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2
													(BgL_arg2614z00_5752);
											}
											BgL_newtail1754z00_5750 =
												MAKE_YOUNG_PAIR(BgL_arg2613z00_5751, BNIL);
										}
										SET_CDR(BgL_tail1753z00_5749, BgL_newtail1754z00_5750);
										{	/* SawMill/regalloc.scm 786 */
											obj_t BgL_arg2612z00_5753;

											BgL_arg2612z00_5753 = CDR(((obj_t) BgL_l1750z00_5748));
											{
												obj_t BgL_tail1753z00_8908;
												obj_t BgL_l1750z00_8907;

												BgL_l1750z00_8907 = BgL_arg2612z00_5753;
												BgL_tail1753z00_8908 = BgL_newtail1754z00_5750;
												BgL_tail1753z00_5749 = BgL_tail1753z00_8908;
												BgL_l1750z00_5748 = BgL_l1750z00_8907;
												goto BgL_zc3z04anonymousza32610ze3z87_5747;
											}
										}
									}
							}
						}
					}
					return BGl_zb2zb2zz__r4_numbers_6_5z00(BgL_runner2617z00_5744);
				}
			else
				{	/* SawMill/regalloc.scm 785 */
					return BINT(1L);
				}
		}

	}



/* &type-interference!1762 */
	obj_t BGl_z62typezd2interferencez121762za2zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5605, obj_t BgL_backz00_5606, obj_t BgL_regsz00_5607)
	{
		{	/* SawMill/regalloc.scm 326 */
			{	/* SawMill/regalloc.scm 327 */
				bool_t BgL_tmpz00_8911;

				if (NULLP(((obj_t) BgL_regsz00_5607)))
					{	/* SawMill/regalloc.scm 327 */
						BgL_tmpz00_8911 = ((bool_t) 0);
					}
				else
					{
						obj_t BgL_regsz00_5757;

						BgL_regsz00_5757 = ((obj_t) BgL_regsz00_5607);
					BgL_loopz00_5756:
						{	/* SawMill/regalloc.scm 329 */
							bool_t BgL_test3179z00_8915;

							{	/* SawMill/regalloc.scm 329 */
								obj_t BgL_tmpz00_8916;

								BgL_tmpz00_8916 = CDR(((obj_t) BgL_regsz00_5757));
								BgL_test3179z00_8915 = PAIRP(BgL_tmpz00_8916);
							}
							if (BgL_test3179z00_8915)
								{	/* SawMill/regalloc.scm 330 */
									obj_t BgL_r1z00_5758;

									BgL_r1z00_5758 = CAR(((obj_t) BgL_regsz00_5757));
									{	/* SawMill/regalloc.scm 330 */
										BgL_typez00_bglt BgL_t1z00_5759;

										BgL_t1z00_5759 =
											(((BgL_rtl_regz00_bglt) COBJECT(
													((BgL_rtl_regz00_bglt) BgL_r1z00_5758)))->
											BgL_typez00);
										{	/* SawMill/regalloc.scm 331 */

											{	/* SawMill/regalloc.scm 332 */
												bool_t BgL_test3180z00_8924;

												{	/* SawMill/regalloc.scm 332 */
													obj_t BgL_classz00_5760;

													BgL_classz00_5760 = BGl_typez00zztype_typez00;
													{	/* SawMill/regalloc.scm 332 */
														BgL_objectz00_bglt BgL_arg1801z00_5761;

														{	/* SawMill/regalloc.scm 332 */
															obj_t BgL_tmpz00_8925;

															BgL_tmpz00_8925 =
																((obj_t) ((BgL_objectz00_bglt) BgL_t1z00_5759));
															BgL_arg1801z00_5761 =
																(BgL_objectz00_bglt) (BgL_tmpz00_8925);
														}
														if (BGL_CONDEXPAND_ISA_ARCH64())
															{	/* SawMill/regalloc.scm 332 */
																long BgL_idxz00_5762;

																BgL_idxz00_5762 =
																	BGL_OBJECT_INHERITANCE_NUM
																	(BgL_arg1801z00_5761);
																BgL_test3180z00_8924 =
																	(VECTOR_REF
																	(BGl_za2inheritancesza2z00zz__objectz00,
																		(BgL_idxz00_5762 + 1L)) ==
																	BgL_classz00_5760);
															}
														else
															{	/* SawMill/regalloc.scm 332 */
																bool_t BgL_res2778z00_5765;

																{	/* SawMill/regalloc.scm 332 */
																	obj_t BgL_oclassz00_5766;

																	{	/* SawMill/regalloc.scm 332 */
																		long BgL_arg1808z00_5767;

																		{	/* SawMill/regalloc.scm 332 */
																			long BgL_arg1809z00_5768;

																			BgL_arg1809z00_5768 =
																				BGL_OBJECT_CLASS_NUM
																				(BgL_arg1801z00_5761);
																			BgL_arg1808z00_5767 =
																				(BgL_arg1809z00_5768 - OBJECT_TYPE);
																		}
																		BgL_oclassz00_5766 =
																			VECTOR_REF
																			(BGl_za2classesza2z00zz__objectz00,
																			BgL_arg1808z00_5767);
																	}
																	{	/* SawMill/regalloc.scm 332 */
																		bool_t BgL__ortest_1115z00_5769;

																		BgL__ortest_1115z00_5769 =
																			(BgL_classz00_5760 == BgL_oclassz00_5766);
																		if (BgL__ortest_1115z00_5769)
																			{	/* SawMill/regalloc.scm 332 */
																				BgL_res2778z00_5765 =
																					BgL__ortest_1115z00_5769;
																			}
																		else
																			{	/* SawMill/regalloc.scm 332 */
																				long BgL_odepthz00_5770;

																				BgL_odepthz00_5770 =
																					BGL_CLASS_DEPTH(BgL_oclassz00_5766);
																				if ((1L < BgL_odepthz00_5770))
																					{	/* SawMill/regalloc.scm 332 */
																						obj_t BgL_arg1797z00_5771;

																						BgL_arg1797z00_5771 =
																							BGL_CLASS_ANCESTORS_REF
																							(BgL_oclassz00_5766, 1L);
																						BgL_res2778z00_5765 =
																							(BgL_arg1797z00_5771 ==
																							BgL_classz00_5760);
																					}
																				else
																					{	/* SawMill/regalloc.scm 332 */
																						BgL_res2778z00_5765 = ((bool_t) 0);
																					}
																			}
																	}
																}
																BgL_test3180z00_8924 = BgL_res2778z00_5765;
															}
													}
												}
												if (BgL_test3180z00_8924)
													{	/* SawMill/regalloc.scm 333 */
														obj_t BgL_g1643z00_5772;

														BgL_g1643z00_5772 = CDR(((obj_t) BgL_regsz00_5757));
														{
															obj_t BgL_l1641z00_5774;

															BgL_l1641z00_5774 = BgL_g1643z00_5772;
														BgL_zc3z04anonymousza32600ze3z87_5773:
															if (PAIRP(BgL_l1641z00_5774))
																{	/* SawMill/regalloc.scm 341 */
																	{	/* SawMill/regalloc.scm 334 */
																		obj_t BgL_r2z00_5775;

																		BgL_r2z00_5775 = CAR(BgL_l1641z00_5774);
																		{	/* SawMill/regalloc.scm 334 */
																			BgL_typez00_bglt BgL_t2z00_5776;

																			BgL_t2z00_5776 =
																				(((BgL_rtl_regz00_bglt) COBJECT(
																						((BgL_rtl_regz00_bglt)
																							BgL_r2z00_5775)))->BgL_typez00);
																			{	/* SawMill/regalloc.scm 335 */
																				bool_t BgL_test3185z00_8952;

																				if (
																					(((obj_t) BgL_t1z00_5759) ==
																						((obj_t) BgL_t2z00_5776)))
																					{	/* SawMill/regalloc.scm 335 */
																						BgL_test3185z00_8952 = ((bool_t) 1);
																					}
																				else
																					{	/* SawMill/regalloc.scm 336 */
																						bool_t BgL_test3187z00_8957;

																						if (
																							(((obj_t) BgL_t1z00_5759) ==
																								BGl_za2objza2z00zztype_cachez00))
																							{	/* SawMill/regalloc.scm 336 */
																								BgL_test3187z00_8957 =
																									BGl_bigloozd2typezf3z21zztype_typez00
																									(BgL_t2z00_5776);
																							}
																						else
																							{	/* SawMill/regalloc.scm 336 */
																								BgL_test3187z00_8957 =
																									((bool_t) 0);
																							}
																						if (BgL_test3187z00_8957)
																							{	/* SawMill/regalloc.scm 336 */
																								BgL_test3185z00_8952 =
																									((bool_t) 1);
																							}
																						else
																							{	/* SawMill/regalloc.scm 336 */
																								if (
																									(((obj_t) BgL_t2z00_5776) ==
																										BGl_za2objza2z00zztype_cachez00))
																									{	/* SawMill/regalloc.scm 338 */
																										BgL_test3185z00_8952 =
																											BGl_bigloozd2typezf3z21zztype_typez00
																											(BgL_t1z00_5759);
																									}
																								else
																									{	/* SawMill/regalloc.scm 338 */
																										BgL_test3185z00_8952 =
																											((bool_t) 0);
																									}
																							}
																					}
																				if (BgL_test3185z00_8952)
																					{	/* SawMill/regalloc.scm 335 */
																						((bool_t) 0);
																					}
																				else
																					{	/* SawMill/regalloc.scm 335 */
																						BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
																							(BgL_r1z00_5758, BgL_r2z00_5775);
																					}
																			}
																		}
																	}
																	{
																		obj_t BgL_l1641z00_8967;

																		BgL_l1641z00_8967 = CDR(BgL_l1641z00_5774);
																		BgL_l1641z00_5774 = BgL_l1641z00_8967;
																		goto BgL_zc3z04anonymousza32600ze3z87_5773;
																	}
																}
															else
																{	/* SawMill/regalloc.scm 341 */
																	((bool_t) 1);
																}
														}
													}
												else
													{	/* SawMill/regalloc.scm 332 */
														((bool_t) 0);
													}
											}
											{	/* SawMill/regalloc.scm 342 */
												obj_t BgL_arg2605z00_5777;

												BgL_arg2605z00_5777 = CDR(((obj_t) BgL_regsz00_5757));
												{
													obj_t BgL_regsz00_8971;

													BgL_regsz00_8971 = BgL_arg2605z00_5777;
													BgL_regsz00_5757 = BgL_regsz00_8971;
													goto BgL_loopz00_5756;
												}
											}
										}
									}
								}
							else
								{	/* SawMill/regalloc.scm 329 */
									BgL_tmpz00_8911 = ((bool_t) 0);
								}
						}
					}
				return BBOOL(BgL_tmpz00_8911);
			}
		}

	}



/* &protect-interference1760 */
	obj_t BGl_z62protectzd2interference1760zb0zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5608, obj_t BgL_oz00_5609, obj_t BgL_regsz00_5610)
	{
		{	/* SawMill/regalloc.scm 222 */
			{	/* SawMill/regalloc.scm 224 */
				bool_t BgL_tmpz00_8974;

				{
					obj_t BgL_oz00_5785;
					obj_t BgL_oz00_5781;

					{
						obj_t BgL_l1608z00_5804;

						BgL_l1608z00_5804 = BgL_oz00_5609;
					BgL_zc3z04anonymousza32575ze3z87_5803:
						if (PAIRP(BgL_l1608z00_5804))
							{	/* SawMill/regalloc.scm 230 */
								BgL_oz00_5781 = CAR(BgL_l1608z00_5804);
								{	/* SawMill/regalloc.scm 229 */
									obj_t BgL_g1607z00_5782;

									BgL_g1607z00_5782 =
										(((BgL_blockz00_bglt) COBJECT(
												((BgL_blockz00_bglt) BgL_oz00_5781)))->BgL_firstz00);
									{
										obj_t BgL_l1605z00_5784;

										BgL_l1605z00_5784 = BgL_g1607z00_5782;
									BgL_zc3z04anonymousza32589ze3z87_5783:
										if (PAIRP(BgL_l1605z00_5784))
											{	/* SawMill/regalloc.scm 229 */
												BgL_oz00_5785 = CAR(BgL_l1605z00_5784);
												{	/* SawMill/regalloc.scm 225 */
													bool_t BgL_test3192z00_8981;

													{	/* SawMill/regalloc.scm 225 */
														BgL_rtl_funz00_bglt BgL_arg2587z00_5786;

														BgL_arg2587z00_5786 =
															(((BgL_rtl_insz00_bglt) COBJECT(
																	((BgL_rtl_insz00_bglt) BgL_oz00_5785)))->
															BgL_funz00);
														{	/* SawMill/regalloc.scm 225 */
															obj_t BgL_classz00_5787;

															BgL_classz00_5787 =
																BGl_rtl_protectz00zzsaw_defsz00;
															{	/* SawMill/regalloc.scm 225 */
																BgL_objectz00_bglt BgL_arg1801z00_5788;

																{	/* SawMill/regalloc.scm 225 */
																	obj_t BgL_tmpz00_8984;

																	BgL_tmpz00_8984 =
																		((obj_t)
																		((BgL_objectz00_bglt) BgL_arg2587z00_5786));
																	BgL_arg1801z00_5788 =
																		(BgL_objectz00_bglt) (BgL_tmpz00_8984);
																}
																if (BGL_CONDEXPAND_ISA_ARCH64())
																	{	/* SawMill/regalloc.scm 225 */
																		long BgL_idxz00_5789;

																		BgL_idxz00_5789 =
																			BGL_OBJECT_INHERITANCE_NUM
																			(BgL_arg1801z00_5788);
																		BgL_test3192z00_8981 =
																			(VECTOR_REF
																			(BGl_za2inheritancesza2z00zz__objectz00,
																				(BgL_idxz00_5789 + 2L)) ==
																			BgL_classz00_5787);
																	}
																else
																	{	/* SawMill/regalloc.scm 225 */
																		bool_t BgL_res2777z00_5792;

																		{	/* SawMill/regalloc.scm 225 */
																			obj_t BgL_oclassz00_5793;

																			{	/* SawMill/regalloc.scm 225 */
																				long BgL_arg1808z00_5794;

																				{	/* SawMill/regalloc.scm 225 */
																					long BgL_arg1809z00_5795;

																					BgL_arg1809z00_5795 =
																						BGL_OBJECT_CLASS_NUM
																						(BgL_arg1801z00_5788);
																					BgL_arg1808z00_5794 =
																						(BgL_arg1809z00_5795 - OBJECT_TYPE);
																				}
																				BgL_oclassz00_5793 =
																					VECTOR_REF
																					(BGl_za2classesza2z00zz__objectz00,
																					BgL_arg1808z00_5794);
																			}
																			{	/* SawMill/regalloc.scm 225 */
																				bool_t BgL__ortest_1115z00_5796;

																				BgL__ortest_1115z00_5796 =
																					(BgL_classz00_5787 ==
																					BgL_oclassz00_5793);
																				if (BgL__ortest_1115z00_5796)
																					{	/* SawMill/regalloc.scm 225 */
																						BgL_res2777z00_5792 =
																							BgL__ortest_1115z00_5796;
																					}
																				else
																					{	/* SawMill/regalloc.scm 225 */
																						long BgL_odepthz00_5797;

																						BgL_odepthz00_5797 =
																							BGL_CLASS_DEPTH
																							(BgL_oclassz00_5793);
																						if ((2L < BgL_odepthz00_5797))
																							{	/* SawMill/regalloc.scm 225 */
																								obj_t BgL_arg1797z00_5798;

																								BgL_arg1797z00_5798 =
																									BGL_CLASS_ANCESTORS_REF
																									(BgL_oclassz00_5793, 2L);
																								BgL_res2777z00_5792 =
																									(BgL_arg1797z00_5798 ==
																									BgL_classz00_5787);
																							}
																						else
																							{	/* SawMill/regalloc.scm 225 */
																								BgL_res2777z00_5792 =
																									((bool_t) 0);
																							}
																					}
																			}
																		}
																		BgL_test3192z00_8981 = BgL_res2777z00_5792;
																	}
															}
														}
													}
													if (BgL_test3192z00_8981)
														{
															obj_t BgL_l1603z00_5800;

															BgL_l1603z00_5800 = ((obj_t) BgL_regsz00_5610);
														BgL_zc3z04anonymousza32583ze3z87_5799:
															if (PAIRP(BgL_l1603z00_5800))
																{	/* SawMill/regalloc.scm 227 */
																	{	/* SawMill/regalloc.scm 227 */
																		obj_t BgL_rz00_5801;

																		BgL_rz00_5801 = CAR(BgL_l1603z00_5800);
																		{	/* SawMill/regalloc.scm 227 */
																			obj_t BgL_arg2585z00_5802;

																			BgL_arg2585z00_5802 =
																				(((BgL_rtl_insz00_bglt) COBJECT(
																						((BgL_rtl_insz00_bglt)
																							BgL_oz00_5785)))->BgL_destz00);
																			BGl_interferezd2regz12zc0zzsaw_registerzd2allocationzd2
																				(BgL_arg2585z00_5802, BgL_rz00_5801);
																		}
																	}
																	{
																		obj_t BgL_l1603z00_9010;

																		BgL_l1603z00_9010 = CDR(BgL_l1603z00_5800);
																		BgL_l1603z00_5800 = BgL_l1603z00_9010;
																		goto BgL_zc3z04anonymousza32583ze3z87_5799;
																	}
																}
															else
																{	/* SawMill/regalloc.scm 227 */
																	((bool_t) 1);
																}
														}
													else
														{	/* SawMill/regalloc.scm 225 */
															((bool_t) 0);
														}
												}
												{
													obj_t BgL_l1605z00_9014;

													BgL_l1605z00_9014 = CDR(BgL_l1605z00_5784);
													BgL_l1605z00_5784 = BgL_l1605z00_9014;
													goto BgL_zc3z04anonymousza32589ze3z87_5783;
												}
											}
										else
											{	/* SawMill/regalloc.scm 229 */
												((bool_t) 1);
											}
									}
								}
								{
									obj_t BgL_l1608z00_9017;

									BgL_l1608z00_9017 = CDR(BgL_l1608z00_5804);
									BgL_l1608z00_5804 = BgL_l1608z00_9017;
									goto BgL_zc3z04anonymousza32575ze3z87_5803;
								}
							}
						else
							{	/* SawMill/regalloc.scm 230 */
								BgL_tmpz00_8974 = ((bool_t) 1);
							}
					}
				}
				return BBOOL(BgL_tmpz00_8974);
			}
		}

	}



/* protect-interference! */
	obj_t BGl_protectzd2interferencez12zc0zzsaw_registerzd2allocationzd2(obj_t
		BgL_oz00_74, obj_t BgL_regsz00_75)
	{
		{	/* SawMill/regalloc.scm 222 */
			if (BGL_OBJECTP(BgL_oz00_74))
				{	/* SawMill/regalloc.scm 222 */
					obj_t BgL_method1761z00_3477;

					{	/* SawMill/regalloc.scm 222 */
						obj_t BgL_res2783z00_5199;

						{	/* SawMill/regalloc.scm 222 */
							long BgL_objzd2classzd2numz00_5170;

							BgL_objzd2classzd2numz00_5170 =
								BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_oz00_74));
							{	/* SawMill/regalloc.scm 222 */
								obj_t BgL_arg1805z00_5171;

								BgL_arg1805z00_5171 =
									PROCEDURE_REF
									(BGl_protectzd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
									(int) (1L));
								{	/* SawMill/regalloc.scm 222 */
									int BgL_offsetz00_5174;

									BgL_offsetz00_5174 = (int) (BgL_objzd2classzd2numz00_5170);
									{	/* SawMill/regalloc.scm 222 */
										long BgL_offsetz00_5175;

										BgL_offsetz00_5175 =
											((long) (BgL_offsetz00_5174) - OBJECT_TYPE);
										{	/* SawMill/regalloc.scm 222 */
											long BgL_modz00_5176;

											BgL_modz00_5176 =
												(BgL_offsetz00_5175 >> (int) ((long) ((int) (4L))));
											{	/* SawMill/regalloc.scm 222 */
												long BgL_restz00_5178;

												BgL_restz00_5178 =
													(BgL_offsetz00_5175 &
													(long) (
														(int) (
															((long) (
																	(int) (
																		(1L <<
																			(int) ((long) ((int) (4L)))))) - 1L))));
												{	/* SawMill/regalloc.scm 222 */

													{	/* SawMill/regalloc.scm 222 */
														obj_t BgL_bucketz00_5180;

														BgL_bucketz00_5180 =
															VECTOR_REF(
															((obj_t) BgL_arg1805z00_5171), BgL_modz00_5176);
														BgL_res2783z00_5199 =
															VECTOR_REF(
															((obj_t) BgL_bucketz00_5180), BgL_restz00_5178);
						}}}}}}}}
						BgL_method1761z00_3477 = BgL_res2783z00_5199;
					}
					return
						(VA_PROCEDUREP(BgL_method1761z00_3477) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_method1761z00_3477)) (BgL_method1761z00_3477,
							BgL_oz00_74, BgL_regsz00_75, BEOA) : ((obj_t(*)(obj_t, obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_method1761z00_3477)) (BgL_method1761z00_3477,
							BgL_oz00_74, BgL_regsz00_75));
				}
			else
				{	/* SawMill/regalloc.scm 222 */
					obj_t BgL_fun2619z00_3478;

					BgL_fun2619z00_3478 =
						PROCEDURE_REF
						(BGl_protectzd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
						(int) (0L));
					return (VA_PROCEDUREP(BgL_fun2619z00_3478) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_fun2619z00_3478)) (BgL_fun2619z00_3478,
							BgL_oz00_74, BgL_regsz00_75, BEOA) : ((obj_t(*)(obj_t, obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_fun2619z00_3478)) (BgL_fun2619z00_3478,
							BgL_oz00_74, BgL_regsz00_75));
				}
		}

	}



/* &protect-interference! */
	obj_t BGl_z62protectzd2interferencez12za2zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5611, obj_t BgL_oz00_5612, obj_t BgL_regsz00_5613)
	{
		{	/* SawMill/regalloc.scm 222 */
			return
				BGl_protectzd2interferencez12zc0zzsaw_registerzd2allocationzd2
				(BgL_oz00_5612, BgL_regsz00_5613);
		}

	}



/* type-interference! */
	BGL_EXPORTED_DEF obj_t
		BGl_typezd2interferencez12zc0zzsaw_registerzd2allocationzd2
		(BgL_backendz00_bglt BgL_backz00_81, obj_t BgL_regsz00_82)
	{
		{	/* SawMill/regalloc.scm 326 */
			{	/* SawMill/regalloc.scm 326 */
				obj_t BgL_method1763z00_3479;

				{	/* SawMill/regalloc.scm 326 */
					obj_t BgL_res2789z00_5231;

					{	/* SawMill/regalloc.scm 326 */
						long BgL_objzd2classzd2numz00_5202;

						BgL_objzd2classzd2numz00_5202 =
							BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_backz00_81));
						{	/* SawMill/regalloc.scm 326 */
							obj_t BgL_arg1805z00_5203;

							BgL_arg1805z00_5203 =
								PROCEDURE_REF
								(BGl_typezd2interferencez12zd2envz12zzsaw_registerzd2allocationzd2,
								(int) (1L));
							{	/* SawMill/regalloc.scm 326 */
								int BgL_offsetz00_5206;

								BgL_offsetz00_5206 = (int) (BgL_objzd2classzd2numz00_5202);
								{	/* SawMill/regalloc.scm 326 */
									long BgL_offsetz00_5207;

									BgL_offsetz00_5207 =
										((long) (BgL_offsetz00_5206) - OBJECT_TYPE);
									{	/* SawMill/regalloc.scm 326 */
										long BgL_modz00_5208;

										BgL_modz00_5208 =
											(BgL_offsetz00_5207 >> (int) ((long) ((int) (4L))));
										{	/* SawMill/regalloc.scm 326 */
											long BgL_restz00_5210;

											BgL_restz00_5210 =
												(BgL_offsetz00_5207 &
												(long) (
													(int) (
														((long) (
																(int) (
																	(1L <<
																		(int) ((long) ((int) (4L)))))) - 1L))));
											{	/* SawMill/regalloc.scm 326 */

												{	/* SawMill/regalloc.scm 326 */
													obj_t BgL_bucketz00_5212;

													BgL_bucketz00_5212 =
														VECTOR_REF(
														((obj_t) BgL_arg1805z00_5203), BgL_modz00_5208);
													BgL_res2789z00_5231 =
														VECTOR_REF(
														((obj_t) BgL_bucketz00_5212), BgL_restz00_5210);
					}}}}}}}}
					BgL_method1763z00_3479 = BgL_res2789z00_5231;
				}
				return
					(VA_PROCEDUREP(BgL_method1763z00_3479) ? ((obj_t(*)(obj_t,
								...))
						PROCEDURE_ENTRY(BgL_method1763z00_3479)) (BgL_method1763z00_3479,
						((obj_t) BgL_backz00_81), BgL_regsz00_82, BEOA) : ((obj_t(*)(obj_t,
								obj_t,
								obj_t))
						PROCEDURE_ENTRY(BgL_method1763z00_3479)) (BgL_method1763z00_3479,
						((obj_t) BgL_backz00_81), BgL_regsz00_82));
			}
		}

	}



/* &type-interference! */
	obj_t BGl_z62typezd2interferencez12za2zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5614, obj_t BgL_backz00_5615, obj_t BgL_regsz00_5616)
	{
		{	/* SawMill/regalloc.scm 326 */
			return
				BGl_typezd2interferencez12zc0zzsaw_registerzd2allocationzd2(
				((BgL_backendz00_bglt) BgL_backz00_5615), BgL_regsz00_5616);
		}

	}



/* rtl-size */
	obj_t BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(obj_t BgL_oz00_107)
	{
		{	/* SawMill/regalloc.scm 784 */
			if (BGL_OBJECTP(BgL_oz00_107))
				{	/* SawMill/regalloc.scm 784 */
					obj_t BgL_method1765z00_3481;

					{	/* SawMill/regalloc.scm 784 */
						obj_t BgL_res2794z00_5262;

						{	/* SawMill/regalloc.scm 784 */
							long BgL_objzd2classzd2numz00_5233;

							BgL_objzd2classzd2numz00_5233 =
								BGL_OBJECT_CLASS_NUM(((BgL_objectz00_bglt) BgL_oz00_107));
							{	/* SawMill/regalloc.scm 784 */
								obj_t BgL_arg1805z00_5234;

								BgL_arg1805z00_5234 =
									PROCEDURE_REF
									(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
									(int) (1L));
								{	/* SawMill/regalloc.scm 784 */
									int BgL_offsetz00_5237;

									BgL_offsetz00_5237 = (int) (BgL_objzd2classzd2numz00_5233);
									{	/* SawMill/regalloc.scm 784 */
										long BgL_offsetz00_5238;

										BgL_offsetz00_5238 =
											((long) (BgL_offsetz00_5237) - OBJECT_TYPE);
										{	/* SawMill/regalloc.scm 784 */
											long BgL_modz00_5239;

											BgL_modz00_5239 =
												(BgL_offsetz00_5238 >> (int) ((long) ((int) (4L))));
											{	/* SawMill/regalloc.scm 784 */
												long BgL_restz00_5241;

												BgL_restz00_5241 =
													(BgL_offsetz00_5238 &
													(long) (
														(int) (
															((long) (
																	(int) (
																		(1L <<
																			(int) ((long) ((int) (4L)))))) - 1L))));
												{	/* SawMill/regalloc.scm 784 */

													{	/* SawMill/regalloc.scm 784 */
														obj_t BgL_bucketz00_5243;

														BgL_bucketz00_5243 =
															VECTOR_REF(
															((obj_t) BgL_arg1805z00_5234), BgL_modz00_5239);
														BgL_res2794z00_5262 =
															VECTOR_REF(
															((obj_t) BgL_bucketz00_5243), BgL_restz00_5241);
						}}}}}}}}
						BgL_method1765z00_3481 = BgL_res2794z00_5262;
					}
					return
						(VA_PROCEDUREP(BgL_method1765z00_3481) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_method1765z00_3481)) (BgL_method1765z00_3481,
							BgL_oz00_107, BEOA) : ((obj_t(*)(obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_method1765z00_3481)) (BgL_method1765z00_3481,
							BgL_oz00_107));
				}
			else
				{	/* SawMill/regalloc.scm 784 */
					obj_t BgL_fun2621z00_3482;

					BgL_fun2621z00_3482 =
						PROCEDURE_REF
						(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
						(int) (0L));
					return (VA_PROCEDUREP(BgL_fun2621z00_3482) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_fun2621z00_3482)) (BgL_fun2621z00_3482,
							BgL_oz00_107, BEOA) : ((obj_t(*)(obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_fun2621z00_3482)) (BgL_fun2621z00_3482,
							BgL_oz00_107));
				}
		}

	}



/* &rtl-size */
	obj_t BGl_z62rtlzd2siza7ez17zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5617, obj_t BgL_oz00_5618)
	{
		{	/* SawMill/regalloc.scm 784 */
			return BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(BgL_oz00_5618);
		}

	}



/* method-init */
	obj_t BGl_methodzd2initzd2zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
				BGl_blockz00zzsaw_defsz00,
				BGl_proc2862z00zzsaw_registerzd2allocationzd2,
				BGl_string2863z00zzsaw_registerzd2allocationzd2);
			BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_rtlzd2siza7ezd2envza7zzsaw_registerzd2allocationzd2,
				BGl_rtl_insz00zzsaw_defsz00,
				BGl_proc2864z00zzsaw_registerzd2allocationzd2,
				BGl_string2863z00zzsaw_registerzd2allocationzd2);
			return
				BGl_genericzd2addzd2methodz12z12zz__objectz00
				(BGl_dumpzd2envzd2zzsaw_defsz00,
				BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2,
				BGl_proc2865z00zzsaw_registerzd2allocationzd2,
				BGl_string2866z00zzsaw_registerzd2allocationzd2);
		}

	}



/* &dump-rtl_ins/ra1771 */
	obj_t BGl_z62dumpzd2rtl_inszf2ra1771z42zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5626, obj_t BgL_oz00_5627, obj_t BgL_pz00_5628,
		obj_t BgL_mz00_5629)
	{
		{	/* SawMill/regalloc.scm 801 */
			{

				{	/* SawMill/regalloc.scm 801 */
					obj_t BgL_nextzd2method1770zd2_5807;

					BgL_nextzd2method1770zd2_5807 =
						BGl_findzd2superzd2classzd2methodzd2zz__objectz00(
						((BgL_objectz00_bglt)
							((BgL_rtl_insz00_bglt) BgL_oz00_5627)),
						BGl_dumpzd2envzd2zzsaw_defsz00,
						BGl_rtl_inszf2razf2zzsaw_registerzd2allocationzd2);
					(VA_PROCEDUREP(BgL_nextzd2method1770zd2_5807) ? ((obj_t(*)(obj_t,
									...))
							PROCEDURE_ENTRY(BgL_nextzd2method1770zd2_5807))
						(BgL_nextzd2method1770zd2_5807,
							((obj_t) ((BgL_rtl_insz00_bglt) BgL_oz00_5627)), BgL_pz00_5628,
							BgL_mz00_5629, BEOA) : ((obj_t(*)(obj_t, obj_t, obj_t,
									obj_t))
							PROCEDURE_ENTRY(BgL_nextzd2method1770zd2_5807))
						(BgL_nextzd2method1770zd2_5807,
							((obj_t) ((BgL_rtl_insz00_bglt) BgL_oz00_5627)), BgL_pz00_5628,
							BgL_mz00_5629));
				}
				return BNIL;
			}
		}

	}



/* &rtl-size-rtl_ins1769 */
	obj_t BGl_z62rtlzd2siza7ezd2rtl_ins1769zc5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5630, obj_t BgL_oz00_5631)
	{
		{	/* SawMill/regalloc.scm 794 */
			{	/* SawMill/regalloc.scm 795 */
				long BgL_tmpz00_9145;

				{	/* SawMill/regalloc.scm 796 */
					obj_t BgL_arg2623z00_5809;

					BgL_arg2623z00_5809 =
						BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(
						(((BgL_rtl_insz00_bglt) COBJECT(
									((BgL_rtl_insz00_bglt) BgL_oz00_5631)))->BgL_argsz00));
					BgL_tmpz00_9145 = (1L + (long) CINT(BgL_arg2623z00_5809));
				}
				return BINT(BgL_tmpz00_9145);
			}
		}

	}



/* &rtl-size-block1767 */
	obj_t BGl_z62rtlzd2siza7ezd2block1767zc5zzsaw_registerzd2allocationzd2(obj_t
		BgL_envz00_5632, obj_t BgL_oz00_5633)
	{
		{	/* SawMill/regalloc.scm 790 */
			return
				BGl_rtlzd2siza7ez75zzsaw_registerzd2allocationzd2(
				(((BgL_blockz00_bglt) COBJECT(
							((BgL_blockz00_bglt) BgL_oz00_5633)))->BgL_firstz00));
		}

	}



/* imported-modules-init */
	obj_t BGl_importedzd2moduleszd2initz00zzsaw_registerzd2allocationzd2(void)
	{
		{	/* SawMill/regalloc.scm 15 */
			BGl_modulezd2initializa7ationz75zztools_tracez00(54713316L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzengine_paramz00(517137079L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzast_varz00(90839984L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzast_nodez00(469732712L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zztype_typez00(515343395L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zztype_cachez00(346491734L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zztools_shapez00(365925558L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zztools_speekz00(61247943L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzbackend_backendz00(216206620L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzsaw_libz00(57049157L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzsaw_defsz00(404844772L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzsaw_node2rtlz00(20930040L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			BGl_modulezd2initializa7ationz75zzsaw_regsetz00(454038607L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
			return
				BGl_modulezd2initializa7ationz75zzsaw_regutilsz00(237915200L,
				BSTRING_TO_STRING(BGl_string2867z00zzsaw_registerzd2allocationzd2));
		}

	}

#ifdef __cplusplus
}
#endif
