Re: sparc64 function alignmnet (4 or 32)?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Aug 09, 2015 at 03:19:18PM -0700, David Miller wrote:
> From: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Date: Sun, 9 Aug 2015 21:45:24 +0200
> 
> > When browsing sparc64 assembler I can see most
> > handwritten assembler routines are aligned with ".align 32".
> 
> The required alignment is 4 bytes.
> 
> Some routines are aligned to 32 bytes in order to have them begin at
> exactly an I-cache line boundary to increase I-cache utilization.
> This is done especially for "hot" routines like memcpy, memset, etc.

Makes perfect sense - thanks.
I may try to dive into this a little to make this a bit more explicit.
Something like:

ENTRY(foo) - 4 byte aligned. Use 0x0 as filler.
ENTRY_CACHE_ALIGNED - 32 bytes aligned, use 0x0 as filler.

Today ENTRY() uses 0x90 as fille but as Kjetill writes in another
mail this is a weird instruction.

Before I can change the filler to 0x0 then I need to audit all uses of ENTRY(),
because if anyone uses fallthrough then this would not work.

Let me come up with a patch later then we can judgde if this
is worthwhile then.

	Sam

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux