aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CppBackend/CPPBackend.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-12-14 17:52:03 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-12-14 17:52:03 -0800
commit9aea4af82dff308f97851f3424286879e6c4ea81 (patch)
tree92d423f26cad011dd185e7e2b3526129ff93db97 /lib/Target/CppBackend/CPPBackend.cpp
parent1733d467b3d5f7f642072cfc4f1186aa269856d0 (diff)
unaligned fixes
Diffstat (limited to 'lib/Target/CppBackend/CPPBackend.cpp')
-rw-r--r--lib/Target/CppBackend/CPPBackend.cpp22
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");