diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-12-14 17:52:03 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-12-14 17:52:03 -0800 |
commit | 9aea4af82dff308f97851f3424286879e6c4ea81 (patch) | |
tree | 92d423f26cad011dd185e7e2b3526129ff93db97 /lib/Target/CppBackend/CPPBackend.cpp | |
parent | 1733d467b3d5f7f642072cfc4f1186aa269856d0 (diff) |
unaligned fixes
Diffstat (limited to 'lib/Target/CppBackend/CPPBackend.cpp')
-rw-r--r-- | lib/Target/CppBackend/CPPBackend.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index ef60b670f3..e41c8eefd3 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -1026,22 +1026,22 @@ std::string CppWriter::getLoad(std::string Assign, const Value *P, const Type *T } default: assert(0 && "bad 8 store"); } - text += sep + Assign + "HEAPF64[tempDoublePtr>>3]"; + text += sep + Assign + "+HEAPF64[tempDoublePtr>>3]"; break; } case 4: { if (T->isIntegerTy()) { switch (Alignment) { case 2: { - text = Assign + "HEAP16[" + PS + ">>1]|" + - "(HEAP16[" + PS + "+2>>1]<<2)"; + text = Assign + "HEAPU16[" + PS + ">>1]|" + + "(HEAPU16[" + PS + "+2>>1]<<2)"; break; } case 1: { - text = Assign + "HEAP8[" + PS + "]|" + - "(HEAP8[" + PS + "+1|0]<<1)|" + - "(HEAP8[" + PS + "+2|0]<<2)|" + - "(HEAP8[" + PS + "+3|0]<<3)"; + text = Assign + "HEAPU8[" + PS + "]|" + + "(HEAPU8[" + PS + "+1|0]<<8)|" + + "(HEAPU8[" + PS + "+2|0]<<16)|" + + "(HEAPU8[" + PS + "+3|0]<<24)"; break; } default: assert(0 && "bad 4i store"); @@ -1056,19 +1056,19 @@ std::string CppWriter::getLoad(std::string Assign, const Value *P, const Type *T case 1: { text = "HEAP8[tempDoublePtr]=HEAP8[" + PS + "]" + sep + "HEAP8[tempDoublePtr+1|0]=HEAP8[" + PS + "+1|0]" + sep + - "HEAP8[tempDoublePtr+2|0]=HEAP8[" + PS + "+2|0]=" + sep + + "HEAP8[tempDoublePtr+2|0]=HEAP8[" + PS + "+2|0]" + sep + "HEAP8[tempDoublePtr+3|0]=HEAP8[" + PS + "+3|0]"; break; } default: assert(0 && "bad 4f store"); } - text += Assign + "HEAPF32[tempDoublePtr>>2]"; + text += Assign + "+HEAPF32[tempDoublePtr>>2]"; } break; } case 2: { - text = Assign + "HEAP8[" + PS + "]+" + sep + - "(HEAP8[" + PS + "+1|0]<<1)"; + text = Assign + "HEAPU8[" + PS + "]|" + sep + + "(HEAPU8[" + PS + "+1|0]<<8)"; break; } default: assert(0 && "bad store"); |