diff options
author | Richard Osborne <richard@xmos.com> | 2009-07-16 10:42:35 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2009-07-16 10:42:35 +0000 |
commit | ccb7e96ef0ef743c822ce19aac324b429198bff2 (patch) | |
tree | fe61e988b5308bc5c137f6148e43bbed11adf4de /lib/CodeGen/MachineModuleInfo.cpp | |
parent | 7f47ce966219b8dbc37cf8c289660dd83923289f (diff) |
Expand unaligned 32 bit loads from an address which is a constant
offset from a 32 bit aligned base as follows:
ldw low, base[offset >> 2]
ldw high, base[(offset >> 2) + 1]
shr low_shifted, low, (offset & 0x3) * 8
shl high_shifted, high, 32 - (offset & 0x3) * 8
or result, low_shifted, high_shifted
Expand 32 bit loads / stores with 16 bit alignment into two 16 bit
loads / stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75902 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions