working on fixing a few things, moving code to passes...

master
_xeroxz 3 years ago
parent dca70322fe
commit 96c238e24f

@ -63,11 +63,53 @@ class pass_t {
explicit pass_t(decomp::sym_type_t sym_type) : m_sym_type(sym_type){}; explicit pass_t(decomp::sym_type_t sym_type) : m_sym_type(sym_type){};
/// <summary> /// <summary>
/// virtual method which must be implimented by the pass that inherits this /// This virtual method is invoked before the recomp stage of Theodosius. This
/// class. /// allows you to manipulate symbols in a generic manner.
/// </summary> /// </summary>
/// <param name="sym">a symbol of the same type of m_sym_type.</param> /// <param name="sym">a symbol of the same type of m_sym_type.</param>
virtual void run(decomp::symbol_t* sym) = 0; virtual void pre_recomp_pass(decomp::symbol_t* sym) = 0;
/// <summary>
/// This virtual method is invoked prior to calling the "allocator". This
/// allows you to manipulate the symbol prior to memory being allocated for
/// it.
/// </summary>
/// <param name="sym">The symbol that memory is being allocated for.</param>
/// <param name="size">The size of the symbol that memory is being allocated
/// for.</param>
/// <returns>returns the size of the symbol.</returns>
virtual std::uint32_t pre_allocation_pass(decomp::symbol_t* sym,
std::uint32_t size) = 0;
/// <summary>
/// This virtual method is invoked after the call to the "allocator". This
/// allows you to manipulate the symbol after memory has been allocated for
/// it.
/// </summary>
/// <param name="dest">Allocation address (can be linear virtual address or
/// file offset address)</param>
/// <param name="sym">The symbol for which allocation was made for.</param>
/// <param name="size">Size of the allocation.</param>
virtual void post_allocation_pass(decomp::symbol_t* sym,
std::uintptr_t dest,
std::uint32_t size) = 0;
/// <summary>
/// This virtual method is invoked prior to calling the "copier". This allows
/// you to manipulate the symbol prior to it being copied into memory.
/// </summary>
/// <param name="sym">Symbol being copied into memory...</param>
/// <param name="dest">Memory destination of the copy...</param>
/// <param name="size"></param>
/// <returns></returns>
virtual std::uintptr_t pre_copier_pass(decomp::symbol_t* sym,
std::uintptr_t dest,
std::uint32_t size) = 0;
virtual void post_copier_pass() = 0;
virtual void pre_resolver_pass() = 0;
virtual void post_resolver_pass() = 0;
/// <summary> /// <summary>
/// gets the passes symbol type. /// gets the passes symbol type.

Loading…
Cancel
Save