Ignore:
Timestamp:
Sep 28, 2017, 12:50:05 PM (8 years ago)
Author:
[email protected]
Message:

Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586

Reviewed by Michael Saboff.

Source/bmalloc:

This enables Gigacage on iOS using a much smaller cage size. It's not necessary for it to be so
small, but this is a good conservative starting point to start to exercise the code.

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

The hardest part of enabling Gigacage on iOS is that it requires loading global variables whil
executing JS, so the LLInt needs to know how to load from global variables on all platforms that
have Gigacage. So, this teaches ARM64 how to load from global variables.

  • offlineasm/arm64.rb:
  • offlineasm/asm.rb:
  • offlineasm/instructions.rb:
File:
1 edited

Legend:

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

    r220047 r222625  
    4747        @numLocalLabels = 0
    4848        @numGlobalLabels = 0
     49        @deferredActions = []
     50        @count = 0
    4951
    5052        @newlineSpacerState = :none
     
    7476        end
    7577        putsLastComment
     78        @deferredActions.each {
     79            | action |
     80            action.call()
     81        }
    7682        @outp.puts "OFFLINE_ASM_END" if !$emitWinAsm
    7783        @state = :cpp
     84    end
     85   
     86    def deferAction(&proc)
     87        @deferredActions << proc
     88    end
     89   
     90    def newUID
     91        @count += 1
     92        @count
    7893    end
    7994   
Note: See TracChangeset for help on using the changeset viewer.