[webkit-dev] LLInt alignment problem on ARM

Oliver Hunt oliver at apple.com
Thu Sep 26 09:24:16 PDT 2013


I believe that there’s a mnemonic that forces alignment that we could (arguably should?) be using before these labels.

IIRC it’s something like .align N — if we aren’t doing this already we could make the lint assembler backend emit a .align 16 prior to each global symbol.

—Oliver

On Sep 26, 2013, at 1:09 AM, Gabor Rapcsanyi <rgabor at inf.u-szeged.hu> wrote:

> Hello!
> 
> I'm fighting with a strange LLInt alignment problem on ARM. As I see we put the LLInt code into .rodata section instead of .text.
> Is there a specific reason why we are doing this? If there is not I would put them to the .text section.
> 
> Here is the objdump:
> 
> ./Source/JavaScriptCore/.obj/release-shared/llint/LowLevelInterpreter.o: file format elf32-littlearm
> 
> Disassembly of section .rodata:
> 
> 00000000 <_ZStL19piecewise_construct>:
>       0:       00000000        andeq   r0, r0, r0
> 
> 00000004 <_ZStL13allocator_arg>:
>       4:       00000000        andeq   r0, r0, r0
> 
> 00000008 <_ZStL6ignore>:
>        ...
> 
> 00000009 <llint_begin>:
>       9:       e30b3eef        movw    r3, #48879      ; 0xbeef
>       d:       e34b3bad        movt    r3, #48045      ; 0xbbad
>      11:       e5830000        str     r0, [r3]
>      15:       e3a00000        mov     r0, #0
>      19:       e12fff30        blx     r0
> 
> 0000001d <llint_program_prologue>:
>      1d:       e1a0200e        mov     r2, lr
>      21:       e5852010        str     r2, [r5, #16]
>      25:       e5951008        ldr     r1, [r5, #8]
> ...
> 
> 
> The problem is that these traditional instructions are lying on odd adresses in the .rodata section.
> 
> Regards,
>  Gabor
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev



More information about the webkit-dev mailing list