Browse Source

s/cpu2/cpu

Fabian 3 years ago
parent
commit
56272ca397

+ 11 - 11
gen/generate_interpreter.js

@@ -408,11 +408,11 @@ function gen_table()
         const code = [
             "#![cfg_attr(rustfmt, rustfmt_skip)]",
 
-            "use cpu2::cpu::{after_block_boundary, modrm_resolve};",
-            "use cpu2::cpu::{read_imm8, read_imm8s, read_imm16, read_imm32s, read_moffs};",
-            "use cpu2::cpu::{task_switch_test, trigger_ud, DEBUG, PREFIX_F2, PREFIX_F3};",
-            "use cpu2::instructions;",
-            "use cpu2::global_pointers::{instruction_pointer, prefixes};",
+            "use cpu::cpu::{after_block_boundary, modrm_resolve};",
+            "use cpu::cpu::{read_imm8, read_imm8s, read_imm16, read_imm32s, read_moffs};",
+            "use cpu::cpu::{task_switch_test, trigger_ud, DEBUG, PREFIX_F2, PREFIX_F3};",
+            "use cpu::instructions;",
+            "use cpu::global_pointers::{instruction_pointer, prefixes};",
 
             "pub unsafe fn run(opcode: u32) {",
             table,
@@ -471,12 +471,12 @@ function gen_table()
         const code = [
             "#![cfg_attr(rustfmt, rustfmt_skip)]",
 
-            "use cpu2::cpu::{after_block_boundary, modrm_resolve};",
-            "use cpu2::cpu::{read_imm8, read_imm16, read_imm32s};",
-            "use cpu2::cpu::{task_switch_test, task_switch_test_mmx, trigger_ud};",
-            "use cpu2::cpu::{DEBUG, PREFIX_66, PREFIX_F2, PREFIX_F3};",
-            "use cpu2::instructions_0f;",
-            "use cpu2::global_pointers::{instruction_pointer, prefixes};",
+            "use cpu::cpu::{after_block_boundary, modrm_resolve};",
+            "use cpu::cpu::{read_imm8, read_imm16, read_imm32s};",
+            "use cpu::cpu::{task_switch_test, task_switch_test_mmx, trigger_ud};",
+            "use cpu::cpu::{DEBUG, PREFIX_66, PREFIX_F2, PREFIX_F3};",
+            "use cpu::instructions_0f;",
+            "use cpu::global_pointers::{instruction_pointer, prefixes};",
 
             "pub unsafe fn run(opcode: u32) {",
             table0f,

+ 3 - 3
src/rust/codegen.rs

@@ -1,9 +1,9 @@
-use cpu2::cpu::{
+use cpu::cpu::{
     FLAG_CARRY, FLAG_OVERFLOW, FLAG_SIGN, FLAG_ZERO, TLB_GLOBAL, TLB_HAS_CODE, TLB_NO_USER,
     TLB_READONLY, TLB_VALID,
 };
-use cpu2::imports::mem8;
-use cpu2::memory;
+use cpu::imports::mem8;
+use cpu::memory;
 use global_pointers;
 use jit::JitContext;
 use modrm;

+ 4 - 4
src/rust/cpu2/arith.rs → src/rust/cpu/arith.rs

@@ -1,7 +1,7 @@
-use cpu2::cpu::*;
-use cpu2::global_pointers::*;
-use cpu2::memory::{read8, write8};
-use cpu2::misc_instr::{getaf, getcf, getzf};
+use cpu::cpu::*;
+use cpu::global_pointers::*;
+use cpu::memory::{read8, write8};
+use cpu::misc_instr::{getaf, getcf, getzf};
 
 pub fn int_log2(x: i32) -> i32 { 31 - x.leading_zeros() as i32 }
 

+ 9 - 9
src/rust/cpu2/cpu.rs → src/rust/cpu/cpu.rs

@@ -29,19 +29,19 @@ extern "C" {
     pub fn io_port_write32(port: i32, value: i32);
 }
 
-use cpu2::fpu::fpu_set_tag_word;
-use cpu2::global_pointers::*;
-pub use cpu2::imports::mem8;
-use cpu2::memory;
-use cpu2::memory::{
+use cpu::fpu::fpu_set_tag_word;
+use cpu::global_pointers::*;
+pub use cpu::imports::mem8;
+use cpu::memory;
+use cpu::memory::{
     in_mapped_range, read8, read16, read32s, read64s, read128, read_aligned32, write8,
     write_aligned32,
 };
-use cpu2::misc_instr::{
+use cpu::misc_instr::{
     adjust_stack_reg, get_stack_pointer, getaf, getcf, getof, getpf, getsf, getzf, pop16, pop32s,
     push16, push32,
 };
-use cpu2::modrm::{resolve_modrm16, resolve_modrm32};
+use cpu::modrm::{resolve_modrm16, resolve_modrm32};
 use page::Page;
 use paging::OrPageFault;
 use profiler;
@@ -2359,11 +2359,11 @@ pub unsafe fn cycle_internal() {
             dbg_assert!(*timestamp_counter != initial_tsc, "TSC didn't change");
 
             if cfg!(feature = "profiler") && cfg!(feature = "profiler_instrument") {
-                dbg_assert!(match ::cpu2::cpu::debug_last_jump {
+                dbg_assert!(match ::cpu::cpu::debug_last_jump {
                     LastJump::Compiled { .. } => true,
                     _ => false,
                 });
-                let last_jump_addr = ::cpu2::cpu::debug_last_jump.phys_address().unwrap();
+                let last_jump_addr = ::cpu::cpu::debug_last_jump.phys_address().unwrap();
                 let last_jump_opcode = if last_jump_addr != 0 {
                     read32s(last_jump_addr)
                 }

+ 2 - 2
src/rust/cpu2/fpu.rs → src/rust/cpu/fpu.rs

@@ -1,7 +1,7 @@
 use std::mem::transmute;
 
-use cpu2::cpu::*;
-use cpu2::global_pointers::*;
+use cpu::cpu::*;
+use cpu::global_pointers::*;
 use paging::OrPageFault;
 use std::f64;
 

+ 1 - 1
src/rust/cpu2/global_pointers.rs → src/rust/cpu/global_pointers.rs

@@ -1,6 +1,6 @@
 #![allow(non_upper_case_globals)]
 
-use cpu2::cpu::reg128;
+use cpu::cpu::reg128;
 
 pub const reg8: *mut u8 = 64 as *mut u8;
 pub const reg16: *mut u16 = 64 as *mut u16;

+ 0 - 0
src/rust/cpu2/imports.rs → src/rust/cpu/imports.rs


+ 6 - 6
src/rust/cpu2/instruction_helpers.rs → src/rust/cpu/instruction_helpers.rs

@@ -1,7 +1,7 @@
 macro_rules! SAFE_READ_WRITE8 {
     ($value:ident, $addr:expr, $instruction:expr) => {{
-        use cpu2::cpu::translate_address_write_and_can_skip_dirty;
-        use cpu2::memory;
+        use cpu::cpu::translate_address_write_and_can_skip_dirty;
+        use cpu::memory;
         use page::Page;
         let (phys_addr, can_skip_dirty_page) =
             return_on_pagefault!(translate_address_write_and_can_skip_dirty($addr));
@@ -23,10 +23,10 @@ macro_rules! SAFE_READ_WRITE8 {
 }
 macro_rules! SAFE_READ_WRITE16 {
     ($value:ident, $addr:expr, $instruction:expr) => {{
-        use cpu2::cpu::{
+        use cpu::cpu::{
             translate_address_write_and_can_skip_dirty, virt_boundary_read16, virt_boundary_write16,
         };
-        use cpu2::memory;
+        use cpu::memory;
         use page::Page;
         let (phys_addr, can_skip_dirty_page) =
             return_on_pagefault!(translate_address_write_and_can_skip_dirty($addr));
@@ -55,11 +55,11 @@ macro_rules! SAFE_READ_WRITE16 {
 }
 macro_rules! SAFE_READ_WRITE32 {
     ($value:ident, $addr:expr, $instruction:expr) => {{
-        use cpu2::cpu::{
+        use cpu::cpu::{
             translate_address_write_and_can_skip_dirty, virt_boundary_read32s,
             virt_boundary_write32,
         };
-        use cpu2::memory;
+        use cpu::memory;
         use page::Page;
         let (phys_addr, can_skip_dirty_page) =
             return_on_pagefault!(translate_address_write_and_can_skip_dirty($addr));

+ 8 - 8
src/rust/cpu2/instructions.rs → src/rust/cpu/instructions.rs

@@ -5,14 +5,14 @@ extern "C" {
     fn hlt_op();
 }
 
-use cpu2::arith::*;
-use cpu2::cpu::*;
-use cpu2::fpu::*;
-use cpu2::fpu::{fpu_load_m32, fpu_load_m64, fpu_write_st};
-use cpu2::global_pointers::*;
-use cpu2::misc_instr::*;
-use cpu2::misc_instr::{pop16, pop32s, push16, push32};
-use cpu2::string::*;
+use cpu::arith::*;
+use cpu::cpu::*;
+use cpu::fpu::*;
+use cpu::fpu::{fpu_load_m32, fpu_load_m64, fpu_write_st};
+use cpu::global_pointers::*;
+use cpu::misc_instr::*;
+use cpu::misc_instr::{pop16, pop32s, push16, push32};
+use cpu::string::*;
 
 pub unsafe fn instr_00_mem(addr: i32, r: i32) {
     SAFE_READ_WRITE8!(___, addr, add8(___, read_reg8(r)));

+ 9 - 9
src/rust/cpu2/instructions_0f.rs → src/rust/cpu/instructions_0f.rs

@@ -28,26 +28,26 @@ unsafe fn unimplemented_sse() {
     trigger_ud()
 }
 
-use cpu2::arith::{
+use cpu::arith::{
     bsf16, bsf32, bsr16, bsr32, bt_mem, bt_reg, btc_mem, btc_reg, btr_mem, btr_reg, bts_mem,
     bts_reg, cmpxchg8, cmpxchg16, cmpxchg32, popcnt, shld16, shld32, shrd16, shrd32, xadd8, xadd16,
     xadd32,
 };
-use cpu2::arith::{
+use cpu::arith::{
     imul_reg16, imul_reg32, saturate_sd_to_sb, saturate_sd_to_sw, saturate_sd_to_ub,
     saturate_sw_to_sb, saturate_sw_to_ub, saturate_ud_to_ub, saturate_uw,
 };
-use cpu2::cpu::*;
-use cpu2::fpu::fpu_load_m32;
-use cpu2::fpu::fpu_set_tag_word;
-use cpu2::global_pointers::*;
-use cpu2::misc_instr::{
+use cpu::cpu::*;
+use cpu::fpu::fpu_load_m32;
+use cpu::fpu::fpu_set_tag_word;
+use cpu::global_pointers::*;
+use cpu::misc_instr::{
     adjust_stack_reg, bswap, cmovcc16, cmovcc32, fxrstor, fxsave, get_stack_pointer, jmpcc16,
     jmpcc32, push16, push32, setcc_mem, setcc_reg, test_b, test_be, test_l, test_le, test_o,
     test_p, test_s, test_z,
 };
-use cpu2::misc_instr::{lss16, lss32};
-use cpu2::sse_instr::*;
+use cpu::misc_instr::{lss16, lss32};
+use cpu::sse_instr::*;
 
 #[no_mangle]
 pub unsafe fn instr16_0F00_0_mem(addr: i32) {

+ 2 - 2
src/rust/cpu2/memory.rs → src/rust/cpu/memory.rs

@@ -18,8 +18,8 @@ extern "C" {
     pub fn mmap_write128(addr: u32, v0: i32, v1: i32, v2: i32, v3: i32);
 }
 
-use cpu2::cpu::{mem8, reg128};
-use cpu2::global_pointers::memory_size;
+use cpu::cpu::{mem8, reg128};
+use cpu::global_pointers::memory_size;
 use page::Page;
 use std::ptr;
 

+ 3 - 3
src/rust/cpu2/misc_instr.rs → src/rust/cpu/misc_instr.rs

@@ -1,6 +1,6 @@
-use cpu2::cpu::*;
-use cpu2::fpu::{fpu_load_m80, fpu_load_status_word, fpu_set_status_word, fpu_store_m80};
-use cpu2::global_pointers::*;
+use cpu::cpu::*;
+use cpu::fpu::{fpu_load_m80, fpu_load_status_word, fpu_set_status_word, fpu_store_m80};
+use cpu::global_pointers::*;
 use paging::OrPageFault;
 
 pub unsafe fn getcf() -> bool {

+ 0 - 0
src/rust/cpu2/mod.rs → src/rust/cpu/mod.rs


+ 1 - 1
src/rust/cpu2/modrm.rs → src/rust/cpu/modrm.rs

@@ -1,4 +1,4 @@
-use cpu2::cpu::*;
+use cpu::cpu::*;
 use paging::OrPageFault;
 
 pub unsafe fn resolve_modrm16(modrm_byte: i32) -> OrPageFault<i32> {

+ 2 - 2
src/rust/cpu2/sse_instr.rs → src/rust/cpu/sse_instr.rs

@@ -1,5 +1,5 @@
-use cpu2::cpu::*;
-use cpu2::global_pointers::mxcsr;
+use cpu::cpu::*;
+use cpu::global_pointers::mxcsr;
 
 #[no_mangle]
 pub unsafe fn mov_r_m64(addr: i32, r: i32) {

+ 4 - 4
src/rust/cpu2/string.rs → src/rust/cpu/string.rs

@@ -9,16 +9,16 @@
 // ins    0    0   1/w
 // outs   0    1   0
 
-use cpu2::arith::{cmp8, cmp16, cmp32};
-use cpu2::cpu::{
+use cpu::arith::{cmp8, cmp16, cmp32};
+use cpu::cpu::{
     get_seg, io_port_read8, io_port_read16, io_port_read32, io_port_write8, io_port_write16,
     io_port_write32, read_reg16, read_reg32, safe_read8, safe_read16, safe_read32s, safe_write8,
     safe_write16, safe_write32, set_reg_asize, test_privileges_for_io, translate_address_read,
     translate_address_write_and_can_skip_dirty, writable_or_pagefault, write_reg8, write_reg16,
     write_reg32, AL, AX, DX, EAX, ECX, EDI, ES, ESI, FLAG_DIRECTION,
 };
-use cpu2::global_pointers::{flags, instruction_pointer, previous_ip};
-use cpu2::memory::{
+use cpu::global_pointers::{flags, instruction_pointer, previous_ip};
+use cpu::memory::{
     in_mapped_range, memcpy_no_mmap_or_dirty_check, memset_no_mmap_or_dirty_check,
     read8_no_mmap_check, read16_no_mmap_check, read32_no_mmap_check, write8_no_mmap_or_dirty_check,
     write16_no_mmap_or_dirty_check, write32_no_mmap_or_dirty_check,

+ 1 - 1
src/rust/cpu_context.rs

@@ -1,4 +1,4 @@
-use cpu2::memory;
+use cpu::memory;
 use prefix::{PREFIX_MASK_ADDRSIZE, PREFIX_MASK_OPSIZE};
 use state_flags::CachedStateFlags;
 

+ 9 - 11
src/rust/jit.rs

@@ -5,9 +5,8 @@ use std::ptr::NonNull;
 
 use analysis::AnalysisType;
 use codegen;
-use cpu2;
-use cpu2::cpu;
-use cpu2::memory;
+use cpu::cpu;
+use cpu::memory;
 use cpu_context::CpuContext;
 use global_pointers;
 use jit_instructions;
@@ -556,7 +555,7 @@ pub fn record_entry_point(phys_address: u32) {
         .insert(offset_in_page);
 
     if is_new {
-        cpu2::cpu::tlb_set_has_code(page, true);
+        cpu::tlb_set_has_code(page, true);
     }
 }
 
@@ -1026,10 +1025,10 @@ fn jit_analyze_and_generate(
 
         dbg_assert!(entry_point_count > 0);
 
-        cpu2::cpu::tlb_set_has_code(page, true);
+        cpu::tlb_set_has_code(page, true);
 
         jit_cache_array::check_invariants();
-        cpu2::cpu::check_tlb_invariants();
+        cpu::check_tlb_invariants();
 
         let end_addr = 0;
         let first_opcode = 0;
@@ -1496,7 +1495,7 @@ fn remove_jit_cache_wasm_index(ctx: &mut JitState, page: Page, wasm_table_index:
     }
 
     if !jit_page_has_code(page) {
-        cpu2::cpu::tlb_set_has_code(page, false);
+        cpu::tlb_set_has_code(page, false);
     }
 
     if CHECK_JIT_CACHE_ARRAY_INVARIANTS {
@@ -1580,7 +1579,7 @@ pub fn jit_dirty_page(ctx: &mut JitState, page: Page) {
     }
 
     if did_have_code {
-        cpu2::cpu::tlb_set_has_code(page, false);
+        cpu::tlb_set_has_code(page, false);
     }
 }
 
@@ -1718,9 +1717,8 @@ pub fn check_missed_entry_points(phys_address: u32, state_flags: CachedStateFlag
         {
             profiler::stat_increment(stat::RUN_INTERPRETED_MISSED_COMPILED_ENTRY_LOOKUP);
 
-            let last_jump_type = unsafe { ::cpu2::cpu::debug_last_jump.name() };
-            let last_jump_addr =
-                unsafe { ::cpu2::cpu::debug_last_jump.phys_address() }.unwrap_or(0);
+            let last_jump_type = unsafe { cpu::debug_last_jump.name() };
+            let last_jump_addr = unsafe { cpu::debug_last_jump.phys_address() }.unwrap_or(0);
             let last_jump_opcode =
                 if last_jump_addr != 0 { memory::read32s(last_jump_addr) } else { 0 };
 

+ 1 - 1
src/rust/jit_instructions.rs

@@ -2,7 +2,7 @@
 
 use codegen;
 use codegen::BitSize;
-use cpu2::cpu::{
+use cpu::cpu::{
     FLAGS_ALL, FLAGS_DEFAULT, FLAGS_MASK, FLAG_ADJUST, FLAG_CARRY, FLAG_DIRECTION, FLAG_INTERRUPT,
     FLAG_OVERFLOW, FLAG_SUB, OPSIZE_8, OPSIZE_16, OPSIZE_32,
 };

+ 2 - 2
src/rust/js_api.rs

@@ -1,8 +1,8 @@
-use cpu2::cpu::{
+use cpu::cpu::{
     safe_read16, safe_read32s, safe_write16, safe_write32, translate_address_system_read,
     translate_address_system_write, writable_or_pagefault,
 };
-use cpu2::misc_instr::{push16, push32};
+use cpu::misc_instr::{push16, push32};
 
 #[no_mangle]
 pub unsafe fn safe_read16_js(addr: i32) -> i32 { safe_read16(addr).unwrap() }

+ 1 - 1
src/rust/lib.rs

@@ -12,7 +12,7 @@ mod dbg;
 #[macro_use]
 mod paging;
 
-pub mod cpu2;
+pub mod cpu;
 
 pub mod js_api;
 pub mod profiler;

+ 9 - 9
src/rust/opstats.rs

@@ -1,4 +1,4 @@
-use cpu2;
+use cpu;
 use global_pointers;
 use wasmgen::wasm_builder::WasmBuilder;
 
@@ -154,7 +154,7 @@ pub fn record_opstat_compiled(opcode: u32) {
 
     for prefix in instruction.prefixes {
         let index = (prefix as u32) << 4;
-        unsafe { *cpu2::global_pointers::opstats_compiled_buffer.offset(index as isize) += 1 }
+        unsafe { *cpu::global_pointers::opstats_compiled_buffer.offset(index as isize) += 1 }
     }
 
     let index = (instruction.is_0f as u32) << 12
@@ -162,7 +162,7 @@ pub fn record_opstat_compiled(opcode: u32) {
         | (instruction.is_mem as u32) << 3
         | instruction.fixed_g as u32;
 
-    unsafe { *cpu2::global_pointers::opstats_compiled_buffer.offset(index as isize) += 1 }
+    unsafe { *cpu::global_pointers::opstats_compiled_buffer.offset(index as isize) += 1 }
 }
 
 pub fn record_opstat_jit_exit(opcode: u32) {
@@ -174,7 +174,7 @@ pub fn record_opstat_jit_exit(opcode: u32) {
 
     for prefix in instruction.prefixes {
         let index = (prefix as u32) << 4;
-        unsafe { *cpu2::global_pointers::opstats_jit_exit_buffer.offset(index as isize) += 1 }
+        unsafe { *cpu::global_pointers::opstats_jit_exit_buffer.offset(index as isize) += 1 }
     }
 
     let index = (instruction.is_0f as u32) << 12
@@ -182,7 +182,7 @@ pub fn record_opstat_jit_exit(opcode: u32) {
         | (instruction.is_mem as u32) << 3
         | instruction.fixed_g as u32;
 
-    unsafe { *cpu2::global_pointers::opstats_jit_exit_buffer.offset(index as isize) += 1 }
+    unsafe { *cpu::global_pointers::opstats_jit_exit_buffer.offset(index as isize) += 1 }
 }
 
 pub fn record_opstat_unguarded_register(opcode: u32) {
@@ -195,7 +195,7 @@ pub fn record_opstat_unguarded_register(opcode: u32) {
     for prefix in instruction.prefixes {
         let index = (prefix as u32) << 4;
         unsafe {
-            *cpu2::global_pointers::opstats_unguarded_register_buffer.offset(index as isize) += 1
+            *cpu::global_pointers::opstats_unguarded_register_buffer.offset(index as isize) += 1
         }
     }
 
@@ -204,7 +204,7 @@ pub fn record_opstat_unguarded_register(opcode: u32) {
         | (instruction.is_mem as u32) << 3
         | instruction.fixed_g as u32;
 
-    unsafe { *cpu2::global_pointers::opstats_unguarded_register_buffer.offset(index as isize) += 1 }
+    unsafe { *cpu::global_pointers::opstats_unguarded_register_buffer.offset(index as isize) += 1 }
 }
 
 pub fn gen_opstat_unguarded_register(builder: &mut WasmBuilder, opcode: u32) {
@@ -242,7 +242,7 @@ pub fn record_opstat_size_wasm(opcode: u32, size: u32) {
 
     for prefix in instruction.prefixes {
         let index = (prefix as u32) << 4;
-        unsafe { *cpu2::global_pointers::opstats_wasm_size.offset(index as isize) += size }
+        unsafe { *cpu::global_pointers::opstats_wasm_size.offset(index as isize) += size }
     }
 
     let index = (instruction.is_0f as u32) << 12
@@ -250,5 +250,5 @@ pub fn record_opstat_size_wasm(opcode: u32, size: u32) {
         | (instruction.is_mem as u32) << 3
         | instruction.fixed_g as u32;
 
-    unsafe { *cpu2::global_pointers::opstats_wasm_size.offset(index as isize) += size }
+    unsafe { *cpu::global_pointers::opstats_wasm_size.offset(index as isize) += size }
 }