summaryrefslogtreecommitdiff
path: root/src/arch/x86
AgeCommit message (Collapse)Author
2007-07-17Implement the jz instruction.Gabe Black
--HG-- extra : convert_revision : 7c0bd7ce244f724ac03bbb5fdf770c7a3eba78b4
2007-07-17Make "test" set some condition codes.Gabe Black
It still needs to zero the overflow and carry flags to be correct. --HG-- extra : convert_revision : 73cb3a55f7b4234389d9355f5ad45da6aaaa6c60
2007-07-17Add in support for condition code flags.Gabe Black
Some microops can set the condition codes, and some of them can be predicated on them. Some of the codes aren't implemented because it was unclear from the AMD patent what they actually did. They are used with string instructions, but they use variables IP, DTF, and SSTF which don't appear to be documented. --HG-- extra : convert_revision : 2236cccd07d0091762b50148975f301bb1d2da3f
2007-07-17Add in operand which holds the condition code bits of the flag register.Gabe Black
--HG-- extra : convert_revision : 416052f41fccc8286b3bdbe8d559512a761224f2
2007-07-17Add symbols for each of the flags a microop could set and each condition it ↵Gabe Black
could check. --HG-- extra : convert_revision : 1f542b8aadfd5146539cadef631b49d77f578472
2007-07-17Actually include miscregs.hhGabe Black
--HG-- extra : convert_revision : 6ebf906d2211b94f28c173f0d2da91bd446fcb2c
2007-07-17Create a file to describe misc registers.Gabe Black
Define bitfields, indices, etc. --HG-- extra : convert_revision : 8fffdc4cf796d304b12b317d8bddf5685bd50cf4
2007-07-17Add a spot for the condition code portion of the flag register.Gabe Black
This is stored in the integer register file so that it can be renamed, but it should be a misc reg. --HG-- extra : convert_revision : eee48f24dd80b145f14427482047c4d8af2521ab
2007-07-14Move bitunion code into it's own file.Gabe Black
--HG-- extra : convert_revision : 8d55ca9645ee4e357b7f4595435542eb72490331
2007-07-14Pull some hard coded base classes out of the isa description.Gabe Black
--HG-- rename : src/arch/x86/isa/base.isa => src/arch/x86/isa/outputblock.isa extra : convert_revision : 7954e7d5eea3b5966c9e273a08bcd169a39f380c
2007-06-21Make symbols for regular registers.Gabe Black
--HG-- extra : convert_revision : 28a6df1efe4298877dc2b20179caeb25dfdc4622
2007-06-21Get rid of an unnecessary include file.Gabe Black
--HG-- extra : convert_revision : d8d139180917f54006a5a79df4a0f206ddd39fed
2007-06-21Use the new symbols to clean up the assembler.Gabe Black
--HG-- extra : convert_revision : 005464e875ede1e37dfe0e0482c29fd793ca52be
2007-06-21Needed for last change set to work :PGabe Black
--HG-- extra : convert_revision : 9e57e582dd1ef2805d5adffcc0ccfd99596d9f54
2007-06-21Define symbols for the x86 specialization of the microassembler.Gabe Black
--HG-- extra : convert_revision : 1fd66ba519d211fec18641b6df94b7640c56080c
2007-06-21Fix a comment.Gabe Black
--HG-- extra : convert_revision : 17e67cf6ea17fe6f971ef608547983fbb94adec9
2007-06-21Add in code that lays the ground work for setting flags.Gabe Black
--HG-- extra : convert_revision : e4fcb64d45804700a0ef34e8acf5615b66e2a527
2007-06-20Implement rip relative addressing and put in some missing loads and stores.Gabe Black
--HG-- extra : convert_revision : 99053414cef40f13c5226871a72909b2622d8c26
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-20X86 probably doesn't need a window save area.Gabe Black
--HG-- extra : convert_revision : c4a76262d4396f5f5b96b1c9e751014c2abbd78a
2007-06-20Fix a typo in one of the operand type tags.Gabe Black
--HG-- extra : convert_revision : bea87214ba4b40d75a350b803154836ec6d0ae9e
2007-06-20Comment out some unnecessary debug output.Gabe Black
--HG-- extra : convert_revision : 9df17841d970a7995d8ed1d51ee66e2c5457e5e3
2007-06-20Forgot to check these in...Gabe Black
--HG-- extra : convert_revision : f489fda15740bae0a73bfb012f3bab5790b5c2b5
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-19More faithfulness to what instructions should work in what modes, and added ↵Gabe Black
the MOVSXD instruction. --HG-- extra : convert_revision : 38b9bf6cd4bdec6355b1158967c7d3562715cacd
2007-06-19Make branches work by repopulating the predecoder every time through. This ↵Gabe Black
is probably fine as far as the predecoder goes, but the simple cpu might want to not refetch something it already has. That reintroduces the self modifying code problem though. --HG-- extra : convert_revision : 802197e65f8dc1ad657c6b346091e03cb563b0c0
2007-06-19Make instructions that are illegal in 64 bit mode not do the wrong thing in ↵Gabe Black
64 bit mode. Also add in more versions of PUSH and POP, and a version of near CALL. --HG-- extra : convert_revision : 7d8266cdfa54ac25610466b3533d3e9e5433297b
2007-06-19Renovate the "fault" microop implementation.Gabe Black
--HG-- extra : convert_revision : dc9d67dd5413f00f16d37cb2d0f8b0d10971e14a
2007-06-19Get rid of the commented out versions of macroops which have been ↵Gabe Black
reimplemented. The comments are basically functioning like a todo list. --HG-- extra : convert_revision : cb07e3813f6cf882b4a5c77c498ffbca26adf586
2007-06-19Get rid of the immediate and displacement components of the EmulEnv struct ↵Gabe Black
and use them directly out of the instruction. The extra copies are conceptually realistic but are just innefficient as implemented. Also don't use the zeroeth microcode register for general storage since it's now the zero register, and implement a load and a store microops. --HG-- extra : convert_revision : 0686296ca8b72940d961ecc6051063bfda1e932d
2007-06-19Add a stack size bitfield and expose the mode component of the ExtMachInst.Gabe Black
--HG-- extra : convert_revision : aad0ec51745fb94335898b0565bb11c1b399bbee
2007-06-19Add a function to print out segment names.Gabe Black
--HG-- extra : convert_revision : 8cbe3ca0d05165f7da5d6fa38c899ecc9e782511
2007-06-18Get rid of unnecessary output.Gabe Black
--HG-- extra : convert_revision : 0df9a12788b8ce3225c113c095d5f13e49a7c544
2007-06-18Add in incomplete pick and merge functions which read and write pieces of ↵Gabe Black
registers, and fill out microcode disassembly. --HG-- extra : convert_revision : 56332b3999a9079b1bd305ee2826abdf593367e1
2007-06-14Add in some microregs.Gabe Black
--HG-- extra : convert_revision : e8a894c2f7901329bd390a4cfd92209d0e29cf80
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-14Fix limm.Gabe Black
--HG-- extra : convert_revision : ab76b11c2bb2f3abc0e7a84f7167d92d16ed074e
2007-06-14Implement a handful more instructions and differentiate macroops based on ↵Gabe Black
the operand types they expect. --HG-- extra : convert_revision : f9c8e694a8c0eb33b988657dca03ab495b65bee8
2007-06-14Move the high byte register indices to the right place.Gabe Black
--HG-- extra : convert_revision : 3f04036d598b6572bab6ec06d162b97564a6529c
2007-06-14Make POP special case its dataSize to default to 64 bits in 64 bit mode.Gabe Black
--HG-- extra : convert_revision : 5c6251d962d9997676ffc795bb92eeb588caed39
2007-06-14Put the mode in the ExtMachInst.Gabe Black
--HG-- extra : convert_revision : 7fc6567ab3d35c06901e6c8a0435f7cab819e17e
2007-06-14Get rid of an unnecessary debug statement.Gabe Black
--HG-- extra : convert_revision : 0b306dd96f5358474ad6a8bf4a949c12bcd139cd
2007-06-14Get rid of some debug output and let macroops set headers in their ↵Gabe Black
constructor. The intention is to allow them to modify the emulation environment struct before it's used to construct its microops. --HG-- extra : convert_revision : b04fc9ead8e3322fc3af3f14d75e2206ddfbe561
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-13Fix the operand type tag parser to recognize multi character register names.Gabe Black
--HG-- extra : convert_revision : e025620e29f2515d51240e96c4a05a4f74bdf72e
2007-06-13Partially implement "POP"Gabe Black
--HG-- extra : convert_revision : ba454579a6a82ce4924102a633e5758fb2a30b2d
2007-06-13Move load/store microops into their own file. They still don't do anything, ↵Gabe Black
though. --HG-- extra : convert_revision : 251763c614b9056c3ca7a85ef92c416552da893f
2007-06-13Fix the immediate version of register operations, and get their name to show ↵Gabe Black
up correctly. --HG-- extra : convert_revision : 9fc36b99c9027e35f22983d5d1e22c940fa093de
2007-06-12Minor comment fix up.Gabe Black
--HG-- extra : convert_revision : 20d517c4bc2aae54e53368c708b5abb27ed3a469
2007-06-12Make use of some of the REX prefix.Gabe Black
--HG-- extra : convert_revision : 948eceb59a1cd9b02ad9355dd5894af0bbec4e83