aboutsummaryrefslogtreecommitdiffstats
path: root/libacc/acc.cpp
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2009-07-23 11:45:15 -0700
committerJack Palevich <jackpal@google.com>2009-07-23 11:45:15 -0700
commit89baa2083fbc71d3a9fb50ddd59c1b58347bf2f3 (patch)
treed8b78acf6178b315f37ea4264927925f8d134351 /libacc/acc.cpp
parentc1e49f96f97c9f19f9a87ea93336919fb1a04f26 (diff)
downloadsystem_core-89baa2083fbc71d3a9fb50ddd59c1b58347bf2f3.tar.gz
system_core-89baa2083fbc71d3a9fb50ddd59c1b58347bf2f3.tar.bz2
system_core-89baa2083fbc71d3a9fb50ddd59c1b58347bf2f3.zip
Fix the ARM postdecrement operator.
Add a test for ++ and -- so this bug won't happen again.
Diffstat (limited to 'libacc/acc.cpp')
-rw-r--r--libacc/acc.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index bf484901..2b0964d3 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -1628,7 +1628,7 @@ class Compiler : public ErrorSink {
o4((0xE3A00000 + t) | rN); // mov rN, #0
} else if (t >= -256 && t < 0) {
// mvn means move constant ^ ~0
- o4((0xE3E00001 - t) | rN); // mvn rN, #0
+ o4((0xE3E00000 - (t+1)) | rN); // mvn rN, #0
} else {
o4(0xE51F0000 | rN); // ldr rN, .L3
o4(0xEA000000); // b .L99