IA-32 Intel® Architecture Optimization
2-34
The size and alignment restrictions for store forwarding are illustrated in
Figure 2-2.
Coding rules to help programmers satisfy size and alignment restrictions
for store forwarding follow.
Assembly/Compiler Coding Rule 18. (H impact, M generality) A load that
forwards from a store must have the same address start point and therefore the
same alignment as the store data.
Assembly/Compiler Coding Rule 19. (H impact, M generality) The data of
a load which is forwarded from a store must be completely contained within the
store data.
Figure 2-2 Size and Alignment Restrictions in Store Forwarding
OM15155
(a) Small load after
Large Store
Store
Load
Load Aligned with
Store Will Forward
Non-Forwarding
Penalty
(b) Size of Load >=
Store
Store
Load
Penalty
(c) Size of Load >=
Store(s)
Store
Load
Penalty
(d) 128-bit Forward
Must Be 16-Byte
Aligned
Store
Load
Penalty
16-Byte
Boundary