Skip to content

Commit

Permalink
Add case for returning function calls
Browse files Browse the repository at this point in the history
  • Loading branch information
hassansalehe committed Jun 26, 2021
1 parent c8816ac commit 2113204
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/common/instruction.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ class Instruction {
// raw representation of instruction
std::string raw;

const std::unordered_map<std::string, OPERATION> operation_map{
{"add", ADD}, {"sub", SUB}, {"mul", MUL}, {"shl", SHL}, };

// Default constructor
Instruction() {}

Expand Down Expand Up @@ -67,9 +70,7 @@ class Instruction {
} else if (contents[2] == "add" || contents[2] == "sub" ||
contents[2] == "mul" || contents[2] == "shl") {
destination = contents[0];
oper = (contents[2] == "add") ? ADD :
(oper = (contents[2] == "sub") ? SUB :
(oper = (contents[2] == "mul") ? MUL : SHL));
oper = operation_map.at(contents[2]);
// <result> = add nuw nsw <ty> <op1>, <op2> ; yields {ty}:result
if (contents[3] == "nuw" && contents[4] == "nsw") {
type = contents[5];
Expand All @@ -96,7 +97,7 @@ class Instruction {
oper = BITCAST;
operand1 = contents[4];
operand2 = contents[4];
} else if (contents[0] == "call") {
} else if (contents[0] == "call" || contents[2] == "call") {
oper = CALL;
}

Expand Down

0 comments on commit 2113204

Please sign in to comment.