mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Add example handler for ujit and scrape it from vm.o
This commit is contained in:
parent
475c8701d7
commit
1ba5897a03
5 changed files with 192 additions and 2 deletions
|
@ -14,9 +14,72 @@ require_relative 'bare_instructions'
|
|||
require_relative 'operands_unifications'
|
||||
require_relative 'instructions_unifications'
|
||||
|
||||
class RubyVM::UJITExampleInstructions
|
||||
include RubyVM::CEscape
|
||||
|
||||
attr_reader :name
|
||||
|
||||
def initialize name
|
||||
@name = name
|
||||
end
|
||||
|
||||
def pretty_name
|
||||
return sprintf "%s(...)(...)(...)", @name
|
||||
end
|
||||
|
||||
def jump_destination
|
||||
return @orig.name
|
||||
end
|
||||
|
||||
def bin
|
||||
return sprintf "BIN(%s)", @name
|
||||
end
|
||||
|
||||
def width
|
||||
1
|
||||
end
|
||||
|
||||
def operands_info
|
||||
""
|
||||
end
|
||||
|
||||
def rets
|
||||
return ['...']
|
||||
end
|
||||
|
||||
def pops
|
||||
return ['...']
|
||||
end
|
||||
|
||||
def attributes
|
||||
return []
|
||||
end
|
||||
|
||||
def has_attribute? *;
|
||||
return false
|
||||
end
|
||||
|
||||
def handles_sp?
|
||||
false
|
||||
end
|
||||
|
||||
def always_leaf?
|
||||
false
|
||||
end
|
||||
|
||||
@all_examples = [new('ujit_call_example')]
|
||||
|
||||
def self.to_a
|
||||
@all_examples
|
||||
end
|
||||
end
|
||||
|
||||
RubyVM::Instructions = RubyVM::BareInstructions.to_a + \
|
||||
RubyVM::OperandsUnifications.to_a + \
|
||||
RubyVM::InstructionsUnifications.to_a
|
||||
RubyVM::InstructionsUnifications.to_a + \
|
||||
RubyVM::UJITExampleInstructions.to_a
|
||||
|
||||
|
||||
|
||||
require_relative 'trace_instructions'
|
||||
RubyVM::Instructions.freeze
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue