assembler) { \
const bool same_register = SAME_REGISTER; \
\
const Register src = kArg1Reg; \
const Register dst = same_register ? src : kArg2Reg; \
\
EnterTestFrame(assembler); \
\
__ LoadObject(src, Integer::ZoneHandle(Integer::New(value, Heap::kOld))); \
__ Load##
SIZE##FromBoxOrSmi(dst, src); \
__ MoveRegister(CallingConventions::kReturnReg, dst); \
\
LeaveTestFrame(assembler); \
\
} \
\
ASSEMBLER_TEST_RUN(Load##
SIZE##FromBoxOrSmi##VALUE##SAME_REGISTER,
test) { \
const int64_t res =
test->InvokeWithCodeAndThread<int64_t>(); \
EXPECT_EQ(
static_cast<TYPE>(VALUE),
static_cast<TYPE>(res)); \
}
#define ASSEMBLER_TEST_GENERATE(name, assembler)
152 { \
153 const bool same_register = SAME_REGISTER; \
154 \
158 \
159 EnterTestFrame(assembler); \
160 \
161 __ LoadObject(src, Integer::ZoneHandle(Integer::New(value, Heap::kOld))); \
162 __ Load##
SIZE##FromBoxOrSmi(dst, src); \
163 __ MoveRegister(CallingConventions::kReturnReg, dst); \
164 \
165 LeaveTestFrame(assembler); \
166 \
168 } \
169 \
170 ASSEMBLER_TEST_RUN(Load##
SIZE##FromBoxOrSmi##VALUE##SAME_REGISTER,
test) { \
171 const int64_t res =
test->InvokeWithCodeAndThread<int64_t>(); \
172 EXPECT_EQ(
static_cast<TYPE>(VALUE),
static_cast<TYPE>(res)); \
173 }