Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[ARM64] GNU assembler doesn't work with LLInt arm64 backend.
https://bugs.webkit.org/show_bug.cgi?id=130453

Reviewed by Filip Pizlo.

Change fp and lr to x29 and x30. Add both operand kinds to emitARM64()
at sxtw and uxtw instructions.

* offlineasm/arm64.rb:


Canonical link: https://commits.webkit.org/148698@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
Gabor Rapcsanyi committed Mar 24, 2014
1 parent 62b6024 commit d482a29
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
12 changes: 12 additions & 0 deletions Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,15 @@
2014-03-24 Gabor Rapcsanyi <rgabor@webkit.org>

[ARM64] GNU assembler doesn't work with LLInt arm64 backend.
https://bugs.webkit.org/show_bug.cgi?id=130453

Reviewed by Filip Pizlo.

Change fp and lr to x29 and x30. Add both operand kinds to emitARM64()
at sxtw and uxtw instructions.

* offlineasm/arm64.rb:

2014-03-23 Hyowon Kim <hw1008.kim@samsung.com>

Move all EFL typedefs into EflTypedefs.h.
Expand Down
14 changes: 7 additions & 7 deletions Source/JavaScriptCore/offlineasm/arm64.rb
Expand Up @@ -129,7 +129,7 @@ def arm64Operand(kind)
when 'sp'
'sp'
when 'lr'
'lr'
'x30'
else
raise "Bad register name #{@name} at #{codeOriginString}"
end
Expand Down Expand Up @@ -587,9 +587,9 @@ def lowerARM64
$asm.puts "stp #{ops[0].arm64Operand(:ptr)}, #{ops[1].arm64Operand(:ptr)}, [sp, #-16]!"
}
when "popLRAndFP"
$asm.puts "ldp fp, lr, [sp], #16"
$asm.puts "ldp x29, x30, [sp], #16"
when "pushLRAndFP"
$asm.puts "stp fp, lr, [sp, #-16]!"
$asm.puts "stp x29, x30, [sp, #-16]!"
when "popCalleeSaves"
$asm.puts "ldp x28, x27, [sp], #16"
$asm.puts "ldp x26, x25, [sp], #16"
Expand All @@ -609,13 +609,13 @@ def lowerARM64
emitARM64("mov", operands, :ptr)
end
when "sxi2p"
emitARM64("sxtw", operands, :ptr)
emitARM64("sxtw", operands, [:int, :ptr])
when "sxi2q"
emitARM64("sxtw", operands, :ptr)
emitARM64("sxtw", operands, [:int, :ptr])
when "zxi2p"
emitARM64("uxtw", operands, :ptr)
emitARM64("uxtw", operands, [:int, :ptr])
when "zxi2q"
emitARM64("uxtw", operands, :ptr)
emitARM64("uxtw", operands, [:int, :ptr])
when "nop"
$asm.puts "nop"
when "bieq", "bbeq"
Expand Down

0 comments on commit d482a29

Please sign in to comment.