6#if defined(TARGET_ARCH_ARM)
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);
51 __ LeaveDartFrameAndReturn();
58 const char*
kName =
"Test_CallRuntimeStubCode";
59 compiler::ObjectPoolBuilder object_pool_builder;
60 compiler::Assembler assembler(&object_pool_builder);
61 GenerateCallToCallRuntimeStub(&assembler,
length);
62 SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
73static void GenerateCallToCallLeafRuntimeStub(compiler::Assembler* assembler,
74 const char* str_value,
75 intptr_t lhs_index_value,
76 intptr_t rhs_index_value,
77 intptr_t length_value) {
84 compiler::LeafRuntimeScope rt(assembler,
87 __ LoadObject(
R0, str);
88 __ LoadObject(
R1, lhs_index);
89 __ LoadObject(
R2, rhs_index);
91 rt.Call(kCaseInsensitiveCompareUCS2RuntimeEntry, 4);
93 __ LeaveDartFrameAndReturn();
99 const char* str_value =
"abAB";
100 intptr_t lhs_index_value = 0;
101 intptr_t rhs_index_value = 2;
102 intptr_t length_value = 2;
103 const char*
kName =
"Test_CallLeafRuntimeStubCode";
104 compiler::ObjectPoolBuilder object_pool_builder;
105 compiler::Assembler assembler(&object_pool_builder);
106 GenerateCallToCallLeafRuntimeStub(&assembler, str_value, lhs_index_value,
107 rhs_index_value, length_value);
108 SafepointWriteRwLocker ml(thread, thread->isolate_group()->program_lock());
110 *
CreateFunction(
"Test_CallLeafRuntimeStubCode"),
nullptr, &assembler,
112 if (FLAG_disassemble) {
static const Bool & True()
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