Skip to content
Snippets Groups Projects
Commit f4c67e36 authored by Jason Hiser's avatar Jason Hiser :tractor:
Browse files

Merge branch 'libkeystone-integrate' into 'master'

Modified transform.hpp

See merge request opensrc/irdb-sdk!2
parents 134c7474 5c4d1205
No related branches found
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