Module: YTLJit::VM::TypeCodeGen::StringTypeBoxedCodeGen
- Includes:
- AbsArch
- Defined in:
- lib/ytljit/vm_type_gen.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
#gen_copy(context) ⇒ Object
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/ytljit/vm_type_gen.rb', line 182 def gen_copy(context) asm = context.assembler val = context.ret_reg context.start_using_reg(TMPR2) context.start_using_reg(TMPR3) context.start_using_reg(FUNC_ARG[0]) rbstrresurrect = OpMemAddress.new(address_of("rb_str_resurrect")) asm.with_retry do asm.mov(FUNC_ARG[0], val) asm.call_with_arg(rbstrresurrect, 1) end context.end_using_reg(FUNC_ARG[0]) context.end_using_reg(TMPR3) context.end_using_reg(TMPR2) context.ret_reg = RETR context end |