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.


webkit-dev mailing list

Reply via email to