2021-08-10 13:01:03 +03:00
|
|
|
[FinalModule::] Final Module.
|
|
|
|
|
|
|
|
Setting up the use of this module.
|
|
|
|
|
2022-05-17 09:46:35 +03:00
|
|
|
@ This section simply sets up the module in ways expected by //foundation//, and
|
2021-08-10 13:01:03 +03:00
|
|
|
contains no code of interest. The following constant exists only in tools
|
|
|
|
which use this module:
|
|
|
|
|
|
|
|
@d FINAL_MODULE TRUE
|
|
|
|
|
|
|
|
@ This module defines the following classes:
|
|
|
|
|
2021-09-22 19:28:55 +03:00
|
|
|
@e code_generator_CLASS
|
|
|
|
@e code_generation_CLASS
|
|
|
|
@e generated_segment_CLASS
|
2021-11-03 01:34:24 +02:00
|
|
|
@e vanilla_function_CLASS
|
2021-08-12 01:49:36 +03:00
|
|
|
@e I6_generation_data_CLASS
|
|
|
|
@e C_generation_data_CLASS
|
2021-11-01 02:07:47 +02:00
|
|
|
@e vanilla_dword_CLASS
|
2021-09-04 01:11:16 +03:00
|
|
|
@e C_property_CLASS
|
|
|
|
@e C_pv_pair_CLASS
|
2021-09-05 11:35:10 +03:00
|
|
|
@e C_property_owner_CLASS
|
2021-10-30 01:57:15 +03:00
|
|
|
@e C_supported_opcode_CLASS
|
2021-08-10 13:01:03 +03:00
|
|
|
|
|
|
|
=
|
2021-09-22 19:28:55 +03:00
|
|
|
DECLARE_CLASS(code_generator)
|
|
|
|
DECLARE_CLASS(code_generation)
|
|
|
|
DECLARE_CLASS(generated_segment)
|
2021-11-03 01:34:24 +02:00
|
|
|
DECLARE_CLASS(vanilla_function)
|
2021-08-12 01:49:36 +03:00
|
|
|
DECLARE_CLASS(I6_generation_data)
|
|
|
|
DECLARE_CLASS(C_generation_data)
|
2021-11-01 02:07:47 +02:00
|
|
|
DECLARE_CLASS(vanilla_dword)
|
2021-09-04 01:11:16 +03:00
|
|
|
DECLARE_CLASS(C_property)
|
|
|
|
DECLARE_CLASS(C_pv_pair)
|
2021-09-05 11:35:10 +03:00
|
|
|
DECLARE_CLASS(C_property_owner)
|
2021-10-30 01:57:15 +03:00
|
|
|
DECLARE_CLASS(C_supported_opcode)
|
2021-08-10 13:01:03 +03:00
|
|
|
|
|
|
|
@ Like all modules, this one must define a |start| and |end| function:
|
|
|
|
|
|
|
|
=
|
|
|
|
void FinalModule::start(void) {
|
|
|
|
@<Register this module's memory allocation reasons@>;
|
|
|
|
@<Register this module's stream writers@>;
|
|
|
|
@<Register this module's debugging log aspects@>;
|
|
|
|
@<Register this module's debugging log writers@>;
|
|
|
|
}
|
|
|
|
void FinalModule::end(void) {
|
|
|
|
}
|
|
|
|
|
|
|
|
@
|
|
|
|
|
|
|
|
@e CODE_GENERATION_MREASON
|
|
|
|
|
|
|
|
@<Register this module's memory allocation reasons@> =
|
|
|
|
Memory::reason_name(CODE_GENERATION_MREASON, "code generation workspace for objects");
|
|
|
|
|
|
|
|
@<Register this module's stream writers@> =
|
|
|
|
;
|
|
|
|
|
2021-10-03 12:50:18 +03:00
|
|
|
@e PROPERTY_ALLOCATION_DA
|
|
|
|
|
2021-08-10 13:01:03 +03:00
|
|
|
@<Register this module's debugging log aspects@> =
|
2023-09-05 10:36:51 +03:00
|
|
|
Log::declare_aspect(PROPERTY_ALLOCATION_DA, U"property allocation", FALSE, FALSE);
|
2021-08-10 13:01:03 +03:00
|
|
|
|
|
|
|
@<Register this module's debugging log writers@> =
|
|
|
|
;
|