Gabe Black
|
c0cd58812e
|
X86: Touch up the interrupt entering microcode.
|
2009-02-01 17:04:21 -08:00 |
|
Gabe Black
|
ca6e0d75c8
|
X86: Fix the microcode for the LODS instruction.
|
2009-02-01 00:28:28 -08:00 |
|
Gabe Black
|
d432bd13b2
|
X86: Fix some incorrect register widths.
|
2009-02-01 00:18:13 -08:00 |
|
Gabe Black
|
52defeb4e7
|
X86: Implement the xadd instruction.
|
2009-01-25 20:33:27 -08:00 |
|
Gabe Black
|
3c5988b86c
|
X86: Implement the bswap instruction.
|
2009-01-25 20:32:43 -08:00 |
|
Gabe Black
|
0449fb2b7a
|
X86: Fix a bug in the iret microcode.
|
2009-01-25 20:31:17 -08:00 |
|
Gabe Black
|
b23633ad1b
|
X86: Hook in the M5 pseudo insts.
|
2009-01-06 23:55:46 -08:00 |
|
Gabe Black
|
115b1a7ed3
|
X86: Autogenerate macroop generateDisassemble function.
|
2009-01-06 22:55:27 -08:00 |
|
Gabe Black
|
9e24d8c599
|
X86: Move the macroop class out of the isa description into C++.
|
2009-01-06 22:44:59 -08:00 |
|
Gabe Black
|
8c15518f30
|
X86: Fix completeAcc get call.
|
2008-11-09 21:55:43 -08:00 |
|
Gabe Black
|
3c4567f2a6
|
X86: Set the delayed commit flag in x86 microops appropriately.
|
2008-10-12 23:29:10 -07:00 |
|
Gabe Black
|
e3004c579f
|
X86: Fix the segment setting code in IRET, and make it restore the flags.
|
2008-10-12 23:05:22 -07:00 |
|
Gabe Black
|
564eda827b
|
X86: Implement the swapgs instruction.
|
2008-10-12 23:00:07 -07:00 |
|
Gabe Black
|
a2e0d539d8
|
X86: Add wrval/rdval microops for reading significant miscregs.
|
2008-10-12 22:55:55 -07:00 |
|
Gabe Black
|
4c19c56a77
|
X86: Implement entering an interrupt in microcode.
|
2008-10-12 22:42:03 -07:00 |
|
Gabe Black
|
f813a4be49
|
X86: Make sure register microops set fault rather than returning one.
|
2008-10-12 22:24:06 -07:00 |
|
Gabe Black
|
961b40cdb5
|
X86: Implement an wrdh microop which loads bases/offsets from 16 byte descriptors.
|
2008-10-12 22:16:53 -07:00 |
|
Gabe Black
|
6074b1abf2
|
X86: Implement local labels for the ROM that actually refer into the ROM.
|
2008-10-12 20:44:11 -07:00 |
|
Gabe Black
|
6b46e5204d
|
X86: Implement the chks check of interrupt gate target code segments.
|
2008-10-12 20:38:22 -07:00 |
|
Gabe Black
|
30feb90c1c
|
X86: Add a check type for interrupt gates.
|
2008-10-12 20:33:37 -07:00 |
|
Gabe Black
|
15f5bb3055
|
X86: Fix chks checking the submode for stack segments.
|
2008-10-12 20:29:52 -07:00 |
|
Gabe Black
|
9e1fe2050a
|
X86: Let segment manipulation microops be conditional.
|
2008-10-12 20:25:06 -07:00 |
|
Gabe Black
|
e9158d763a
|
X86: Let the microassembler know about the microcode only H segment.
|
2008-10-12 20:17:38 -07:00 |
|
Gabe Black
|
223fc41c07
|
X86: Fix the rdbase microop
|
2008-10-12 20:07:46 -07:00 |
|
Gabe Black
|
cefb768131
|
X86: Create a handy way to access labels from the ROM in microcode.
|
2008-10-12 17:52:51 -07:00 |
|
Gabe Black
|
e5f8092467
|
X86: Make X86's microcode ROM actually do something.
|
2008-10-12 17:48:44 -07:00 |
|
Gabe Black
|
6fd4eff68f
|
X86: Create an eret microop which returns from ROM to combinational decoding.
|
2008-10-12 15:53:04 -07:00 |
|
Gabe Black
|
4aa18aa800
|
X86: Make Br never report itself as the last microop.
|
2008-10-12 15:43:35 -07:00 |
|
Gabe Black
|
77c0e1d110
|
X86: Create a SeqOp class of microops and make Br one of them.
|
2008-10-12 15:33:17 -07:00 |
|
Gabe Black
|
a76c4b8ca1
|
X86: Implement CPUID with a magical function instead of microcode.
|
2008-10-12 15:31:28 -07:00 |
|
Gabe Black
|
e1b306fa53
|
X86: Fix the debugging microops. The debug functions can't handle a string object format.
|
2008-10-09 00:05:39 -07:00 |
|
Gabe Black
|
569db520ad
|
X86: Make far ret modify CS instead of some random selector.
|
2008-10-09 00:04:36 -07:00 |
|
Ali Saidi
|
3a3e356f4e
|
style: Remove non-leading tabs everywhere they shouldn't be. Developers should configure their editors to not insert tabs
|
2008-09-10 14:26:15 -04:00 |
|
Gabe Black
|
30bc897613
|
X86: Fix the microcode for sign/zero extending moves that use high byte registers.
|
2008-09-03 00:52:54 -04:00 |
|
Gabe Black
|
5b5875341c
|
X86: Make the cpuid processor identifier return a real string.
|
2008-06-12 01:00:19 -04:00 |
|
Gabe Black
|
4f4ff17578
|
X86: Make the disassembly for halt conform with the other microops.
|
2008-06-12 00:58:27 -04:00 |
|
Gabe Black
|
31d40ad7c2
|
X86: Implement and hook up STI and CLI instructions.
|
2008-06-12 00:58:19 -04:00 |
|
Gabe Black
|
8d2416c6e9
|
X86: Implement a partial, sort of correct version of the protected mode variant of iret.
|
2008-06-12 00:53:01 -04:00 |
|
Gabe Black
|
66f54a6037
|
X86: Change how segment loading is performed.
|
2008-06-12 00:52:12 -04:00 |
|
Gabe Black
|
129831c116
|
X86: Make pushes and pops use the stack size instead of the data size.
|
2008-06-12 00:51:57 -04:00 |
|
Gabe Black
|
d4e7c7edd3
|
X86: Keep handy values like the operating mode in one register.
|
2008-06-12 00:50:25 -04:00 |
|
Gabe Black
|
fa7c81c6df
|
X86: Change what the microop chks does.
Instead of computing the segment descriptor address, this now checks if a
selector value/descriptor are legal for a particular purpose.
|
2008-06-12 00:50:10 -04:00 |
|
Gabe Black
|
6bd9cf3594
|
X86: Add a microop to read a segments attribute register.
|
2008-06-12 00:50:05 -04:00 |
|
Gabe Black
|
e0c20386ac
|
X86: Add microops and supporting code to manipulate the whole rflags register.
|
2008-06-12 00:49:50 -04:00 |
|
Gabe Black
|
2bb8933f78
|
X86: Add microops which panic, fatal, warn, and warn_once.
|
2008-06-12 00:49:25 -04:00 |
|
Gabe Black
|
bbc1f394ff
|
X86: Truncate descriptors to 16 bits.
|
2008-06-12 00:49:16 -04:00 |
|
Gabe Black
|
6106b05b6e
|
X86: Redo BSF.
|
2008-06-12 00:48:58 -04:00 |
|
Gabe Black
|
dfc2d44ea3
|
X86: Flesh out 3dnow instruction decoding a bit and grab the byte immediate.
|
2008-06-12 00:48:46 -04:00 |
|
Gabe Black
|
de6eeaaa27
|
X86: Make string instructions work when rcx=0.
|
2008-06-12 00:48:15 -04:00 |
|
Gabe Black
|
a8e3001df8
|
X86: Bypass unaligned access support for register addressed MSRs.
|
2008-06-12 00:47:25 -04:00 |
|
Gabe Black
|
8e2991b529
|
X86: Fix the implementation of BSF.
|
2008-06-12 00:46:04 -04:00 |
|
Gabe Black
|
16e189fad2
|
X86: Bit scan forward/reverse were accidentally transposed.
|
2008-06-12 00:45:52 -04:00 |
|
Gabe Black
|
254cc07650
|
X86: Fix a byte register indexing issue in the sign extending move from memory microcode.
|
2008-06-12 00:45:22 -04:00 |
|
Gabe Black
|
8501a90f59
|
X86: Add in some support for the tsc register.
|
2008-06-12 00:39:10 -04:00 |
|
Gabe Black
|
98d2ca403e
|
X86: Implement the INVLPG instruction and the TIA microop.
--HG--
extra : convert_revision : 31db1ee082f6c3ca5443cba1eb335e408661ead2
|
2008-02-26 23:39:22 -05:00 |
|
Gabe Black
|
423bbe6499
|
X86: Optomize the bit scanning instruction microassembly a little. More can be done.
--HG--
extra : convert_revision : 3cf6e972f0e41e3529a633ecbb31289e1bd17f0f
|
2008-01-23 08:18:27 -05:00 |
|
Gabe Black
|
60c2d98fc0
|
X86: Implement and attach the BSR and BSF instructions.
--HG--
extra : convert_revision : be7e11980092e5d1baff0e05d4ec910305966908
|
2008-01-22 00:10:33 -05:00 |
|
Gabe Black
|
f809637011
|
X86: Fill out group17 in the decoder.
--HG--
extra : convert_revision : 66ab9c0fc3086f66e3d6d82d47964ecf406c3a8a
|
2008-01-21 16:27:40 -05:00 |
|
Gabe Black
|
c08b7802a9
|
X86: Redo the bit test instructions.
--HG--
extra : convert_revision : 433c2a9f3675ed02f3be5ce759a440f2686d2ccd
|
2008-01-12 06:41:32 -05:00 |
|
Gabe Black
|
b705eba6e5
|
X86: Fix the wrmsr instruction.
--HG--
extra : convert_revision : 12bc7e71226ebafb8eedadf6a3db82929e15e722
|
2008-01-12 06:40:55 -05:00 |
|
Gabe Black
|
0e394fdfa4
|
X86: Fix the general IO instructions dataSize.
--HG--
extra : convert_revision : 9774a52cb6a8e7632d1b1dc0706e5791cc18d238
|
2008-01-12 06:37:35 -05:00 |
|
Gabe Black
|
27cc351688
|
X86: Please excuse my dear Aunt Sally. (precedence bug)
--HG--
extra : convert_revision : 9ad4f31e7a962c3177896bcbfb93e2e54720d117
|
2007-12-03 14:32:56 -08:00 |
|
Gabe Black
|
73caca57a8
|
X86: Make sure the memory index is calculated using the address size for bit test instructions.
--HG--
extra : convert_revision : 9634675857dae53b5e79e49267c864a0265afde1
|
2007-12-02 01:46:38 -08:00 |
|
Gabe Black
|
b5d4018382
|
X86: Fix a copy/paste mistake where the bit test instructions were using an immediate where they should use a register.
--HG--
extra : convert_revision : b0ee80e4c7fdb58a1eb85b3bcc82a0cdaa93330a
|
2007-12-02 01:46:29 -08:00 |
|
Gabe Black
|
5de71e39d8
|
X86: Make the 0xA0-0xA3 versions of mov use the right sized immediates.
--HG--
extra : convert_revision : a702403de29772618abb5bd5c5555279d91bdd59
|
2007-12-02 00:02:51 -08:00 |
|
Gabe Black
|
67fee01026
|
X86: Fix a copy paste error in the bts microcode.
--HG--
extra : convert_revision : c4ac007d35ac13211f9816f1104c84f2b447ddba
|
2007-12-01 23:06:52 -08:00 |
|
Gabe Black
|
988c6f227a
|
X86: Implement mov from control register.
--HG--
extra : convert_revision : c8280f0686a3ae6d5c405327540ad15a3a5531f9
|
2007-12-01 23:06:03 -08:00 |
|
Gabe Black
|
fe833dd2c3
|
X86: First crack at far returns. This is grossly approximate.
--HG--
extra : convert_revision : 23da0338af1f7663ae5ddf2289fb45dd32f37c42
|
2007-12-01 23:05:01 -08:00 |
|
Gabe Black
|
dc6f960171
|
X86: Reorganize segmentation and implement segment selector movs.
--HG--
extra : convert_revision : 553c3ffeda1f5312cf02493f602e7d4ba2fe66e8
|
2007-12-01 23:03:39 -08:00 |
|
Gabe Black
|
a548067b01
|
X86: Make the "fault" microop predicated.
--HG--
extra : convert_revision : ded34133afcd6af1f55b8991b82bad45258069d3
|
2007-12-01 23:01:56 -08:00 |
|
Gabe Black
|
557bc80647
|
X86: Implement the LIDT instruction.
--HG--
extra : convert_revision : 380515e985318311632e00b13000585afb052e3b
|
2007-12-01 23:01:31 -08:00 |
|
Gabe Black
|
62c79ca637
|
X86: Implement the lgdt instruction.
--HG--
extra : convert_revision : d1698a82df3c57cc9bbf8d5d190f271bfc7cb2e4
|
2007-12-01 23:01:17 -08:00 |
|
Gabe Black
|
4e3ff42762
|
X86: Implement wrbase and wrlimit for loading pseudo descriptors.
--HG--
extra : convert_revision : fe03c4aed95ef12773e80cdb3d9cff68a2b20f02
|
2007-12-01 23:00:58 -08:00 |
|
Gabe Black
|
bfc62d1a70
|
X86: Separate the effective seg base and the "hidden" seg base.
--HG--
extra : convert_revision : 5fcb8d94dbab7a7d6fe797277a5856903c885ad4
|
2007-12-01 23:00:15 -08:00 |
|
Gabe Black
|
5772e3cada
|
X86: Make microcode use presegmentation RIPs and the rest of m5 use post segmentation RIPS.
--HG--
extra : convert_revision : d8cda7c8b9a2afb8a9d601b6d61529a96c5f87fe
|
2007-11-13 01:31:43 -08:00 |
|
Gabe Black
|
917ae9ec66
|
X86: Fix a stupid typo where WRMSR and RDMSR were switched, and add a debug statement.
--HG--
extra : convert_revision : f1eb17291f4c01f3c0fa8f99650bc1edf09d21de
|
2007-11-12 14:39:14 -08:00 |
|
Gabe Black
|
f1f5dd79bf
|
X86: Implement the wrcr microop which writes a control register, and some control register work.
--HG--
extra : convert_revision : 3e9daef9cdd0665c033420e5b4f981649e9908ab
|
2007-11-12 14:38:59 -08:00 |
|
Gabe Black
|
4d4d2883f9
|
X86: Implement some bit testing instructions.
--HG--
extra : convert_revision : 54585e276e44322be9c56af0b2eabfe8d4b3e430
|
2007-11-12 14:38:53 -08:00 |
|
Gabe Black
|
f9ddb894dd
|
X86: Change the meaning of the sext and zext width operand, and make sext set zext if the sign bit is 0.
--HG--
extra : convert_revision : 08bd7b4ff183038c016612d04ac73b20a255d141
|
2007-11-12 14:38:45 -08:00 |
|
Gabe Black
|
6d4ba8de34
|
X86: Flesh out the opcode groups for two byte opcodes.
--HG--
extra : convert_revision : 4d51befd6dae4035c0eb685d33e1f5e38467c766
|
2007-11-12 14:38:38 -08:00 |
|
Gabe Black
|
aaa30714b3
|
X86: Various fixes to indexing segmentation related registers
--HG--
extra : convert_revision : 3d45da3a3fb38327582cfdfb72cfc4ce1b1d31af
|
2007-11-12 14:37:54 -08:00 |
|
Gabe Black
|
503fb8ebed
|
X86: Compile fixes for 32 bit/debug/opt.
--HG--
extra : convert_revision : 591fffb316830fca5792666c8df12abd4e7c551b
|
2007-10-30 16:34:00 -04:00 |
|
Gabe Black
|
7d396b1bf6
|
X86: Use the cda microop where appropriate. The ENTER instruction still needs these.
--HG--
extra : convert_revision : c5a1a6d66c454f252d3b798c38a6798e7dd486f0
|
2007-10-22 14:39:40 -07:00 |
|
Gabe Black
|
421aea980f
|
X86: Implement the cda microop which checks if an address is legal to write to.
--HG--
extra : convert_revision : afe20649180dd59ad0702b98f7293be6c9226359
|
2007-10-22 14:30:56 -07:00 |
|
Gabe Black
|
43cb78004b
|
X86: Start using the stupd microop, and update statistics accordingly.
--HG--
extra : convert_revision : 4aa9daa4e19acfb3e6840ce5d83cf199e30c2f19
|
2007-10-21 18:45:46 -07:00 |
|
Gabe Black
|
4d15e4cf7b
|
X86: Implement the stupd microop ("store with update", not "stupid") and use it in ENTER.
--HG--
extra : convert_revision : 9151f701162d31ef26298497467c42b7b0ed85d5
|
2007-10-21 18:44:50 -07:00 |
|
Gabe Black
|
d8494325f0
|
X86: Implement the PUSHF, POPF, SAHF, and LAHF instructions.
--HG--
extra : convert_revision : 37c63b1133022fa3432888592f8c84785fb95091
|
2007-10-19 15:21:16 -07:00 |
|
Gabe Black
|
35a8bc56cd
|
X86: Impelement the HLT instruction and fix the "halt" microop.
--HG--
extra : convert_revision : 932e5bb5bf3644f8468dba92177fb87cc54b891a
|
2007-10-19 15:11:15 -07:00 |
|
Gabe Black
|
f69a463b4b
|
X86: Implement a "halt" microop.
--HG--
extra : convert_revision : 53a846a157e4dce42343b81901df1207738f62cd
|
2007-10-19 15:10:23 -07:00 |
|
Gabe Black
|
7f37322532
|
X86: Implement the ENTER instruction. This could probably be optimized by cleaning up the indexing in the main loop.
--HG--
extra : convert_revision : ad2d560f2a6f36176b22b8510c58cd6fe5a2c9c2
|
2007-10-19 15:09:37 -07:00 |
|
Gabe Black
|
9243666c39
|
X86: Replace "group10" placeholder with the corresponding instructions in the decoder.
--HG--
extra : convert_revision : ffa8f7c4f8d1e381eefd29247ebd705863d385ad
|
2007-10-18 22:43:32 -07:00 |
|
Gabe Black
|
5c32422162
|
X86: Implement the string IO instructions, ins and outs.
--HG--
extra : convert_revision : b021e70390d289b22a8e693cd8a99d6e7bd7d2b4
|
2007-10-18 22:42:53 -07:00 |
|
Gabe Black
|
f0dce3bfce
|
X86: Implement the undocumented SALC instruction which sets AL to 0xFF if CF=1 and 0x00 otherwise.
--HG--
extra : convert_revision : 845d43c544e296d7595f54054906055a9f21ad9f
|
2007-10-18 22:42:17 -07:00 |
|
Gabe Black
|
46bd1c99a9
|
X86: Implement the XLAT instruction.
--HG--
extra : convert_revision : 22d7d9e79e722293b4dc1e66d8610301dc04c5fa
|
2007-10-18 22:41:18 -07:00 |
|
Gabe Black
|
c526b00b35
|
X86: Implement the BOUND instruction.
--HG--
extra : convert_revision : 7bcfa5b4a47d342bee267cc593a1bd4b4f31abe0
|
2007-10-18 22:40:48 -07:00 |
|
Gabe Black
|
33dbd8a766
|
X86: Make the "fault" microop predicated.
--HG--
extra : convert_revision : 48dae1f3c680636833c137fe6b95b37ae84e188c
|
2007-10-18 22:40:18 -07:00 |
|
Gabe Black
|
70542c8e61
|
X86: Make "Inst" the default format instead of WarnUnimpl for one byte opcodes.
--HG--
extra : convert_revision : 591e67fc21f5b72977c5876e39f488494fda77c2
|
2007-10-18 22:39:39 -07:00 |
|
Gabe Black
|
dc2e887f23
|
X86: Implement the in/out instructions. These will still need support from the TLB and memory system.
--HG--
extra : convert_revision : a9503248ea9efca7e5247e4f2830967f428b8215
|
2007-10-18 22:39:00 -07:00 |
|
Gabe Black
|
2bbc058c6c
|
X86: Implement the LOOP instructions.
--HG--
extra : convert_revision : 3ccd0565c83b6d9c9b63f9f7ac2b67839a2c714f
|
2007-10-18 22:38:17 -07:00 |
|
Gabe Black
|
418b30602b
|
X86: Attach the CMC instruction to the decoder.
--HG--
extra : convert_revision : 909661062017c7640c343e80431eaf365e8fcf53
|
2007-10-18 22:37:44 -07:00 |
|