ART: GenNegLong incorrectly handled register overlap for x86
There is a bug in the GenNegLong: it should invoke
OpRegCopy(temp_reg, rl_result.reg.GetHigh());
instead of
OpRegCopy(temp_reg, rl_result.reg);
But, anyway there is no need to handle the overlap
anymore because it is already handled in OpRegCopyWide()
which is invoked from StoreValueWide().
Change-Id: I379ed23434c72a91e875e753708387be6502bc57
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
diff --git a/test/800-smali/src/Main.java b/test/800-smali/src/Main.java
index c86470c..87549d9 100644
--- a/test/800-smali/src/Main.java
+++ b/test/800-smali/src/Main.java
@@ -51,6 +51,7 @@
testCases.add(new TestCase("b/17790197", "B17790197", "getInt", null, null, 100));
testCases.add(new TestCase("FloatBadArgReg", "FloatBadArgReg", "getInt",
new Object[]{100}, null, 100));
+ testCases.add(new TestCase("negLong", "negLong", "negLong", null, null, 122142L));
}
public void runTests() {