1
0
Fork 0
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:
Alan Wu 2020-09-03 11:08:16 -04:00 committed by Maxime Chevalier-Boisvert
parent 475c8701d7
commit 1ba5897a03
5 changed files with 192 additions and 2 deletions

View file

@ -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