6#if defined(TARGET_ARCH_X64)
33 signature,
function_name, UntaggedFunction::kRegularFunction,
true,
false,
34 false,
false,
false, owner_class, TokenPosition::kNoSource));
39static void GenerateCallToCallRuntimeStub(compiler::Assembler* assembler,
44 __ PushObject(Object::null_object());
45 __ PushObject(smi_length);
46 __ PushObject(Object::null_object());
47 ASSERT(kAllocateArrayRuntimeEntry.argument_count() == argc);
48 __ CallRuntime(kAllocateArrayRuntimeEntry, argc);
59 const char*
kName =
"Test_CallRuntimeStubCode";
60 compiler::ObjectPoolBuilder object_pool_builder;
61 compiler::Assembler assembler(&object_pool_builder);
62 GenerateCallToCallRuntimeStub(&assembler,
length);
63 SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
74static void GenerateCallToCallLeafRuntimeStub(compiler::Assembler* assembler,
75 const char* str_value,
76 intptr_t lhs_index_value,
77 intptr_t rhs_index_value,
78 intptr_t length_value) {
85 compiler::LeafRuntimeScope rt(assembler,
92 rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
101 const char* str_value =
"abAB";
102 intptr_t lhs_index_value = 0;
103 intptr_t rhs_index_value = 2;
104 intptr_t length_value = 2;
105 const char*
kName =
"Test_CallLeafRuntimeStubCode";
106 compiler::ObjectPoolBuilder object_pool_builder;
107 compiler::Assembler assembler(&object_pool_builder);
108 GenerateCallToCallLeafRuntimeStub(&assembler, str_value, lhs_index_value,
109 rhs_index_value, length_value);
110 SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
112 *
CreateFunction(
"Test_CallLeafRuntimeStubCode"),
nullptr, &assembler,
114 if (FLAG_disassemble) {
static const Bool & True()
static constexpr Register kArg3Reg
static constexpr Register kArg1Reg
static constexpr Register kArg2Reg
static constexpr Register kArg4Reg
static ClassPtr New(IsolateGroup *isolate_group, bool register_class=true)
static CodePtr FinalizeCodeAndNotify(const Function &function, FlowGraphCompiler *compiler, compiler::Assembler *assembler, PoolAttachment pool_attachment, bool optimized=false, CodeStatistics *stats=nullptr)
static ObjectPtr InvokeFunction(const Function &function, const Array &arguments)
static FunctionTypePtr New(intptr_t num_parent_type_arguments=0, Nullability nullability=Nullability::kNonNullable, Heap::Space space=Heap::kOld)
static FunctionPtr New(const FunctionType &signature, const String &name, UntaggedFunction::Kind kind, bool is_static, bool is_const, bool is_abstract, bool is_external, bool is_native, const Object &owner, TokenPosition token_pos, Heap::Space space=Heap::kOld)
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static Object & ZoneHandle()
static SmiPtr New(intptr_t value)
static StringPtr New(const char *cstr, Heap::Space space=Heap::kNew)
static StringPtr New(Thread *thread, const char *cstr)
static Thread * Current()
Dart_NativeFunction function
const char *const class_name
const Function & RegisterFakeFunction(const char *name, const Code &code)
ISOLATE_UNIT_TEST_CASE(StackAllocatedDestruction)
constexpr intptr_t kWordSize
static FunctionPtr CreateFunction(const char *name)
const char *const function_name