Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index a9b12eaed01a19b5c8423ece72f1516205429f95..0eafe40ae1c39e8f00c378acb5587ca482b718f3 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -201,6 +201,28 @@ void Interpreter::DoStar(compiler::InterpreterAssembler* assembler) { |
} |
+// Exchange <reg8> <reg16> |
+// |
+// Exchange two registers. |
+void Interpreter::DoExchange(compiler::InterpreterAssembler* assembler) { |
+ Node* r0 = __ BytecodeOperandReg(0); |
+ Node* r1 = __ BytecodeOperandReg(1); |
+ Node* v0 = __ LoadRegister(r0); |
+ Node* v1 = __ LoadRegister(r1); |
rmcilroy
2016/01/04 11:54:54
nit - non-single character variable names.
oth
2016/01/04 14:01:42
Done.
|
+ __ StoreRegister(v1, r0); |
+ __ StoreRegister(v0, r1); |
+ __ Dispatch(); |
+} |
+ |
+ |
+// ExchangeWide <reg16> <reg16> |
+// |
+// Exchange two registers. |
+void Interpreter::DoExchangeWide(compiler::InterpreterAssembler* assembler) { |
+ return DoExchange(assembler); |
+} |
+ |
+ |
// Mov <src> <dst> |
// |
// Stores the value of register <src> to register <dst>. |