Fabian
bb0f37bbce
optimise sub; jc
2022-11-15 10:14:28 +09:00
Fabian
8f15b554ee
optimise cmp8/16 x, imm; jc
2022-11-15 10:14:28 +09:00
Fabian
d629984627
optimise cmp reg, reg/imm; jz
2022-11-15 10:14:28 +09:00
Fabian
19b2771c40
optimise getsf
2022-11-15 10:14:28 +09:00
Fabian
db65dd352d
optimise test x, x followed by jz/js
2022-11-15 10:14:28 +09:00
Fabian
0ea7c7cd81
optimise getof
2022-11-15 10:14:28 +09:00
Fabian
6fcbe7b3d0
optimise cmp x, 0; jz
2022-11-15 10:14:28 +09:00
Fabian
1d55116779
optimise get_last_op1 (for cmp32)
2022-11-15 10:14:28 +09:00
Fabian
5a7c946e83
optimise get_last_result
2022-11-15 10:14:28 +09:00
Fabian
a11eb20326
type safety
2022-11-15 10:14:28 +09:00
Fabian
58f9902057
merge updates to last_op_size and flags_changed
2022-11-15 10:14:28 +09:00
Fabian
53cea2e7b1
Use optimised getcf for inc/dec/adc/sbb
2022-11-15 10:14:28 +09:00
Fabian
be08d812db
move code around (local_to_instruction_operand/LocalOrImmediate.to_instruction_operand)
2022-11-15 10:14:28 +09:00
Fabian
c6ef3c4c68
cache state flags
2022-11-15 10:14:28 +09:00
Fabian
5839152328
fix rust compiler error: trailing semicolon in macro used in expression position
2022-11-15 10:14:28 +09:00
Fabian
8d747fd0da
Add skiffos ( #714 )
2022-11-15 10:14:28 +09:00
Fabian
e1b6e34c19
wip code tlb
2022-11-15 10:14:28 +09:00
Fabian
2887a363f1
Properly clean up generated wasm functions if they are written while being compiled
2022-11-15 10:14:28 +09:00
Fabian
d0ca758177
reformat msrs
2022-11-15 10:14:28 +09:00
Fabian
2a8a89dd34
stub some msr for new linux kernel
2022-11-15 10:14:28 +09:00
Fabian
b9df44e646
cpuid: correctly report level 7 for ecx != 0
2022-11-15 10:14:28 +09:00
Fabian
0c17fea221
Remove serial0-output-line, fix stack overflow in serial debug output ( fix #741 )
2022-11-15 10:14:28 +09:00
Adrian Siekierka
7f5fb11faf
Add support for fixed_chunk_size to async Range downloads ( #755 )
2022-11-01 20:30:38 +01:00
Fabian
3c02f166b9
late c2rust cleanup
2022-09-21 17:58:25 +08:00
Fabian
611f0dedda
Remove dead code
2022-09-21 11:56:42 +08:00
Fabian
ef3654f0b1
Dedup some code between SyncBuffer and SyncFileBuffer
2022-09-21 11:39:48 +08:00
Fabian
53098adc5c
Delete src/browser/lib.js, move remaining code to lib.js
2022-09-19 22:24:09 +08:00
Fabian
e0d4e1808b
Move buffer code around
2022-09-19 22:24:09 +08:00
Fabian
aebf5eced8
Add Windows NT
2022-09-14 00:32:19 +09:00
Fabian
b961703fe4
jit: execute mmio reads at full size
2022-09-13 17:19:23 +09:00
Fabian
86fc542352
tlb: don't mark writable on read access (otherwise the write bit might not be set if a read occurs before a write)
2022-09-13 15:53:28 +09:00
Fabian
74c6a075c4
Replace page_poison=on with init_on_free=on
2022-09-13 14:32:52 +09:00
Fabian
00b874b309
Fix state restoring of large local images ( fix #730 )
2022-09-09 21:20:17 +09:00
Fabian
b227b2e45b
Replace winnt_fix by cpuid_level, make configurable
2022-09-08 16:45:28 +09:00
Fabian
89e5173712
Use regs::EAX over 0
2022-09-08 16:22:49 +09:00
Fabian
1a27b72311
Crude implementation for cmos A update-in-progress bit
2022-09-07 20:18:25 +09:00
Fabian
4e9ceb0ec1
Implement #np for IDTs (windows nt 3.x)
2022-09-07 18:50:08 +09:00
Fabian
2cbe54cf38
Refactor some sse instructions into sse_read128_xmm_xmm_imm/sse_read128_xmm_mem_imm
2022-09-06 01:05:39 +09:00
Fabian
1135122f8a
Fix jitted cmpss/cmppd/shufps/shufpd with the same source and destination register
2022-09-06 01:05:39 +09:00
Fabian
0a359a2495
Allow flags optimisation to be used for setcc/cmovcc instructions
2022-09-06 00:26:39 +09:00
Fabian
e50d4fa5a8
Fix flags in cmpxchg in jit
2022-09-06 00:26:39 +09:00
Fabian
a464c77ec0
Also mask other 16-bit arithmetic (not strictly necessary, but more robust for future changes)
2022-09-06 00:26:39 +09:00
Fabian
21c7a88d16
Add assertion for immediate values in test_be
2022-09-06 00:26:39 +09:00
Fabian
4cab56f2f4
Fix flags set by AAM instruction
2022-09-06 00:26:39 +09:00
Fabian
6e0ab79d4f
Fix mask sign-extended 8-bit immediate to 16-bit for cmp ( fixes #726 )
2022-09-06 00:26:39 +09:00
Fabian
88d205396d
Remove some unused pub annotations
2022-09-06 00:26:39 +09:00
Joey Mezzacappa
cb1c3211e9
Fix V86.destroy() with xterm.js ( #720 )
...
`V86.destroy()` was throwing an error due to `SerialAdapterXtermJS`
having no `destroy()` method.
2022-08-15 22:10:49 +02:00
Joey Mezzacappa
62d967bce0
Wait for emulation to stop when destroying ( #721 )
...
In some environments, the "emulator-stopped" event did not always fire
when calling the `destroy()` method. This waits for emulation to finish
stopping before continuing with the rest of the destructor.
When stopping the emulator with `.stop()`, the `v86` instance's state
would follow these transitions:
1. Before calling `.stop()`:
```js
{
running: true,
stopped: false
}
```
2. Immediately after calling `.stop()`:
```js
{
running: true,
stopped: true
}
```
3. After the emulator has finished stopping:
```js
{
running: false,
stopped: false
}
```
It was not immediately obvious how properties named `running` and
`stopped` could ever have the same values. This commit renames `stopped`
to `stopping` so it is slightly easier to understand while debugging.
2022-08-15 22:09:45 +02:00
Fabian
f1ebdb1c72
implement fbstp ( close #708 )
2022-08-02 21:40:57 +09:00
Fabian
cf31709ec5
Add floppy command for modern linux
2022-08-02 21:40:57 +09:00