Ignore:
Timestamp:
Aug 11, 2014, 8:20:04 PM (11 years ago)
Author:
[email protected]
Message:

Eliminate {push,pop}CalleeSaves in favor of individual pushes & pops
https://bugs.webkit.org/show_bug.cgi?id=127155

Reviewed by Geoffrey Garen.

Eliminated the offline assembler instructions {push,pop}CalleeSaves as well as the
ARM64 specific {push,pop}LRAndFP and replaced them with individual push and pop
instructions. Where the registers referenced by the added push and pop instructions
are not part of the offline assembler register aliases, used a newly added "emit"
offline assembler instruction which takes a string literal and outputs that
string as a native instruction.

  • llint/LowLevelInterpreter.asm:
  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/ast.rb:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
  • offlineasm/mips.rb:
  • offlineasm/parser.rb:
  • offlineasm/sh4.rb:
  • offlineasm/transform.rb:
  • offlineasm/x86.rb:
File:
1 edited

Legend:

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

    r167094 r172429  
    587587                $asm.puts "stp #{ops[0].arm64Operand(:ptr)}, #{ops[1].arm64Operand(:ptr)}, [sp, #-16]!"
    588588            }
    589         when "popLRAndFP"
    590             $asm.puts "ldp x29, x30, [sp], #16"
    591         when "pushLRAndFP"
    592             $asm.puts "stp x29, x30, [sp, #-16]!"
    593         when "popCalleeSaves"
    594             $asm.puts "ldp x28, x27, [sp], #16"
    595             $asm.puts "ldp x26, x25, [sp], #16"
    596             $asm.puts "ldp x24, x23, [sp], #16"
    597             $asm.puts "ldp x22, x21, [sp], #16"
    598             $asm.puts "ldp x20, x19, [sp], #16"
    599         when "pushCalleeSaves"
    600             $asm.puts "stp x20, x19, [sp, #-16]!"
    601             $asm.puts "stp x22, x21, [sp, #-16]!"
    602             $asm.puts "stp x24, x23, [sp, #-16]!"
    603             $asm.puts "stp x26, x25, [sp, #-16]!"
    604             $asm.puts "stp x28, x27, [sp, #-16]!"
    605589        when "move"
    606590            if operands[0].immediate?
Note: See TracChangeset for help on using the changeset viewer.