diff options
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; } |