Browse Source

Delete last_virt_esp and esp_phys

Fabian 3 years ago
parent
commit
a348d2db96
3 changed files with 4 additions and 18 deletions
  1. 2 9
      src/cpu.js
  2. 1 7
      src/rust/cpu2/cpu.rs
  3. 1 2
      src/rust/cpu2/global_pointers.rs

+ 2 - 9
src/cpu.js

@@ -79,9 +79,6 @@ function CPU(bus, wm)
     this.last_virt_eip = v86util.view(Int32Array, memory, 620, 1);
     this.eip_phys = v86util.view(Int32Array, memory, 624, 1);
 
-    this.last_virt_esp = v86util.view(Int32Array, memory, 628, 1);
-    this.esp_phys = v86util.view(Int32Array, memory, 632, 1);
-
 
     this.sysenter_cs = v86util.view(Int32Array, memory, 636, 1);
 
@@ -374,8 +371,7 @@ CPU.prototype.get_state = function()
     state[17] = this.in_hlt[0];
     state[18] = this.last_virt_eip[0];
     state[19] = this.eip_phys[0];
-    state[20] = this.last_virt_esp[0];
-    state[21] = this.esp_phys[0];
+
     state[22] = this.sysenter_cs[0];
     state[23] = this.sysenter_eip[0];
     state[24] = this.sysenter_esp[0];
@@ -468,8 +464,7 @@ CPU.prototype.set_state = function(state)
     this.in_hlt[0] = state[17];
     this.last_virt_eip[0] = state[18];
     this.eip_phys[0] = state[19];
-    this.last_virt_esp[0] = state[20];
-    this.esp_phys[0] = state[21];
+
     this.sysenter_cs[0] = state[22];
     this.sysenter_eip[0] = state[23];
     this.sysenter_esp[0] = state[24];
@@ -688,7 +683,6 @@ CPU.prototype.reset = function()
     this.prefixes[0] = 0;
 
     this.last_virt_eip[0] = -1;
-    this.last_virt_esp[0] = -1;
 
     this.update_operand_size();
 
@@ -1562,7 +1556,6 @@ CPU.prototype.run_hardware_timers = function(now)
 CPU.prototype.cpl_changed = function()
 {
     this.last_virt_eip[0] = -1;
-    this.last_virt_esp[0] = -1;
 };
 
 CPU.prototype.do_task_switch = function(selector, has_error_code, error_code)

+ 1 - 7
src/rust/cpu2/cpu.rs

@@ -1713,7 +1713,6 @@ pub unsafe fn full_clear_tlb() {
     profiler::stat_increment(FULL_CLEAR_TLB);
     // clear tlb including global pages
     *last_virt_eip = -1;
-    *last_virt_esp = -1;
     for i in 0..valid_tlb_entries_count {
         let page = valid_tlb_entries[i as usize];
         *tlb_data.offset(page as isize) = 0;
@@ -1731,7 +1730,6 @@ pub unsafe fn clear_tlb() {
     profiler::stat_increment(CLEAR_TLB);
     // clear tlb excluding global pages
     *last_virt_eip = -1;
-    *last_virt_esp = -1;
     let mut global_page_offset: i32 = 0;
     for i in 0..valid_tlb_entries_count {
         let page = valid_tlb_entries[i as usize];
@@ -2213,10 +2211,7 @@ pub unsafe fn set_cr0(cr0: i32) {
     *protected_mode = (*cr & CR0_PE) == CR0_PE;
 }
 
-pub unsafe fn cpl_changed() {
-    *last_virt_eip = -1;
-    *last_virt_esp = -1;
-}
+pub unsafe fn cpl_changed() { *last_virt_eip = -1; }
 
 pub unsafe fn update_cs_size(new_size: bool) {
     if *is_32 != new_size {
@@ -3386,7 +3381,6 @@ pub unsafe fn invlpg(addr: i32) {
     // This however means that valid_tlb_entries can contain some invalid entries
     *tlb_data.offset(page as isize) = 0;
     *last_virt_eip = -1;
-    *last_virt_esp = -1;
 }
 
 #[no_mangle]

+ 1 - 2
src/rust/cpu2/global_pointers.rs

@@ -28,8 +28,7 @@ pub const cpl: *mut u8 = 612 as *mut u8;
 pub const in_hlt: *mut bool = 616 as *mut bool;
 pub const last_virt_eip: *mut i32 = 620 as *mut i32;
 pub const eip_phys: *mut i32 = 624 as *mut i32;
-pub const last_virt_esp: *mut i32 = 628 as *mut i32;
-pub const esp_phys: *mut i32 = 632 as *mut i32;
+
 pub const sysenter_cs: *mut i32 = 636 as *mut i32;
 pub const sysenter_esp: *mut i32 = 640 as *mut i32;
 pub const sysenter_eip: *mut i32 = 644 as *mut i32;