Module: YTLJit::VM::UnboxedObjectUtil

Includes:
AbsArch
Included in:
Node::SendAllocateNode, UnboxedArrayUtil
Defined in:
lib/ytljit/vm_inline_method.rb

Constant Summary

Constants included from AbsArch

AbsArch::AL, AbsArch::BL, AbsArch::CL, AbsArch::DL, AbsArch::FUNC_ARG, AbsArch::FUNC_ARG_YTL, AbsArch::FUNC_FLOAT_ARG, AbsArch::FUNC_FLOAT_ARG_YTL, AbsArch::INDIRECT_BPR, AbsArch::INDIRECT_RETR, AbsArch::INDIRECT_SPR, AbsArch::INDIRECT_TMPR, AbsArch::INDIRECT_TMPR2, AbsArch::INDIRECT_TMPR3

Constants included from SSE

SSE::XMM0, SSE::XMM1, SSE::XMM2, SSE::XMM3, SSE::XMM4, SSE::XMM5, SSE::XMM6, SSE::XMM7

Instance Method Summary collapse

Instance Method Details

#compile_object_unboxed(context, siz) ⇒ Object



179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/ytljit/vm_inline_method.rb', line 179

def compile_object_unboxed(context, siz)
  context = gen_alloca(context, siz)
  asm = context.assembler
  asm.with_retry do
    (siz - 1).times do |i|
      off = OpIndirect.new(THEPR, i * 8)
      asm.mov(TMPR, OpImmidiateMachineWord.new(4))
      asm.mov(off, TMPR)
    end
  end
  context.ret_node = self
  context
end