39 using namespace v8::internal;
54 MacroAssembler assm(isolate, buffer, static_cast<int>(actual_size));
57 DoubleToIStub stub(source_reg, destination_reg, offset,
true);
58 byte* start = stub.GetCode(isolate)->instruction_start();
66 if (!source_reg.
is(
rsp)) {
71 int double_argument_slot =
80 if (!reg.
is(
rsp) && !reg.
is(
rbp) && !reg.
is(destination_reg)) {
90 __ Call(start, RelocInfo::EXTERNAL_REFERENCE);
95 for (--reg_num; reg_num >= 0; --reg_num) {
97 if (!reg.
is(
rsp) && !reg.
is(
rbp) && !reg.
is(destination_reg)) {
99 __ Assert(
equal, kRegisterWasClobbered);
104 __ movq(
rax, destination_reg);
117 reinterpret_cast<intptr_t
>(buffer));
124 return reinterpret_cast<Isolate*
>((*context)->GetIsolate());
131 Isolate* isolate = GetIsolateFrom(&context);
144 for (
size_t s = 0; s <
sizeof(source_registers) /
sizeof(
Register); s++) {
145 for (
size_t d = 0; d <
sizeof(dest_registers) /
sizeof(
Register); d++) {
void RunAllTruncationTests(ConvertDToIFunc func)
static int NumAllocatableRegisters()
static const int kMinimalBufferSize
static const int kValueOffset
void GetCode(CodeDesc *desc)
static Register FromAllocationIndex(int index)
bool is(Register reg) const
static void InitializeVM()
static void * Allocate(const size_t requested, size_t *allocated, bool is_executable)
int STDCALL ConvertDToICVersion(double d)
ConvertDToIFunc MakeConvertDToIFuncTrampoline(Isolate *isolate, Register source_reg, Register destination_reg)
ConvertDToIFuncType * ConvertDToIFunc