On 07/20/2015 10:19 PM, Benjamin Herrenschmidt wrote: > Currently, we get to the slow path for any unaligned access in the > backend, because we effectively preserve the bottom address bits > below the alignment requirement when comparing with the TLB entry, > so any non-0 bit there will cause the compare to fail. > > For the same number of instructions, we can instead add the access > size - 1 to the address and stick to clearing all the bottom bits. > > That means that normal unaligned accesses will not fallback (the HW > will handle them fine). Only when crossing a page boundary well we > end up having a mismatch because we'll end up pointing to the next > page which cannot possibly be in that same TLB entry. > > Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> > --- > > v3. Add MO_ALIGN support for front-ends requiring aligned accesses > v2. This is the correct version of the patch, the one that > actually works :-) > > tcg/ppc/tcg-target.c | 41 +++++++++++++++++++++++++++++++---------- > 1 file changed, 31 insertions(+), 10 deletions(-)
Applied to tcg-next. r~