Dead code
This commit is contained in:
parent
b96f984963
commit
c835023c0c
|
@ -4,8 +4,6 @@ const print_stats = {
|
|||
stats_to_string: function(cpu)
|
||||
{
|
||||
return print_stats.print_misc_stats(cpu) +
|
||||
print_stats.print_basic_block_duplication(cpu) +
|
||||
print_stats.print_wasm_basic_block_count_histogram(cpu) +
|
||||
print_stats.print_instruction_counts(cpu);
|
||||
},
|
||||
|
||||
|
@ -97,77 +95,6 @@ const print_stats = {
|
|||
return text;
|
||||
},
|
||||
|
||||
print_basic_block_duplication: function(cpu)
|
||||
{
|
||||
let unique = 0;
|
||||
let total = 0;
|
||||
let duplicates = 0;
|
||||
const histogram = [];
|
||||
const addresses = {};
|
||||
|
||||
for(let i = 0; i < JIT_CACHE_ARRAY_SIZE; i++)
|
||||
{
|
||||
const address = cpu.wm.exports["jit_get_entry_address"](i);
|
||||
|
||||
if(address !== 0)
|
||||
{
|
||||
addresses[address] = (addresses[address] || 0) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
for(let [address, count] of Object.entries(addresses))
|
||||
{
|
||||
dbg_assert(count >= 1);
|
||||
unique++;
|
||||
total += count;
|
||||
duplicates += count - 1;
|
||||
|
||||
//for(let i = histogram.length; i < count + 1; i++) histogram.push(0);
|
||||
//histogram[count]++;
|
||||
}
|
||||
|
||||
let text = "";
|
||||
text += "UNIQUE=" + unique + " DUPLICATES=" + duplicates + " TOTAL=" + total + "\n";
|
||||
|
||||
return text;
|
||||
},
|
||||
|
||||
print_wasm_basic_block_count_histogram: function(cpu)
|
||||
{
|
||||
let text = "";
|
||||
let pending_count = 0;
|
||||
const histogram = Object.create(null);
|
||||
|
||||
for(let i = 0; i < JIT_CACHE_ARRAY_SIZE; i++)
|
||||
{
|
||||
const length = cpu.wm.exports["jit_get_entry_length"](i);
|
||||
pending_count += cpu.wm.exports["jit_get_entry_pending"](i);
|
||||
histogram[length] = (histogram[length] || 0) + 1;
|
||||
}
|
||||
|
||||
let above = 0;
|
||||
|
||||
for(let i of Object.keys(histogram))
|
||||
{
|
||||
i = +i;
|
||||
if(i >= 32)
|
||||
{
|
||||
above += histogram[i];
|
||||
}
|
||||
}
|
||||
|
||||
for(let i = 0; i < 32; i++)
|
||||
{
|
||||
text += i + ":" + (histogram[i] || 0) + " ";
|
||||
}
|
||||
|
||||
text += "32+:" + above + "\n";
|
||||
|
||||
text += "Pending: " + pending_count + "\n";
|
||||
|
||||
return text;
|
||||
},
|
||||
|
||||
print_instruction_counts: function(cpu)
|
||||
{
|
||||
return [
|
||||
|
|
78
src/const.js
78
src/const.js
|
@ -86,36 +86,6 @@ var
|
|||
*/
|
||||
flags_default = 1 << 1,
|
||||
|
||||
/**
|
||||
* bitmask to select non-reserved flags bits
|
||||
* @const
|
||||
*/
|
||||
flags_mask =
|
||||
flag_carry | flag_parity | flag_adjust | flag_zero | flag_sign | flag_trap | flag_interrupt |
|
||||
flag_direction | flag_overflow | flag_iopl | flag_nt | flag_rf | flag_vm | flag_ac |
|
||||
flag_vif | flag_vip | flag_id,
|
||||
|
||||
|
||||
/**
|
||||
* all arithmetic flags
|
||||
* @const
|
||||
*/
|
||||
flags_all = flag_carry | flag_parity | flag_adjust | flag_zero | flag_sign | flag_overflow,
|
||||
|
||||
|
||||
/**
|
||||
* opsizes used by get flag functions
|
||||
*
|
||||
* @const
|
||||
*/
|
||||
OPSIZE_8 = 7,
|
||||
/** @const */
|
||||
OPSIZE_16 = 15,
|
||||
/** @const */
|
||||
OPSIZE_32 = 31,
|
||||
|
||||
/** @const */
|
||||
PSE_ENABLED = 128,
|
||||
|
||||
/** @const */ reg_eax = 0,
|
||||
/** @const */ reg_ecx = 1,
|
||||
|
@ -126,25 +96,6 @@ PSE_ENABLED = 128,
|
|||
/** @const */ reg_esi = 6,
|
||||
/** @const */ reg_edi = 7,
|
||||
|
||||
/** @const */ reg_ax = 0,
|
||||
/** @const */ reg_cx = 2,
|
||||
/** @const */ reg_dx = 4,
|
||||
/** @const */ reg_bx = 6,
|
||||
/** @const */ reg_sp = 8,
|
||||
/** @const */ reg_bp = 10,
|
||||
/** @const */ reg_si = 12,
|
||||
/** @const */ reg_di = 14,
|
||||
|
||||
/** @const */ reg_al = 0,
|
||||
/** @const */ reg_cl = 4,
|
||||
/** @const */ reg_dl = 8,
|
||||
/** @const */ reg_bl = 12,
|
||||
/** @const */ reg_ah = 1,
|
||||
/** @const */ reg_ch = 5,
|
||||
/** @const */ reg_dh = 9,
|
||||
/** @const */ reg_bh = 13,
|
||||
|
||||
|
||||
/** @const */ reg_es = 0,
|
||||
/** @const */ reg_cs = 1,
|
||||
/** @const */ reg_ss = 2,
|
||||
|
@ -320,29 +271,6 @@ var IA32_APIC_BASE_EN = 1 << 11;
|
|||
|
||||
/** @const */ var FW_CFG_SIGNATURE_QEMU = 0x554D4551;
|
||||
|
||||
|
||||
/** @const */
|
||||
var PREFIX_MASK_REP = 0b11000;
|
||||
/** @const */
|
||||
var PREFIX_REPZ = 0b01000;
|
||||
/** @const */
|
||||
var PREFIX_REPNZ = 0b10000;
|
||||
|
||||
/** @const */
|
||||
var PREFIX_MASK_SEGMENT = 0b111;
|
||||
|
||||
/** @const */
|
||||
var PREFIX_MASK_OPSIZE = 0b100000;
|
||||
/** @const */
|
||||
var PREFIX_MASK_ADDRSIZE = 0b1000000;
|
||||
|
||||
/** @const */
|
||||
var PREFIX_F2 = PREFIX_REPNZ; // alias
|
||||
/** @const */
|
||||
var PREFIX_F3 = PREFIX_REPZ; // alias
|
||||
/** @const */
|
||||
var PREFIX_66 = PREFIX_MASK_OPSIZE; // alias
|
||||
|
||||
/** @const */
|
||||
var MXCSR_MASK = (0xFFFF & ~(1 << 6));
|
||||
|
||||
|
@ -353,11 +281,5 @@ var WASM_TABLE_SIZE = 900;
|
|||
/** @const */
|
||||
var WASM_TABLE_OFFSET = 1024;
|
||||
|
||||
/** @const */
|
||||
var JIT_CACHE_ARRAY_SIZE = 0x40000;
|
||||
|
||||
/** @const */
|
||||
const WASM_EXPORT_TABLE_NAME = "__indirect_function_table";
|
||||
|
||||
/** @const */
|
||||
const WASM_PAGE_SIZE = 64 * 1024;
|
||||
|
|
21
src/cpu.js
21
src/cpu.js
|
@ -24,7 +24,6 @@ function CPU(bus, wm)
|
|||
this.memory_size = v86util.view(Uint32Array, memory, 812, 1);
|
||||
|
||||
this.mem8 = new Uint8Array(0);
|
||||
this.mem16 = new Uint16Array(this.mem8.buffer);
|
||||
this.mem32s = new Int32Array(this.mem8.buffer);
|
||||
|
||||
this.segment_is_null = v86util.view(Uint8Array, memory, 724, 8);
|
||||
|
@ -54,17 +53,8 @@ function CPU(bus, wm)
|
|||
|
||||
this.cr = v86util.view(Int32Array, memory, 580, 8);
|
||||
|
||||
/** @type {number} */
|
||||
this.cr[0] = 0;
|
||||
/** @type {number} */
|
||||
this.cr[2] = 0;
|
||||
/** @type {number} */
|
||||
this.cr[3] = 0;
|
||||
/** @type {number} */
|
||||
this.cr[4] = 0;
|
||||
|
||||
// current privilege level
|
||||
this.cpl = v86util.view(Int32Array, memory, 612, 1);
|
||||
this.cpl = v86util.view(Uint8Array, memory, 612, 1);
|
||||
|
||||
// current operand/address size
|
||||
this.is_32 = v86util.view(Int32Array, memory, 804, 1);
|
||||
|
@ -132,10 +122,6 @@ function CPU(bus, wm)
|
|||
|
||||
// registers
|
||||
this.reg32 = v86util.view(Int32Array, memory, 64, 8);
|
||||
this.reg16s = v86util.view(Int16Array, memory, 64, 16);
|
||||
this.reg16 = v86util.view(Uint16Array, memory, 64, 16);
|
||||
this.reg8s = v86util.view(Int8Array, memory, 64, 32);
|
||||
this.reg8 = v86util.view(Uint8Array, memory, 64, 32);
|
||||
|
||||
this.fpu_st = v86util.view(Int32Array, memory, 1152, 4 * 8);
|
||||
|
||||
|
@ -684,7 +670,7 @@ CPU.prototype.reset = function()
|
|||
this.switch_cs_real_mode(0xF000);
|
||||
|
||||
if(!this.switch_seg(reg_ss, 0x30)) dbg_assert(false);
|
||||
this.reg16[reg_sp] = 0x100;
|
||||
this.reg32[reg_esp] = 0x100;
|
||||
|
||||
if(this.devices.virtio)
|
||||
{
|
||||
|
@ -724,7 +710,6 @@ CPU.prototype.create_memory = function(size)
|
|||
const memory_offset = this.allocate_memory(size);
|
||||
|
||||
this.mem8 = v86util.view(Uint8Array, this.wm.instance.exports.memory, memory_offset, size);
|
||||
this.mem16 = v86util.view(Uint16Array, this.wm.instance.exports.memory, memory_offset, size >> 1);
|
||||
this.mem32s = v86util.view(Uint32Array, this.wm.instance.exports.memory, memory_offset, size >> 2);
|
||||
};
|
||||
|
||||
|
@ -1992,7 +1977,7 @@ CPU.prototype.cpuid = function()
|
|||
|
||||
if(level === 4)
|
||||
{
|
||||
dbg_log("cpuid: eax=" + h(this.reg32[reg_eax] >>> 0, 8) + " cl=" + h(this.reg8[reg_cl], 2), LOG_CPU);
|
||||
dbg_log("cpuid: eax=" + h(this.reg32[reg_eax] >>> 0, 8) + " cl=" + h(this.reg32[reg_ecx] & 0xFF, 2), LOG_CPU);
|
||||
}
|
||||
else if(level !== 0 && level !== 2 && level !== (0x80000000 | 0))
|
||||
{
|
||||
|
|
|
@ -775,7 +775,6 @@ pub unsafe fn fpu_fchs() {
|
|||
fpu_write_st(*fpu_stack_ptr as i32, -st0);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe fn fpu_fabs() {
|
||||
let st0 = fpu_get_st0();
|
||||
fpu_write_st(*fpu_stack_ptr as i32, st0.abs());
|
||||
|
|
|
@ -1160,25 +1160,6 @@ pub fn jit_page_has_code(page: Page) -> bool {
|
|||
match ctx.page_has_pending_code.get(&page) { Some(&(_, PageState::Compiling { .. })) => true, _ => false }
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub fn jit_get_entry_length(_i: u32) -> u32 {
|
||||
//#[allow(unused_variables)]
|
||||
//let entry = jit_cache_array::get(i);
|
||||
//#[cfg(debug_assertions)]
|
||||
//return entry.len;
|
||||
//#[cfg(not(debug_assertions))]
|
||||
0
|
||||
}
|
||||
#[no_mangle]
|
||||
pub fn jit_get_entry_address(_i: u32) -> u32 {
|
||||
//if cfg!(debug_assertions) { jit_cache_array::get(i).start_addr } else { 0 }
|
||||
0
|
||||
}
|
||||
#[no_mangle]
|
||||
pub fn jit_get_entry_pending(_i: u32) -> bool {
|
||||
//if cfg!(debug_assertions) { jit_cache_array::get(i).pending } else { false }
|
||||
false
|
||||
}
|
||||
#[no_mangle]
|
||||
pub fn jit_get_wasm_table_index_free_list_count() -> u32 {
|
||||
if cfg!(debug_assertions) {
|
||||
|
|
Loading…
Reference in a new issue