Ignore:
Timestamp:
May 24, 2022, 9:03:14 PM (3 years ago)
Author:
[email protected]
Message:

Use jsc_llint as a LLInt local label prefix instead of _offlineasm.
https://bugs.webkit.org/show_bug.cgi?id=240885

Reviewed by Geoffrey Garen.

Code generated by the offlineasm is tightly coupled with JSC anyway. Might as well
make the local labels more informative about where the code came from in crash traces.

So, instead of this:

JavaScriptCore`vmEntryToJavaScript:

0x1028b5d90 <+0 >: pacibsp
0x1028b5d94 <+4 >: stp x29, x30, [sp, #-0x10]!
0x1028b5d98 <+8 >: mov x29, sp
0x1028b5d9c <+12 >: sub sp, x29, #0xb0
0x1028b5da0 <+16 >: mov x13, #0xc800
0x1028b5da4 <+20 >: add x17, x1, x13
0x1028b5da8 <+24 >: ldr w4, [x17]
0x1028b5dac <+28 >: cbnz w4, 0x1028b5f34 ; _offlineasm_doVMEntrycheckVMEntryPermission
0x1028b5db0 <+32 >: str x1, [sp]
0x1028b5db4 <+36 >: mov x17, #0x9e78
...
0x1028b5de8 <+88 >: sub x3, sp, x4
0x1028b5dec <+92 >: cmp sp, x3
0x1028b5df0 <+96 >: b.ls 0x1028b5ef4 ; _offlineasm_doVMEntry
throwStackOverflow
0x1028b5df4 <+100 >: mov x17, #0xca00
0x1028b5df8 <+104 >: add x13, x1, x17
0x1028b5dfc <+108 >: ldr x17, [x13]
0x1028b5e00 <+112 >: cmp x3, x17
0x1028b5e04 <+116 >: b.lo 0x1028b5ef4 ; _offlineasm_doVMEntrythrowStackOverflow

JavaScriptCore`_offlineasm_doVMEntrystackHeightOK:

0x1028b5e08 <+0 >: mov sp, x3
0x1028b5e0c <+4 >: mov x3, #0x4

JavaScriptCore`_offlineasm_doVMEntrycopyHeaderLoop:

0x1028b5e10 <+0 >: sub w3, w3, #0x1
0x1028b5e14 <+4 >: add x17, x2, x3, lsl #3
0x1028b5e18 <+8 >: ldr x5, [x17]

We now get this:

JavaScriptCore`vmEntryToJavaScript:

0x1028cdd90 <+0>: pacibsp
0x1028cdd94 <+4>: stp x29, x30, [sp, #-0x10]!
0x1028cdd98 <+8>: mov x29, sp
0x1028cdd9c <+12>: sub sp, x29, #0xb0
0x1028cdda0 <+16>: mov x13, #0xc800
0x1028cdda4 <+20>: add x17, x1, x13
0x1028cdda8 <+24>: ldr w4, [x17]
0x1028cddac <+28>: cbnz w4, 0x1028cdf34 ; jsc_llint_doVMEntrycheckVMEntryPermission
0x1028cddb0 <+32>: str x1, [sp]
0x1028cddb4 <+36>: mov x17, #0x9e78
...
0x1028cdde8 <+88>: sub x3, sp, x4
0x1028cddec <+92>: cmp sp, x3
0x1028cddf0 <+96>: b.ls 0x1028cdef4 ; jsc_llint_doVMEntry
throwStackOverflow
0x1028cddf4 <+100>: mov x17, #0xca00
0x1028cddf8 <+104>: add x13, x1, x17
0x1028cddfc <+108>: ldr x17, [x13]
0x1028cde00 <+112>: cmp x3, x17
0x1028cde04 <+116>: b.lo 0x1028cdef4 ; jsc_llint_doVMEntrythrowStackOverflow

JavaScriptCore`jsc_llint_doVMEntrystackHeightOK:

0x1028cde08 <+0>: mov sp, x3
0x1028cde0c <+4>: mov x3, #0x4

JavaScriptCore`jsc_llint_doVMEntrycopyHeaderLoop:

0x1028cde10 <+0>: sub w3, w3, #0x1
0x1028cde14 <+4>: add x17, x2, x3, lsl #3
0x1028cde18 <+8>: ldr x5, [x17]

  • Source/JavaScriptCore/offlineasm/arm.rb:
  • Source/JavaScriptCore/offlineasm/arm64.rb:
  • Source/JavaScriptCore/offlineasm/backends.rb:
  • Source/JavaScriptCore/offlineasm/config.rb:

Canonical link: https://commits.webkit.org/250946@main

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/backends.rb

    r281757 r294787  
    1 # Copyright (C) 2011-2020 Apple Inc. All rights reserved.
     1# Copyright (C) 2011-2022 Apple Inc. All rights reserved.
    22#
    33# Redistribution and use in source and binary forms, with or without
     
    153153class LocalLabel
    154154    def lower(name)
    155         $asm.putsLocalLabel "_offlineasm_#{self.name[1..-1]}"
     155        $asm.putsLocalLabel "jsc_llint_#{self.name[1..-1]}"
    156156    end
    157157end
     
    173173class LocalLabelReference
    174174    def asmLabel
    175         Assembler.localLabelReference("_offlineasm_"+name[1..-1])
     175        Assembler.localLabelReference("jsc_llint_"+name[1..-1])
    176176    end
    177177
    178178    def cLabel
    179         Assembler.cLocalLabelReference("_offlineasm_"+name[1..-1])
     179        Assembler.cLocalLabelReference("jsc_llint_"+name[1..-1])
    180180    end
    181181end
Note: See TracChangeset for help on using the changeset viewer.