Sfoglia il codice sorgente

UserspaceEmulator: Set up a very basic program entry stack

Andreas Kling 5 anni fa
parent
commit
0eab5659f8
1 ha cambiato i file con 5 aggiunte e 0 eliminazioni
  1. 5 0
      DevTools/UserspaceEmulator/Emulator.cpp

+ 5 - 0
DevTools/UserspaceEmulator/Emulator.cpp

@@ -100,6 +100,11 @@ void Emulator::setup_stack()
     auto stack_region = make<SimpleRegion>(stack_location, stack_size);
     auto stack_region = make<SimpleRegion>(stack_location, stack_size);
     m_mmu.add_region(move(stack_region));
     m_mmu.add_region(move(stack_region));
     m_cpu.set_esp(stack_location + stack_size);
     m_cpu.set_esp(stack_location + stack_size);
+
+    m_cpu.push32(0);
+    m_cpu.push32(0);
+    m_cpu.push32(0);
+    m_cpu.push32(0);
 }
 }
 
 
 int Emulator::exec(X86::SimpleInstructionStream& stream, u32 base)
 int Emulator::exec(X86::SimpleInstructionStream& stream, u32 base)