Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (281495 => 281496)
--- trunk/Source/_javascript_Core/ChangeLog 2021-08-24 16:29:27 UTC (rev 281495)
+++ trunk/Source/_javascript_Core/ChangeLog 2021-08-24 16:57:27 UTC (rev 281496)
@@ -1,3 +1,16 @@
+2021-08-24 Commit Queue <[email protected]>
+
+ Unreviewed, reverting r281321.
+ https://bugs.webkit.org/show_bug.cgi?id=229449
+
+ causes crashes on ARM64
+
+ Reverted changeset:
+
+ "Add some offlineasm enhancements."
+ https://bugs.webkit.org/show_bug.cgi?id=229332
+ https://commits.webkit.org/r281321
+
2021-08-23 Saam Barati <[email protected]>
Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm (281495 => 281496)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2021-08-24 16:29:27 UTC (rev 281495)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.asm 2021-08-24 16:57:27 UTC (rev 281496)
@@ -1964,8 +1964,6 @@
_js_trampoline_llint_function_for_construct_arity_check_tag_wide32:
crash()
-include? LowLevelInterpreterAdditions
-
# Value-representation-specific code.
if JSVALUE64
include LowLevelInterpreter64
Modified: trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp (281495 => 281496)
--- trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp 2021-08-24 16:29:27 UTC (rev 281495)
+++ trunk/Source/_javascript_Core/llint/LowLevelInterpreter.cpp 2021-08-24 16:57:27 UTC (rev 281496)
@@ -495,7 +495,7 @@
#if CPU(ARM_THUMB2)
#define OFFLINE_ASM_GLOBAL_LABEL(label) \
".text\n" \
- ".balign 4\n" \
+ ".align 4\n" \
".globl " SYMBOL_STRING(label) "\n" \
HIDE_SYMBOL(label) "\n" \
".thumb\n" \
@@ -504,7 +504,7 @@
#elif CPU(ARM64)
#define OFFLINE_ASM_GLOBAL_LABEL(label) \
".text\n" \
- ".balign 4\n" \
+ ".align 4\n" \
".globl " SYMBOL_STRING(label) "\n" \
HIDE_SYMBOL(label) "\n" \
SYMBOL_STRING(label) ":\n"
Modified: trunk/Source/_javascript_Core/offlineasm/ast.rb (281495 => 281496)
--- trunk/Source/_javascript_Core/offlineasm/ast.rb 2021-08-24 16:29:27 UTC (rev 281495)
+++ trunk/Source/_javascript_Core/offlineasm/ast.rb 2021-08-24 16:57:27 UTC (rev 281496)
@@ -944,15 +944,7 @@
when "globalAnnotation"
$asm.putGlobalAnnotation
when "emit"
- str = "";
- for operand in operands do
- if (operand.is_a? LocalLabelReference)
- str += operand.asmLabel
- else
- str += "#{operand.dump}"
- end
- end
- $asm.puts "#{str}"
+ $asm.puts "#{operands[0].dump}"
when "tagCodePtr", "tagReturnAddress", "untagReturnAddress", "removeCodePtrTag", "untagArrayPtr", "removeArrayPtrTag"
else
raise "Unhandled opcode #{opcode} at #{codeOriginString}"
Modified: trunk/Source/_javascript_Core/offlineasm/parser.rb (281495 => 281496)
--- trunk/Source/_javascript_Core/offlineasm/parser.rb 2021-08-24 16:29:27 UTC (rev 281495)
+++ trunk/Source/_javascript_Core/offlineasm/parser.rb 2021-08-24 16:57:27 UTC (rev 281496)
@@ -200,8 +200,6 @@
result << Token.new(CodeOrigin.new(file, lineNumber), $&)
when /\A".*"/
result << Token.new(CodeOrigin.new(file, lineNumber), $&)
- when /\?/
- result << Token.new(CodeOrigin.new(file, lineNumber), $&)
else
raise "Lexer error at #{CodeOrigin.new(file, lineNumber).to_s}, unexpected sequence #{str[0..20].inspect}"
end
@@ -263,9 +261,6 @@
@tokens = lex(data, fileName)
@idx = 0
@annotation = nil
- # FIXME: CMake does not currently set BUILT_PRODUCTS_DIR.
- # https://bugs.webkit.org/show_bug.cgi?id=229340
- @buildProductsDirectory = ENV['BUILT_PRODUCTS_DIR'];
end
def parseError(*comment)
@@ -822,22 +817,11 @@
@idx += 1
elsif @tokens[@idx] == "include"
@idx += 1
- isOptional = false
- if @tokens[@idx] == "?"
- isOptional = true
- @idx += 1
- end
parseError unless isIdentifier(@tokens[@idx])
moduleName = @tokens[@idx].string
+ fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName
@idx += 1
- additionsDirectoryName = "#{@buildProductsDirectory}/usr/local/include/WebKitAdditions/"
- fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName
- if not File.exists?(fileName)
- fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName
- end
- fileExists = File.exists?(fileName)
- raise "File not found: #{fileName}" if not fileExists and not isOptional
- list << parse(fileName) if fileExists
+ list << parse(fileName)
else
parseError "Expecting terminal #{final} #{comment}"
end
@@ -854,22 +838,12 @@
break
elsif @tokens[@idx] == "include"
@idx += 1
- isOptional = false
- if @tokens[@idx] == "?"
- isOptional = true
- @idx += 1
- end
parseError unless isIdentifier(@tokens[@idx])
moduleName = @tokens[@idx].string
+ fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName
@idx += 1
- additionsDirectoryName = "#{@buildProductsDirectory}/usr/local/include/WebKitAdditions/"
- fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName
- if not File.exists?(fileName)
- fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName
- end
- fileExists = File.exists?(fileName)
- raise "File not found: #{fileName}" if not fileExists and not isOptional
- fileList << fileName if fileExists
+
+ fileList << fileName
else
@idx += 1
end