>To represent the fact that the processor does not support bundling by
>including the following in out analgous
>"common/targ_info/proc/ia64/proc_properties.cxx":
>
> bundles = PROC_Property_Create("has_bundles");
> Processor_Group(bundles,
> PROCESSOR_UNDEFINED);
>
>Here we notice that there is no processor included, implying that no target
>support for bundles.
That's exactly what you want to do.
>Following on from this the packing of bundles, with respect to particular
>units, are captured in the analgous implementation of
>"common/targ_info/isa/ia64/isa_bundle.cxx". This, however, seems to raise
>some problems and some interesting questions. It would seem to make sense
>that as support for bundles is switched off, then it would not be necessary
>to provide implementation of "isa_bundle.cxx". Taking this approach causes,
>during the build of the targ_info directory, the a failure when trying to
>build "common/access/ti_bundle.c", which depends on tables provided by
>"isa_bundle.[ch]".
>
>It is possible to change the build system not to include,
>"common/access/ti_bundle.c"
>
>So it seems the simplest why to solve these problems is to provide an
>implementation analgous to "common/targ_info/isa/ia64/isa_bundles.cxx",
>however, the problem is that it cannot simply:
>...
Try using this as a template for isa_bundles.cxx:
============================================================
#include <stddef.h>
#include "topcode.h"
#include "isa_bundle_gen.h"
main()
{
ISA_EXEC_UNIT_TYPE
Any_Unit; // Any unit
ISA_Bundle_Begin("your-arch-name-here", 32);
/* ===== Specification for bundle packing ===== */
ISA_Bundle_Pack_Create(ISA_Bundle_Pack_Big_Endian);
Pack_Slot(0, 0, 0, 32);
/* ===== Specification for Any_Unit Type ===== */
Any_Unit = ISA_Exec_Unit_Type_Create("Any_Unit", NULL);
Instruction_Exec_Unit_Group(Any_Unit,
//
// >>>>>>>>>>>>>>>>>> list ALL of your topcodes here <<<<<<<<<<<<<<<<
//
TOP_UNDEFINED);
/* ===== Specification for template 0 ===== */
ISA_Bundle_Type_Create("any", "any", 1);
Slot (0, Any_Unit);
ISA_Bundle_End();
return 0;
}
============================================================
Ken
|