175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
# File 'ext/asmjit/asmjit.cc', line 175
static VALUE x86_ptr(VALUE _self, VALUE regv, VALUE offsetv, VALUE sizev) {
OperandWrapper *wrapper = static_cast<OperandWrapper *>(xmalloc(sizeof(OperandWrapper)));
x86::Reg reg = x86_reg_get(regv);
if (!reg.isGp()) {
rb_raise(rb_eAsmJITError, "reg must be Gp");
}
int32_t offset = NUM2INT(offsetv);
uint32_t size = NUM2UINT(sizev);
x86::Mem mem = x86::ptr(reg.as<x86::Gp>(), offset, size);
wrapper->opnd = mem;
VALUE obj = TypedData_Wrap_Struct(cX86Mem, &operand_type, wrapper);
return obj;
}
|