lkml.org 
[lkml]   [2014]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH 3/4] KVM: emulate: avoid per-byte copying in instruction fetches
Il 07/05/2014 06:36, Bandan Das ha scritto:
>> > + _x = *(_type __aligned(1) *) &_fc->data[ctxt->_eip - _fc->start]; \
> For my own understanding, how does the __aligned help here ?

Except for 16-byte SSE accesses, x86 doesn't distinguish aligned and
unaligned accesses. You can read 4 bytes at 0x2345 and the processor
will do the right thing. Still it's better to tell the compiler what
we're doing.

> Wouldn't
> that result in unaligned accesses that will actually impact performance ?

These accesses *can* and will in fact be unaligned. For example, say
you have "mov ax,0x1234" which is 0xb8 0x34 0x12. When you read it into
the fetch cache, you will have data[0] == 0xb8, data[1] == 0x34, data[2]
== 0x12. Fetching the 16-bit immediate from data[1] will then be an
unaligned access.

Paolo


\
 
 \ /
  Last update: 2014-05-07 11:21    [W:0.078 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site