Skip to content
Snippets Groups Projects
Commit 5c4d1205 authored by Daniel Chen's avatar Daniel Chen Committed by Jason Hiser
Browse files

Modified transform.hpp

parent 134c7474
No related tags found
No related merge requests found
......@@ -25,28 +25,30 @@ namespace IRDB_SDK
extern Instruction_t* insertAssemblyBefore (FileIR_t* firp, Instruction_t* before, string assembly, Instruction_t *target=nullptr);
extern Instruction_t* insertAssemblyAfter (FileIR_t* firp, Instruction_t* after , string assembly, Instruction_t *target=nullptr);
/*
* The insertAssemblyInstructionsBefore function takes in a group of (semicolon-seperated) assembly statements and inserts them into the
* The insertAssemblyInstructionsBefore function takes in a group of (semicolon/newline-seperated) assembly statements and other template parameters, and insert them into the
* program before the "before" instruction.
* Param: firp -- The current FileIR_t object
* before -- The instruction that the new instructions will be inserted before
* instructions -- The assembly to be inserted. Typical assembly formatting applies: instructions
* templateins -- The assembly template to be inserted. Typical assembly formatting applies: instructions
* start on new lines, defined labels are allowed. For x86, the format must be in NASM style assembly.
* templateParams -- The template arguments to be substituted into the template string.
* Returns: A vector of the newly inserted instructions.
* Side Effect: The new instructions are inserted into the IRDB data structures.
*/
extern std::vector<Instruction_t*> insertAssemblyInstructionsBefore (FileIR_t* firp, Instruction_t* before, string instructions, Instruction_t *target=nullptr);
extern std::vector<Instruction_t*> insertAssemblyInstructionsBefore (FileIR_t* firp, Instruction_t* before, string templateIns, vector<string> templateParams);
/*
* The insertAssemblyInstructionsAfter function takes in a group of (semicolon-seperated) assembly statements and inserts them into the
* The insertAssemblyInstructionsAfter function takes in a group of (semicolon/newline-seperated) assembly statements and other template parameters, and insert them into the
* program after the "after" instruction.
* Param: firp -- The current FileIR_t object
* after -- The instruction that the new instructions will be inserted after
* instructions -- The assembly to be inserted. Typical assembly formatting applies: instructions
* templateins -- The assembly template to be inserted. Typical assembly formatting applies: instructions
* start on new lines, defined labels are allowed. For x86, the format must be in NASM style assembly.
* templateParams -- The template arguments to be substituted into the template string.
* Returns: A vector of the newly inserted instructions.
* Side Effect: The new instructions are inserted into the IRDB data structures.
*/
extern std::vector<Instruction_t*> insertAssemblyInstructionsAfter (FileIR_t* firp, Instruction_t* after , string instructions, Instruction_t *target=nullptr);
extern std::vector<Instruction_t*> insertAssemblyInstructionsAfter (FileIR_t* firp, Instruction_t* after , string templateIns, vector<string> templateParams);
extern Instruction_t* insertDataBitsBefore (FileIR_t* firp, Instruction_t* before, string dataBits, Instruction_t *target=nullptr);
extern Instruction_t* insertDataBitsAfter (FileIR_t* firp, Instruction_t* after , string dataBits, Instruction_t *target=nullptr);
......
......@@ -36,6 +36,8 @@ namespace IRDB_SDK
Instruction_t* insertAssemblyAfter (Instruction_t* p_after , const string &p_asm, Instruction_t* p_targ=nullptr);
Instruction_t* insertDataBitsBefore (Instruction_t* p_before, const string &p_asm, Instruction_t* p_targ=nullptr);
Instruction_t* insertDataBitsAfter (Instruction_t* p_after , const string &p_asm, Instruction_t* p_targ=nullptr);
vector<Instruction_t*> insertAssemblyInstructionsBefore(Instruction_t* before, string templateIns, vector<string> templateParams);
vector<Instruction_t*> insertAssemblyInstructionsAfter(Instruction_t* after, string templateIns, vector<string> templateParams);
Instruction_t* addNewDataBits (const string& p_bits);
Instruction_t* addNewAssembly (const string& p_asm);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment