diff options
author | Mike Pall <mike> | 2011-05-09 18:09:29 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-05-09 18:09:29 +0200 |
commit | 28e87d33e931661e8118a25b293213938a9e0af4 (patch) | |
tree | 8177a3e7d463ed27bbb0e63f7a12a060d836029b /src/lj_opt_fold.c | |
parent | d9c1f771a7575510a9612e0a67be6c61d83de982 (diff) | |
download | luajit-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.c | 9 |
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) | |||
1647 | static TRef kfold_xload(jit_State *J, IRIns *ir, const void *p) | 1647 | static 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 | } |