commit | ef5598aa0e867db5243188751054c9b2223b0e5f | [log] [tgz] |
---|---|---|
author | Steinar H. Gunderson <sesse@google.com> | Mon Jan 04 12:51:31 2016 +0100 |
committer | Steinar H. Gunderson <sesse@google.com> | Mon Jan 04 12:51:31 2016 +0100 |
tree | 1907bdacf4a6eddc463c58b108e2bb4192b3540e | |
parent | 96a2e340f381ac4dae270f0fe0a8d79fad748c4d [diff] |
Make UNALIGNED_LOAD16/32 on ARMv7 go through an explicitly unaligned struct, to avoid the compiler coalescing multiple loads into a single load instruction (which only work for aligned accesses). A typical example where GCC would coalesce: uint8* p = ...; uint32 a = UNALIGNED_LOAD32(p); uint32 b = UNALIGNED_LOAD32(p + 4); uint32 c = a | b;