diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-12-13 16:19:29 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-12-13 16:21:37 -0800 |
commit | feebe4d5ac5dfe46c472e153a6ddb3d921363fbf (patch) | |
tree | 38eb416d92b2a675bfa51894077e4b5bb705b485 /lib/Target/CppBackend/CPPBackend.cpp | |
parent | 1c657dd96df9fbc82dce7c8d9dfdbda8294b2ce2 (diff) |
fix unaligned load code
Diffstat (limited to 'lib/Target/CppBackend/CPPBackend.cpp')
-rw-r--r-- | lib/Target/CppBackend/CPPBackend.cpp | 8 |
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; } |