summaryrefslogtreecommitdiff
path: root/src/arch/x86/predecoder.cc
AgeCommit message (Collapse)Author
2009-08-18X86: Decode three byte opcodes.Gabe Black
2009-08-03X86: Fix segment override prefixes on instructions that use rbp/rsp and a ↵Gabe Black
displacement.
2009-05-17includes: sort includes againNathan Binkert
2009-05-17types: Move stuff for global types into src/base/types.hhNathan Binkert
--HG-- rename : src/sim/host.hh => src/base/types.hh
2009-04-26X86: Precompute the default and alternate address and operand size and the ↵Gabe Black
stack size.
2009-02-27X86: Don't treat the REX prefixes as prefixes in 32 bit modes. These are ↵Gabe Black
inc/dec instructions.
2008-09-27gcc: Add extra parens to quell warnings.Nathan Binkert
Even though we're not incorrect about operator precedence, let's add some parens in some particularly confusing places to placate GCC 4.3 so that we don't have to turn the warning off. Agreed that this is a bit of a pain for those users who get the order of operations correct, but it is likely to prevent bugs in certain cases.
2008-06-12X86: Take advantage of the new meta register.Gabe Black
2007-12-02X86: Make the 0xA0-0xA3 versions of mov use the right sized immediates.Gabe Black
--HG-- extra : convert_revision : a702403de29772618abb5bd5c5555279d91bdd59
2007-10-07X86: Make sure there are fewer spurious differences between instructions for ↵Gabe Black
caching purposes. --HG-- extra : convert_revision : 7e6be1c42f28f92d9e8b47169e683827bb3f4aaf
2007-10-02Predecoder: Clear out predecoder state on an ITLB fault.Gabe Black
--HG-- extra : convert_revision : 68f8ff778dbd28ade5070edf5a7d662e7bf0045a
2007-07-24Add a special case for "test" which needs an immediate even though ↵Gabe Black
everything else with it's opcode doesn't. Also made some spacing consistent. --HG-- extra : convert_revision : 72a317f29c11705782e19840bef24354214d3143
2007-07-22Fixed immediate byte accounting bug.Gabe Black
--HG-- extra : convert_revision : ee5275da14a2923b9a525ae5b5c582c15df4608a
2007-07-22Fixed displacement size bug.Gabe Black
--HG-- extra : convert_revision : c39249ef598c1bd555098d688381dc62541a07c0
2007-07-20Fix code that computes displacement size.Gabe Black
--HG-- extra : convert_revision : a9be3eb2b90b88086936aeb4dcf87ec7b58a48cb
2007-07-17Calculate the correct address size.Gabe Black
--HG-- extra : convert_revision : 6bd9d5a01ba6600781e3678e0403dca524fb2cba
2007-06-20Fix a newly introduced bug where the predecoder wasn't picking up all the ↵Gabe Black
displacement. --HG-- extra : convert_revision : 9202c11ee187458adcd85ba616b7f7f4bdd4eec1
2007-06-20Make memory instructions work better, add more macroop implementations, add ↵Gabe Black
an lea microop, move EmulEnv into it's own .cc and .hh. --HG-- extra : convert_revision : 1212b8463eab1c1dcba7182c487d1e9184cf9bea
2007-06-14Sign extend byte immediates as well. There might need to be a fancier system ↵Gabe Black
in place to handle this in the future. --HG-- extra : convert_revision : 2c5bd719c770d9a93a57bd29782842f82384863d
2007-06-14Put the mode in the ExtMachInst.Gabe Black
--HG-- extra : convert_revision : 7fc6567ab3d35c06901e6c8a0435f7cab819e17e
2007-06-13Seperate the pc-pc and the pc of the incoming bytes, and get rid of the ↵Gabe Black
"moreBytes" which just takes a MachInst. src/arch/x86/predecoder.cc: Seperate the pc-pc and the pc of the incoming bytes, and get rid of the "moreBytes" which just takes a MachInst. Also make the "opSize" field describe the number of bytes and not the log of the number of bytes. --HG-- extra : convert_revision : 3a5ec7053ec69c5cba738a475d8b7fd9e6e6ccc0
2007-06-12Reset the rex and legacy prefix components of the ExtMachInst as well.Gabe Black
--HG-- extra : convert_revision : 832a324fec2d2b59f1c101d7fa72d7f670f0495d
2007-05-31x86 work that hadn't been checked in.Gabe Black
src/arch/x86/isa/decoder/one_byte_opcodes.isa: Give the "MOV" instruction the format of it's arguments. This will likely need to be completely overhauled in the near future. src/arch/x86/predecoder.cc: src/arch/x86/predecoder.hh: Make the predecoder explicitly reset itself rather than counting on it happening naturally. src/arch/x86/predecoder_tables.cc: Fix the immediate size table src/arch/x86/regfile.cc: nextnpc is bogus --HG-- extra : convert_revision : 0926701fedaab41817e64bb05410a25174484a5a
2007-04-06Clean up the code a little, fix (I think) a perceived problem with immediate ↵Gabe Black
sizes, and sign extend the 32-bit-acting-like-64-bit-immediates. --HG-- extra : convert_revision : e59b747198cc79d50045bd2dc45b2e2b97bbffcc
2007-04-03Zero out ModRM if the byte isn't there, and fix some displacement size stuff.Gabe Black
--HG-- extra : convert_revision : f43abf33a223a665b30098c63011fb162200d5e6
2007-03-21Break out the one and two byte opcodes into different files. Also change ↵Gabe Black
what bits decode is done on to reflect where clumps of instructions are. --HG-- extra : convert_revision : 8768676eac25e6a4f0dc50ce2dc576bdcdd6e025
2007-03-15File with the predecoder in it.Gabe Black
src/arch/x86/predecoder.cc: File for the x86 predecoder process function. --HG-- extra : convert_revision : f7b53c38ff152cb2677d641074218ffd8434457b