From 97d302aaae37ff697ab589eaa0fe8a84646a2752 Mon Sep 17 00:00:00 2001 From: Ryan Macnak Date: Mon, 13 Feb 2023 18:24:32 +0000 Subject: [PATCH] [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 Reviewed-by: Alexander Markov --- runtime/vm/native_arguments.h | 22 ++-------------------- runtime/vm/simulator_arm.cc | 2 +- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/runtime/vm/native_arguments.h b/runtime/vm/native_arguments.h index d2df92c20d1..7b7360398f5 100644 --- a/runtime/vm/native_arguments.h +++ b/runtime/vm/native_arguments.h @@ -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 {}; class FunctionBits : public BitField {}; - class ReverseArgOrderBit - : public BitField {}; 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 diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc index d52c9808d36..b714100b724 100644 --- a/runtime/vm/simulator_arm.cc +++ b/runtime/vm/simulator_arm.cc @@ -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(get_register(R0)); arguments.argc_tag_ = get_register(R1);