summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-05-09 18:09:29 +0200
committerMike Pall <mike>2011-05-09 18:09:29 +0200
commit28e87d33e931661e8118a25b293213938a9e0af4 (patch)
tree8177a3e7d463ed27bbb0e63f7a12a060d836029b /src/lj_opt_fold.c
parentd9c1f771a7575510a9612e0a67be6c61d83de982 (diff)
downloadluajit-28e87d33e931661e8118a25b293213938a9e0af4.tar.gz
luajit-28e87d33e931661e8118a25b293213938a9e0af4.tar.bz2
luajit-28e87d33e931661e8118a25b293213938a9e0af4.zip
Use common helper functions for unaligned loads.
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 48f2c40d..c8b4edfe 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -1647,16 +1647,13 @@ LJFOLDF(comm_bxor)
1647static TRef kfold_xload(jit_State *J, IRIns *ir, const void *p) 1647static TRef kfold_xload(jit_State *J, IRIns *ir, const void *p)
1648{ 1648{
1649 int32_t k; 1649 int32_t k;
1650#if !LJ_TARGET_X86ORX64
1651#error "Missing support for unaligned loads"
1652#endif
1653 switch (irt_type(ir->t)) { 1650 switch (irt_type(ir->t)) {
1654 case IRT_NUM: return lj_ir_knum_u64(J, *(uint64_t *)p); 1651 case IRT_NUM: return lj_ir_knum_u64(J, *(uint64_t *)p);
1655 case IRT_I8: k = (int32_t)*(int8_t *)p; break; 1652 case IRT_I8: k = (int32_t)*(int8_t *)p; break;
1656 case IRT_U8: k = (int32_t)*(uint8_t *)p; break; 1653 case IRT_U8: k = (int32_t)*(uint8_t *)p; break;
1657 case IRT_I16: k = (int32_t)*(int16_t *)p; break; 1654 case IRT_I16: k = (int32_t)(int16_t)lj_getu16(p); break;
1658 case IRT_U16: k = (int32_t)*(uint16_t *)p; break; 1655 case IRT_U16: k = (int32_t)(uint16_t)lj_getu16(p); break;
1659 case IRT_INT: case IRT_U32: k = *(int32_t *)p; break; 1656 case IRT_INT: case IRT_U32: k = (int32_t)lj_getu32(p); break;
1660 case IRT_I64: case IRT_U64: return lj_ir_kint64(J, *(uint64_t *)p); 1657 case IRT_I64: case IRT_U64: return lj_ir_kint64(J, *(uint64_t *)p);
1661 default: return 0; 1658 default: return 0;
1662 } 1659 }