Class: AsmJIT::X86::Assembler

Inherits:
BaseEmitter show all
Defined in:
lib/asmjit.rb,
ext/asmjit/asmjit.cc

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseEmitter

#_emit, #bind, #new_label

Class Method Details

.new(code_holder) ⇒ Object



260
261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'ext/asmjit/asmjit.cc', line 260

VALUE x86_assembler_new(VALUE self, VALUE code_holder) {
    BaseEmitterWrapper *wrapper = static_cast<BaseEmitterWrapper *>(xmalloc(sizeof(CodeHolderWrapper)));

    CodeHolderWrapper *code_wrapper;
    TypedData_Get_Struct(code_holder, CodeHolderWrapper, &code_holder_type, code_wrapper);

    x86::Assembler *assembler = new x86::Assembler(code_wrapper->code);
    assembler->addDiagnosticOptions(DiagnosticOptions::kValidateAssembler);

    wrapper->code_holder = code_holder;
    wrapper->emitter = assembler;

    return TypedData_Wrap_Struct(self, &base_emitter_type, wrapper);
}

Instance Method Details

#emit(*args) ⇒ Object



66
67
68
# File 'lib/asmjit.rb', line 66

def emit(*args)
  _emit(*(args.map { |arg| Helpers.parse_operand(arg) }))
end