Home | History | Annotate | Download | only in arm

Lines Matching defs:Simulator

38 #include "arm/simulator-arm.h"
42 // Only build the simulator if not compiling for real ARM hardware.
52 // The ArmDebugger class is used by the simulator while debugging simulated ARM
56 explicit ArmDebugger(Simulator* sim) : sim_(sim) { }
67 Simulator* sim_;
148 PrintF("Simulator hit stop %u: %s\n", code, msg);
150 PrintF("Simulator hit %s\n", msg);
387 cur = reinterpret_cast<int32_t*>(sim_->get_register(Simulator::sp));
595 PrintF(" When hitting a stop, the Simulator will\n");
598 Simulator::kNumOfWatchedStops);
599 PrintF(" - They can be enabled / disabled: the Simulator\n");
601 PrintF(" - The Simulator keeps track of how many times they \n");
649 void Simulator::set_last_debugger_input(char* input) {
655 void Simulator::FlushICache(v8::internal::HashMap* i_cache,
678 CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
691 void Simulator::FlushOnePage(v8::internal::HashMap* i_cache,
706 void Simulator::CheckICache(v8::internal::HashMap* i_cache,
729 void Simulator::Initialize(Isolate* isolate) {
737 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
744 // Set up simulator support first. Some of this information is needed to
787 // access violation if the simulator ever tries to execute it.
797 // the simulator. The external reference will be a function compiled for the
799 // execute it with the simulator. We do that by redirecting the external
801 // the simulator. We write the original destination of the jump just at a known
802 // offset from the svc instruction so the simulator knows what to call.
812 Simulator::current(isolate)->
851 void* Simulator::RedirectExternalReference(void* external_function,
858 // Get the active Simulator for the current thread.
859 Simulator* Simulator::current(Isolate* isolate) {
864 Simulator* sim = isolate_data->simulator();
866 // TODO(146): delete the simulator object when a thread/isolate goes away.
867 sim = new Simulator(isolate);
875 // Simulator internal state for special registers such as PC.
876 void Simulator::set_register(int reg, int32_t value) {
887 int32_t Simulator::get_register(int reg) const {
897 double Simulator::get_double_from_register_pair(int reg) {
910 void Simulator::set_dw_register(int dreg, const int* dbl) {
918 void Simulator::set_pc(int32_t value) {
924 bool Simulator::has_bad_pc() const {
930 int32_t Simulator::get_pc() const {
936 void Simulator::set_s_register(int sreg, unsigned int value) {
942 unsigned int Simulator::get_s_register(int sreg) const {
948 void Simulator::set_s_register_from_float(int sreg, const float flt) {
958 void Simulator::set_s_register_from_sinteger(int sreg, const int sint) {
968 void Simulator::set_d_register_from_double(int dreg, const double& dbl) {
979 float Simulator::get_float_from_s_register(int sreg) {
992 int Simulator::get_sinteger_from_s_register(int sreg) {
1005 double Simulator::get_double_from_d_register(int dreg) {
1020 void Simulator::GetFpArgs(double* x, double* y) {
1039 void Simulator::GetFpArgs(double* x) {
1055 void Simulator::GetFpArgs(double* x, int32_t* y) {
1074 void Simulator::SetFpResult(const double& result) {
1089 void Simulator::TrashCallerSaveRegisters() {
1103 // simply disallow unaligned reads. Note that simulator runs have the runtime
1105 // executed in the simulator. Since the host is typically IA32 we will not
1110 int Simulator::ReadW(int32_t addr, Instruction* instr) {
1128 void Simulator::WriteW(int32_t addr, int value, Instruction* instr) {
1147 uint16_t Simulator::ReadHU(int32_t addr, Instruction* instr) {
1165 int16_t Simulator::ReadH(int32_t addr, Instruction* instr) {
1181 void Simulator::WriteH(int32_t addr, uint16_t value, Instruction* instr) {
1200 void Simulator::WriteH(int32_t addr, int16_t value, Instruction* instr) {
1219 uint8_t Simulator::ReadBU(int32_t addr) {
1225 int8_t Simulator::ReadB(int32_t addr) {
1231 void Simulator::WriteB(int32_t addr, uint8_t value) {
1237 void Simulator::WriteB(int32_t addr, int8_t value) {
1243 int32_t* Simulator::ReadDW(int32_t addr) {
1259 void Simulator::WriteDW(int32_t addr, int32_t value1, int32_t value2) {
1279 uintptr_t Simulator::StackLimit() const {
1287 void Simulator::Format(Instruction* instr, const char* format) {
1288 PrintF("Simulator found unsupported instruction:\n 0x%08x: %s\n",
1296 bool Simulator::ConditionallyExecute(Instruction* instr) {
1320 void Simulator::SetNZFlags(int32_t val) {
1327 void Simulator::SetCFlag(bool val) {
1333 void Simulator::SetVFlag(bool val) {
1339 bool Simulator::CarryFrom(int32_t left, int32_t right, int32_t carry) {
1350 bool Simulator::BorrowFrom(int32_t left, int32_t right) {
1359 bool Simulator::OverflowFrom(int32_t alu_out,
1378 void Simulator::Compute_FPSCR_Flags(double val1, double val2) {
1405 void Simulator::Copy_FPSCR_to_APSR() {
1415 int32_t Simulator::GetShiftRm(Instruction* instr, bool* carry_out) {
1559 int32_t Simulator::GetImm(Instruction* instr, bool* carry_out) {
1580 void Simulator::ProcessPUW(Instruction* instr,
1621 void Simulator::HandleRList(Instruction* instr, bool load) {
1650 void Simulator::HandleVList(Instruction* instr) {
1725 // Software interrupt instructions are used by the simulator to call into the
1727 void Simulator::SoftwareInterrupt(Instruction* instr) {
1930 bool Simulator::isStopInstruction(Instruction* instr) {
1935 bool Simulator::isWatchedStop(uint32_t code) {
1941 bool Simulator::isEnabledStop(uint32_t code) {
1949 void Simulator::EnableStop(uint32_t code) {
1957 void Simulator::DisableStop(uint32_t code) {
1965 void Simulator::IncreaseStopCounter(uint32_t code) {
1980 void Simulator::PrintStopInfo(uint32_t code) {
2005 void Simulator::DecodeType01(Instruction* instr) {
2223 PrintF("Simulator hit BKPT.\n");
2478 void Simulator::DecodeType2(Instruction* instr) {
2542 void Simulator::DecodeType3(Instruction* instr) {
2676 void Simulator::DecodeType4(Instruction* instr) {
2688 void Simulator::DecodeType5(Instruction* instr) {
2700 void Simulator::DecodeType6(Instruction* instr) {
2705 void Simulator::DecodeType7(Instruction* instr) {
2714 // void Simulator::DecodeTypeVFP(Instruction* instr)
2729 void Simulator::DecodeTypeVFP(Instruction* instr) {
2842 // Emulate FPSCR from the Simulator flags.
2884 void Simulator::DecodeVMOVBetweenCoreAndSinglePrecisionRegisters(
2903 void Simulator::DecodeVCMP(Instruction* instr) {
2941 void Simulator::DecodeVCVTBetweenDoubleAndSingle(Instruction* instr) {
3019 void Simulator::DecodeVCVTBetweenFloatingPointAndInteger(Instruction* instr) {
3123 // void Simulator::DecodeType6CoprocessorIns(Instruction* instr)
3129 void Simulator::DecodeType6CoprocessorIns(Instruction* instr) {
3228 void Simulator::InstructionDecode(Instruction* instr) {
3292 void Simulator::Execute() {
3298 // Fast version of the dispatch loop without checking whether the simulator
3324 int32_t Simulator::Call(byte* entry, int argument_count, ...) {
3353 // Put down marker for end of simulation. The simulator will stop simulation
3360 // simulator code and therefore is regarded as a callee-saved register.
3414 uintptr_t Simulator::PushAddress(uintptr_t address) {
3423 uintptr_t Simulator::PopAddress() {