Changeset 172777 in webkit for trunk/Source/JavaScriptCore/offlineasm
- Timestamp:
- Aug 19, 2014, 4:25:37 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore/offlineasm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/backends.rb
r170428 r172777 67 67 68 68 BACKEND_PATTERN = Regexp.new('\\A(' + BACKENDS.join(')|(') + ')\\Z') 69 70 $allBackends = {} 71 $validBackends = {} 72 BACKENDS.each { 73 | backend | 74 $validBackends[backend] = true 75 $allBackends[backend] = true 76 } 77 78 def includeOnlyBackends(list) 79 newValidBackends = {} 80 list.each { 81 | backend | 82 if $validBackends[backend] 83 newValidBackends[backend] = true 84 end 85 } 86 $validBackends = newValidBackends 87 end 88 89 def isBackend?(backend) 90 $allBackends[backend] 91 end 92 93 def isValidBackend?(backend) 94 $validBackends[backend] 95 end 96 97 def validBackends 98 $validBackends.keys 99 end 69 100 70 101 class Node -
trunk/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb
r167094 r172777 39 39 inputFlnm = ARGV.shift 40 40 outputFlnm = ARGV.shift 41 42 validBackends = ARGV.shift 43 if validBackends 44 $stderr.puts "Only dealing with backends: #{validBackends}" 45 includeOnlyBackends(validBackends.split(",")) 46 end 41 47 42 48 $stderr.puts "offlineasm: Parsing #{inputFlnm} and creating offset extractor #{outputFlnm}." -
trunk/Source/JavaScriptCore/offlineasm/settings.rb
r170428 r172777 55 55 end 56 56 57 settingsCombinator(settingsCombinations, {}, (ast.filter(Setting).uniq.collect{|v| v.name} + BACKENDS).uniq) 57 nonBackendSettings = ast.filter(Setting).uniq.collect{ |v| v.name } 58 nonBackendSettings.delete_if { 59 | setting | 60 isBackend? setting 61 } 62 63 allBackendsFalse = {} 64 BACKENDS.each { 65 | backend | 66 allBackendsFalse[backend] = false 67 } 68 69 # This will create entries for invalid backends. That's fine. It's necessary 70 # because it ensures that generate_offsets_extractor (which knows about valid 71 # backends) has settings indices that are compatible with what asm will see 72 # (asm doesn't know about valid backends). 73 BACKENDS.each { 74 | backend | 75 map = allBackendsFalse.clone 76 map[backend] = true 77 settingsCombinator(settingsCombinations, map, nonBackendSettings) 78 } 58 79 59 80 settingsCombinations … … 74 95 BACKENDS.each { 75 96 | backend | 76 isSupported = concreteSettings[backend] 77 raise unless isSupported != nil 78 numClaimedBackends += if isSupported then 1 else 0 end 79 if isSupported 97 if concreteSettings[backend] 98 raise if selectedBackend 80 99 selectedBackend = backend 81 100 end 82 101 } 83 102 84 return if numClaimedBackends > 1103 return unless isValidBackend? selectedBackend 85 104 86 105 # Resolve the AST down to a low-level form (no macros or conditionals).
Note:
See TracChangeset
for help on using the changeset viewer.