[vm] Remove KBC support from NativeArguments.

TEST=ci
Change-Id: If28557e41839ac767992e4dc342d47cce3a6d93a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/282122
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Ryan Macnak 2023-02-13 18:24:32 +00:00 committed by Commit Queue
parent 77174eff4a
commit 97d302aaae
2 changed files with 3 additions and 21 deletions

View file

@ -84,8 +84,7 @@ class NativeArguments {
ObjectPtr ArgAt(int index) const {
ASSERT((index >= 0) && (index < ArgCount()));
ObjectPtr* arg_ptr =
&(argv_[ReverseArgOrderBit::decode(argc_tag_) ? index : -index]);
ObjectPtr* arg_ptr = &(argv_[-index]);
// Tell MemorySanitizer the ObjectPtr was initialized (by generated code).
MSAN_UNPOISON(arg_ptr, kWordSize);
return *arg_ptr;
@ -94,9 +93,7 @@ class NativeArguments {
void SetArgAt(int index, const Object& value) const {
ASSERT(thread_->execution_state() == Thread::kThreadInVM);
ASSERT((index >= 0) && (index < ArgCount()));
ObjectPtr* arg_ptr =
&(argv_[ReverseArgOrderBit::decode(argc_tag_) ? index : -index]);
*arg_ptr = value.ptr();
argv_[-index] = value.ptr();
}
// Does not include hidden type arguments vector.
@ -224,29 +221,14 @@ class NativeArguments {
kArgcSize = 24,
kFunctionBit = kArgcBit + kArgcSize,
kFunctionSize = 3,
kReverseArgOrderBit = kFunctionBit + kFunctionSize,
kReverseArgOrderSize = 1,
};
class ArgcBits : public BitField<intptr_t, int32_t, kArgcBit, kArgcSize> {};
class FunctionBits
: public BitField<intptr_t, int, kFunctionBit, kFunctionSize> {};
class ReverseArgOrderBit
: public BitField<intptr_t, bool, kReverseArgOrderBit, 1> {};
friend class Api;
friend class NativeEntry;
friend class Simulator;
// Allow simulator to create NativeArguments in reverse order
// on the stack.
NativeArguments(Thread* thread,
int argc_tag,
ObjectPtr* argv,
ObjectPtr* retval)
: thread_(thread),
argc_tag_(ReverseArgOrderBit::update(true, argc_tag)),
argv_(argv),
retval_(retval) {}
// Since this function is passed a RawObject directly, we need to be
// exceedingly careful when we use it. If there are any other side
// effects in the statement that may cause GC, it could lead to

View file

@ -1419,7 +1419,7 @@ void Simulator::SupervisorCall(Instr* instr) {
THR_Print("Call to host function at 0x%" Pd "\n", external);
}
if (redirection->call_kind() == kRuntimeCall) {
NativeArguments arguments(NULL, 0, NULL, NULL);
NativeArguments arguments;
ASSERT(sizeof(NativeArguments) == 4 * kWordSize);
arguments.thread_ = reinterpret_cast<Thread*>(get_register(R0));
arguments.argc_tag_ = get_register(R1);