8000 register args · sha0coder/libscemu@17c405c · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Dec 27, 2024. It is now read-only.

Commit 17c405c

Browse files
committed
register args
1 parent 5444733 commit 17c405c

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/emu.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -323,15 +323,14 @@ impl Emu {
323323
}
324324

325325
pub fn init_stack32(&mut self) {
326-
326+
// default if not set via clap args
327327
if self.cfg.stack_addr == 0 {
328328
self.cfg.stack_addr = 0x212000;
329+
self.regs.set_esp(self.cfg.stack_addr + 0x1c000 + 4);
330+
self.regs.set_ebp(self.cfg.stack_addr + 0x1c000 + 4 + 0x1000);
329331
}
330332

331333
let stack = self.maps.create_map("stack", self.cfg.stack_addr, 0x030000).expect("cannot create stack map");
332-
self.regs.set_esp(self.cfg.stack_addr + 0x1c000 + 4);
333-
self.regs
334-
.set_ebp(self.cfg.stack_addr + 0x1c000 + 4 + 0x1000);
335334

336335
assert!(self.regs.get_esp() < self.regs.get_ebp());
337336
assert!(self.regs.get_esp() > stack.get_base());
@@ -349,14 +348,13 @@ impl Emu {
349348
}
350349

351350
pub fn init_stack64(&mut self) {
351+
// default if not set via clap args
352352
if self.cfg.stack_addr == 0 {
353353
self.cfg.stack_addr = 0x22a000;
354+
self.regs.rsp = self.cfg.stack_addr + 0x4000;
355+
self.regs.rbp = self.cfg.stack_addr + 0x4000 + 0x1000;
354356
}
355357

356-
self.regs.rsp = self.cfg.stack_addr + 0x4000;
357-
self.regs.rbp = self.cfg.stack_addr + 0x4000 + 0x1000;
358-
359-
360358
let stack = self.maps.create_map("stack", self.cfg.stack_addr, 0x6000).expect("cannot create stack map");
361359

362360
assert!(self.regs.rsp < self.regs.rbp);
@@ -414,7 +412,7 @@ impl Emu {
414412
self.flags.f_nt = false;
415413
}
416414

417-
pub fn init(&mut self) {
415+
pub fn init(&mut self, clear_registers: bool) {
418416
self.pos = 0;
419417

420418
if !atty::is(Stream::Stdout) {
@@ -425,7 +423,9 @@ impl Emu {
425423
}
426424

427425
//println!("initializing regs");
428-
self.regs.clear::<64>();
426+
if clear_registers {
427+
self.regs.clear::<64>();
428+
}
429429
//self.regs.rand();
430430

431431
if self.cfg.is_64bits {

0 commit comments

Comments
 (0)
0