Lines Matching refs:Redirection
463 class Redirection {
465 Redirection(Isolate* isolate, void* external_function,
484 static Redirection* Get(Isolate* isolate, void* external_function,
486 Redirection* current = isolate->simulator_redirection();
493 return new Redirection(isolate, external_function, type);
496 static Redirection* FromHltInstruction(Instruction* redirect_call) {
499 addr_of_hlt - offsetof(Redirection, redirect_call_);
500 return reinterpret_cast<Redirection*>(addr_of_redirection);
504 Redirection* redirection =
506 return redirection->external_function<void*>();
509 static void DeleteChain(Redirection* redirection) {
510 while (redirection != nullptr) {
511 Redirection* next = redirection->next_;
512 delete redirection;
513 redirection = next;
521 Redirection* next_;
526 void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
527 Redirection::DeleteChain(first);
567 Redirection* redirection = Redirection::FromHltInstruction(instr);
574 int64_t external = redirection->external_function<int64_t>();
577 redirection->external_function<void*>());
586 switch (redirection->type()) {
714 void* arg1 = Redirection::ReverseRedirection(xreg(1));
731 void* arg2 = Redirection::ReverseRedirection(xreg(2));
751 Redirection* redirection = Redirection::Get(isolate, external_function, type);
752 return redirection->address_of_redirect_call();