aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CppBackend/CPPBackend.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-12-13 16:19:29 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-12-13 16:21:37 -0800
commitfeebe4d5ac5dfe46c472e153a6ddb3d921363fbf (patch)
tree38eb416d92b2a675bfa51894077e4b5bb705b485 /lib/Target/CppBackend/CPPBackend.cpp
parent1c657dd96df9fbc82dce7c8d9dfdbda8294b2ce2 (diff)
fix unaligned load code
Diffstat (limited to 'lib/Target/CppBackend/CPPBackend.cpp')
-rw-r--r--lib/Target/CppBackend/CPPBackend.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp
index 86825fa7c5..fe71dced38 100644
--- a/lib/Target/CppBackend/CPPBackend.cpp
+++ b/lib/Target/CppBackend/CPPBackend.cpp
@@ -1023,14 +1023,14 @@ std::string CppWriter::getLoad(std::string Assign, const Value *P, const Type *T
if (T->isIntegerTy()) {
switch (Alignment) {
case 2: {
- text = Assign + "HEAP16[" + PS + ">>1]+" + sep +
+ text = Assign + "HEAP16[" + PS + ">>1]&" +
"(HEAP16[" + PS + "+2>>1]<<2)";
break;
}
case 1: {
- text = Assign + "HEAP8[" + PS + "]+" +
- "(HEAP8[" + PS + "+1|0]<<1)+" +
- "(HEAP8[" + PS + "+2|0]<<2)+" +
+ text = Assign + "HEAP8[" + PS + "]&" +
+ "(HEAP8[" + PS + "+1|0]<<1)&" +
+ "(HEAP8[" + PS + "+2|0]<<2)&" +
"(HEAP8[" + PS + "+3|0]<<3)";
break;
}