ApfGenerator: fix (and rename) APFv6+ addArithR1
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com
Change-Id: I46a046b6fbf9160f051569a9ceca0fa46625dbe8
diff --git a/src/android/net/apf/ApfV4Generator.java b/src/android/net/apf/ApfV4Generator.java
index bf9a368..a2f93a1 100644
--- a/src/android/net/apf/ApfV4Generator.java
+++ b/src/android/net/apf/ApfV4Generator.java
@@ -15,6 +15,7 @@
*/
package android.net.apf;
+import static android.net.apf.BaseApfGenerator.Rbit.Rbit1;
import static android.net.apf.BaseApfGenerator.Register.R0;
import static android.net.apf.BaseApfGenerator.Register.R1;
@@ -73,8 +74,8 @@
}
@Override
- void addArithR1(Opcodes opcode) {
- append(new Instruction(opcode, R1));
+ void addR0ArithR1(Opcodes opcode) {
+ append(new Instruction(opcode, Rbit1)); // APFv2/4: R0 op= R1
}
/**
diff --git a/src/android/net/apf/ApfV4GeneratorBase.java b/src/android/net/apf/ApfV4GeneratorBase.java
index be3da08..6dcc338 100644
--- a/src/android/net/apf/ApfV4GeneratorBase.java
+++ b/src/android/net/apf/ApfV4GeneratorBase.java
@@ -218,14 +218,14 @@
return addLeftShift(-val);
}
- // Argument should be one of Opcodes.{ADD,MUL,DIV,AND,OR,SH}
- abstract void addArithR1(Opcodes opcode);
+ // R0 op= R1, where op should be one of Opcodes.{ADD,MUL,DIV,AND,OR,SH}
+ abstract void addR0ArithR1(Opcodes opcode);
/**
* Add an instruction to the end of the program to add register R1 to register R0.
*/
public final Type addAddR1ToR0() {
- addArithR1(Opcodes.ADD);
+ addR0ArithR1(Opcodes.ADD); // R0 += R1
return self();
}
@@ -233,7 +233,7 @@
* Add an instruction to the end of the program to multiply register R0 by register R1.
*/
public final Type addMulR0ByR1() {
- addArithR1(Opcodes.MUL);
+ addR0ArithR1(Opcodes.MUL); // R0 *= R1
return self();
}
@@ -241,7 +241,7 @@
* Add an instruction to the end of the program to divide register R0 by register R1.
*/
public final Type addDivR0ByR1() {
- addArithR1(Opcodes.DIV);
+ addR0ArithR1(Opcodes.DIV); // R0 /= R1
return self();
}
@@ -250,7 +250,7 @@
* and store the result back into register R0.
*/
public final Type addAndR0WithR1() {
- addArithR1(Opcodes.AND);
+ addR0ArithR1(Opcodes.AND); // R0 &= R1
return self();
}
@@ -259,7 +259,7 @@
* and store the result back into register R0.
*/
public final Type addOrR0WithR1() {
- addArithR1(Opcodes.OR);
+ addR0ArithR1(Opcodes.OR); // R0 |= R1
return self();
}
@@ -268,7 +268,7 @@
* register R1.
*/
public final Type addLeftShiftR0ByR1() {
- addArithR1(Opcodes.SH);
+ addR0ArithR1(Opcodes.SH); // R0 <<= R1
return self();
}
diff --git a/src/android/net/apf/ApfV6GeneratorBase.java b/src/android/net/apf/ApfV6GeneratorBase.java
index f76dc3d..b8359ec 100644
--- a/src/android/net/apf/ApfV6GeneratorBase.java
+++ b/src/android/net/apf/ApfV6GeneratorBase.java
@@ -17,6 +17,7 @@
import static android.net.apf.BaseApfGenerator.Rbit.Rbit0;
import static android.net.apf.BaseApfGenerator.Rbit.Rbit1;
+import static android.net.apf.BaseApfGenerator.Register.R0;
import static android.net.apf.BaseApfGenerator.Register.R1;
import androidx.annotation.NonNull;
@@ -610,8 +611,8 @@
}
@Override
- void addArithR1(Opcodes opcode) {
- append(new Instruction(opcode, R1));
+ void addR0ArithR1(Opcodes opcode) {
+ append(new Instruction(opcode, R0)); // APFv6+: R0 op= R1
}
/**