## compile-register-moves-phase.api
#
# During early code generation we take advantage of a
# parallel-moves pseudo-operation which copies the
# contents of N registers to N other registers,
# conceptually in parallel.
#
# Here we define the api to the package which actually
# generates a legal sequence of move instructions to
# implement one such set of register moves.
# Compiled by:
#
src/lib/compiler/back/low/lib/lowhalf.libstipulate
package pp = standard_prettyprinter; # standard_prettyprinter is from
src/lib/prettyprint/big/src/standard-prettyprinter.pkg package cv = compiler_verbosity; # compiler_verbosity is from
src/lib/compiler/front/basics/main/compiler-verbosity.pkgherein
# This api is implemented in:
#
#
src/lib/compiler/back/low/mcg/compile-register-moves-phase-g.pkg #
api Compile_Register_Moves_Phase {
#
package mcg: Machcode_Controlflow_Graph; # Machcode_Controlflow_Graph is from
src/lib/compiler/back/low/mcg/machcode-controlflow-graph.api compile_register_moves
:
(Null_Or(pp::Prettyprinter), cv::Compiler_Verbosity)
->
mcg::Machcode_Controlflow_Graph
->
mcg::Machcode_Controlflow_Graph;
};
end;
## COPYRIGHT (c) 2001 Bell Labs, Lucent Technologies
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.