Yes. I think OSX may actually require 16 byte alignment in some cases.  SSE 
seems like a major issue as well. 

Sent from my iPhone

On Jun 28, 2010, at 11:36 AM, Steve Schveighoffer <[email protected]> wrote:

> Recently, this bug has surfaced: 
> http://d.puremagic.com/issues/show_bug.cgi?id=4400
> 
> In a nutshell, sometimes the byte alignment of arrays is 8 bytes instead 16 
> bytes.
> 
> This was caused by my array append patch, because in large arrays, I store 
> the length at the front of the array.  With some queries before I created my 
> patch, I was told that 8 byte alignment was fine.  However, the alignment is 
> easy to change since it's a couple specific functions that determine the 
> padding and alignment.  So changing to 16 bytes is not an issue technically, 
> and functionally, this is only on PAGE sized arrays and larger, so 16 bytes 
> vs. 8 bytes isn't likely to cause problems.
> 
> Bearophile's main argument stems from this.  I am not a processor or assembly 
> expert, so I have no idea about this at all:
> 
> -----------------
> The 16 bytes alignment was introduced because instructions like the SSE2 
> movapd
> need 16 byte alignment:
> http://en.wikipedia.org/wiki/MOVAPD
> 
> I have recently used it here:
> http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=112670
> 
> And some other SSE* instructions work with 8 byte alignment too, but they are
> slower (future CPUs can remove such alignment requirements, some of it has
> being removed already, so in that future the GC can go back giving 8 bytes
> aligned memory).
> -----------------
> 
> So should I change it?
> 
> -Steve
> 
> 
> 
> 
> _______________________________________________
> phobos mailing list
> [email protected]
> http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to