Commit Graph

  • 59df95c7e6 Consolidated the microcode assembler to help separate it from more x86-centric stuff. Gabe Black 2007-04-06 16:39:25 +00:00
  • 2a1c102f25 Refactored the x86 isa description some more. There should be more seperation between x86 specific parts, and those parts which are implemented in the isa description but could eventually be moved elsewhere. Gabe Black 2007-04-06 16:00:56 +00:00
  • 75e8838ba4 Clean up the code a little, fix (I think) a perceived problem with immediate sizes, and sign extend the 32-bit-acting-like-64-bit-immediates. Gabe Black 2007-04-06 15:19:23 +00:00
  • e633e23a3a Add in a stub merging function Gabe Black 2007-04-06 15:16:36 +00:00
  • 47c24ff07a Clean up the macroop code. Gabe Black 2007-04-06 15:15:36 +00:00
  • 3c9768e644 Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-o3-spec Gabe Black 2007-04-06 14:37:46 +00:00
  • 077183f7ec Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-04-05 11:35:31 +00:00
  • ff7b89beee The process of going from an instruction definition to an instruction to be returned by the decoder has been fleshed out more. The following steps describe how an instruction implementation becomes a StaticInst. Gabe Black 2007-04-04 23:35:20 +00:00
  • ab2bed349b Fix a regular expression problem when recognizing labels for string substitution. Gabe Black 2007-04-04 23:19:32 +00:00
  • a664017c2a Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-o3-spec Gabe Black 2007-04-04 20:50:49 +00:00
  • 3d2a434e42 Updates for other ISA cpu_builders. Kevin Lim 2007-04-04 16:50:48 -04:00
  • b247e02f6e Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/head Kevin Lim 2007-04-04 15:39:13 -04:00
  • 6ff6621f20 Pass ISA-specific O3 CPU as a constructor parameter instead of using setCPU functions. Kevin Lim 2007-04-04 15:38:59 -04:00
  • d9ab45d066 Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem Ali Saidi 2007-04-04 13:57:23 -04:00
  • d0ea8ff088 The MemoryObject tha owns a port should delete it if it so chooses when deletePortRefs() is called on it with that port as a parameter. In this way a MemoryObject can keep a functional port around and give it to anyone who wants to do functional accesses rather than creating a new one each time. Ali Saidi 2007-04-04 13:56:38 -04:00
  • 4285990a96 Reworking how x86's isa description works. I'm adopting the following definitions to make figuring out what's what a little easier: Gabe Black 2007-04-04 14:31:59 +00:00
  • 7f5409f2ba Make "Name" really be the same as "name" with only the first letter capitalized. Before, it had the first letter capitalized but all the others lower case Gabe Black 2007-04-04 14:28:43 +00:00
  • 65fedeb5a7 Made x86 ExtMachInsts distinguishable from each other by defining a real == and a real hash function. Gabe Black 2007-04-04 14:27:00 +00:00
  • 6010c6ded4 Added all the different variations of the register names. Gabe Black 2007-04-04 14:25:36 +00:00
  • 9e1f3bc11a Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/head Kevin Lim 2007-04-04 00:14:44 -04:00
  • 10fe8b05db Made the "data" field of store queue entries into a character array. It's sized to match an IntReg which was what it used to be, but we might want to make it something architecture independent. All data is now endian converted before entering the store queue entries which simplifies store to load forwarding in "trans endian" simulations, and makes twin memory ops work. Gabe Black 2007-04-03 22:53:26 +00:00
  • 30f101881f Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/tmp/newmem.1449b Ali Saidi 2007-04-03 18:29:09 -04:00
  • 4c555cffa9 fixed sttw instruction changes execution trace a bit Ali Saidi 2007-04-03 18:28:59 -04:00
  • 98c8cd0b36 Fix a memory leak. Hopefully this fixes the longer running benchmarks. Kevin Lim 2007-04-03 14:25:24 -04:00
  • 93d4c624c5 Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-04-03 15:01:36 +00:00
  • 61c56ffeaf A batch of changes and fixes. Macroops are now generated automatically, multiops do alot more of what they're supposed to (excluding memory operands), and microops are slightly more implemented. Gabe Black 2007-04-03 15:01:09 +00:00
  • 0ce6936e7d Zero out ModRM if the byte isn't there, and fix some displacement size stuff. Gabe Black 2007-04-03 14:56:24 +00:00
  • ec09e5ad6f Remove/comment out DPRINTFs that were causing a segfault. Kevin Lim 2007-04-02 13:55:45 -04:00
  • 24cc5227af Fix up SPARC's CPU builder to match changes to Alpha's CPU builder. Kevin Lim 2007-04-02 13:28:17 -04:00
  • 5c97b56eb5 Update refs for recent changes. Kevin Lim 2007-03-30 16:59:40 -04:00
  • c46e946c94 Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem Ali Saidi 2007-03-29 22:01:34 -04:00
  • 528694817f make serialization at least seem to work Ali Saidi 2007-03-29 22:00:01 -04:00
  • ac191ecc78 Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-03-29 22:43:38 +00:00
  • 1d3253abfe Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-mcf Gabe Black 2007-03-29 17:43:37 -05:00
  • db6ed0eee2 Added SPARC_SE simple timing twolf regression. Gabe Black 2007-03-29 17:41:20 -05:00
  • 85c1e89444 Added a SPARC_SE simple timing mcf regression. Gabe Black 2007-03-29 17:39:34 -05:00
  • 8ca218cab5 get rid of CWP bounds warning... Ali Saidi 2007-03-29 15:57:11 -04:00
  • 370b712360 add to instruction test sttw instruction Ali Saidi 2007-03-29 15:41:09 -04:00
  • 7fcc9d2106 Made the MultiOp format do a little more. It now sets up single microop instructions to return an instance of the right class. The code to decode register numbers and generate loads and stores still needs to be added. Also, a syntax for specifying operands as sources, destinations, or both needs to be established. Multipl microop instructions are also not handled, pending real macroop generation support. Gabe Black 2007-03-29 17:57:19 +00:00
  • e67a207ad3 Add a microcode assembler. A microcode "program" is a series of statements. Each statement has an optional label at the beginning, a capitilized microcode class name which is roughly equivalent to a mnemonic in a regular ISA, and then an optional series of operands seperated by white space. The operands are either a decimal constant, a label, or a code fragment surrounded by non nested {}s. Labels are a letter or underscore followed by letters, underscores, or digits. The syntax for describing code segments might need to be changed if a need arrises to have {}s in the code itself. Gabe Black 2007-03-29 17:57:18 +00:00
  • 5c4cc4b552 Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-vortex Gabe Black 2007-03-29 12:57:17 -05:00
  • 0f2201c1fe Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-vortex Gabe Black 2007-03-29 12:53:36 -05:00
  • 484214db78 Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem into zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-gzip Gabe Black 2007-03-29 12:52:09 -05:00
  • d3b0ea3eeb Added SPARC_SE simple timing vortex regression. Gabe Black 2007-03-29 12:51:12 -05:00
  • 7fd748d7fc Added SPARC_SE simple timing gzip regression. Gabe Black 2007-03-29 12:49:59 -05:00
  • 5c3f724174 Override addPrivateSplitL1Caches function in order to automatically set the tgts_per_mshr of the caches to 20. This is needed otherwise things will potentially lock up when using the O3CPU because the caches can run out of targets, and then not respond. Kevin Lim 2007-03-29 12:25:47 -04:00
  • 80af6530f6 Update code so that the O3 CPU can handle not initially having anything hooked up to its ports. This fixes the segfault Ali recently found when using sampling. Kevin Lim 2007-03-29 12:02:57 -04:00
  • 14a7cda195 Merge zizzer.eecs.umich.edu:/bk/newmem into ewok.(none):/home/gblack/m5/newmem-x86 Gabe Black 2007-03-29 00:51:34 -07:00
  • 77ce05f478 Fidget with the syntax of the MultiOp format in anticipation of making it actually work. Gabe Black 2007-03-29 00:50:54 -07:00
  • fd77212b72 Add code to generate register and immediate based integer op microop classes. Gabe Black 2007-03-29 00:49:53 -07:00
  • 0d5f6167ff Allow "let" blocks to add code to the output files. Gabe Black 2007-03-29 00:47:46 -07:00
  • 8a674bed5c Call compare and Swap on the target, not the response. Ron Dreslinski 2007-03-28 14:38:11 -05:00
  • e95bc9d8f9 some more fixes... non-tso stuff seems to work Ali Saidi 2007-03-27 20:44:21 -04:00
  • 55614caecc Merge zizzer:/bk/newmem into zazzer.eecs.umich.edu:/z/rdreslin/m5bk/head Ron Dreslinski 2007-03-27 17:06:07 -05:00
  • 6b8cd9d06d First Pass At Cmp/Swap in caches Ron Dreslinski 2007-03-27 17:05:25 -05:00
  • d8ca2d3b16 Instead of creating a new python process to run traceflags.py, just directly exec the file and generate the flags Nathan Binkert 2007-03-26 21:07:32 -07:00
  • 01ac962a06 Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem Ali Saidi 2007-03-26 18:40:30 -04:00
  • e8dc1723ee first bit of life from the intel gigabit model Ali Saidi 2007-03-26 18:40:18 -04:00
  • 4e0ec56868 Update stats for changes. Kevin Lim 2007-03-25 01:05:48 -04:00
  • 5c044cf1f6 Update for new trace data behavior. Kevin Lim 2007-03-24 23:47:14 -05:00
  • 4bad33ce9d Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/clean2 Kevin Lim 2007-03-24 14:00:16 -04:00
  • 5e61e07613 Added a SPARC_SE simple atomic regression for the mcf benchmark. Gabe Black 2007-03-24 02:14:24 -05:00
  • e7bbd85ae6 Merge zizzer.eecs.umich.edu:/bk/newmem into zower.eecs.umich.edu:/home/gblack/m5/newmem-o3-spec Gabe Black 2007-03-23 21:47:03 -04:00
  • 047f77102b Merge ktlim@zizzer:/bk/newmem into zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/clean2 Kevin Lim 2007-03-23 13:20:19 -04:00
  • 2330adfa28 Make hardware loads/stores serializing; they need to avoid certain out-of-order interactions in the 21264. Kevin Lim 2007-03-23 13:14:05 -04:00
  • 941d3168d0 Updates for commit. 1. Move interrupt handling to a separate function to clean up main commit() function a bit. Also gate the function call off properly based on whether or not there are outstanding interrupts, and the system is not in PAL mode. 2. Better handling of updating instruction's status bits. Instructions are not marked "atCommit" until other stages view it (pushed off to IEW/IQ), and they have been properly handled (faults). 3. Don't consider the ROB "empty" for the purpose of other stages until the ROB is empty, all stores have written back, and there was no store commits this cycle. The last is necessary in case a store committed, in which case it would look like all stores have written back but in actuality have not. Kevin Lim 2007-03-23 13:13:10 -04:00
  • 78de00091b 3 memory system fixes: 1. Update packet's flags properly when a snoop happens 2. Don't allow accesses to read a block's data if the block has outstanding MSHRs. This avoids a RAW hazard in MP systems that the memory system was not detecting properly earlier (a write required a block to upgrade, and while the upgrade was outstanding, a read came along and read old data). 3. Update MSHR's request upon a response being handled. If the MSHR has more targets than it can respond to in one cycle, then its request must be properly updated to the new head of the targets list. Kevin Lim 2007-03-23 13:09:37 -04:00
  • e21878c3f2 Handle status bits a little better, as well as non-speculative instructions. Kevin Lim 2007-03-23 11:40:53 -04:00
  • 31e78b0b92 Two fixes: 1. Requests are handled more properly now. They assume the memory system takes control of the request upon sending out an access. 2. load-load ordering is maintained. Kevin Lim 2007-03-23 11:33:08 -04:00
  • abb07d9da3 Set progress_interval in terms of CPU cycles. Kevin Lim 2007-03-23 11:26:30 -04:00
  • 55a45d3644 A couple of minor fixes. 1. Set CPU ID in all modes for the O3 CPU. 2. Use nextCycle() function to prevent phase drift in O3 CPU. 3. Remove assertion in rename map that is no longer true. Kevin Lim 2007-03-23 11:22:43 -04:00
  • 2c47413a7a Merge zizzer:/bk/newmem into zeep.pool:/z/saidi/work/m5.newmem Ali Saidi 2007-03-22 18:39:51 -04:00
  • 12b7ebcbca finish up the coding of the Intel Gb NIC... Many Many bugs to squash Ali Saidi 2007-03-22 18:39:41 -04:00
  • e3d3ab4513 Add structure based bitfield syntax to the isa_parser. This is primarily useful for x86. Gabe Black 2007-03-22 04:10:57 +00:00
  • 39182808bc Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-03-22 04:10:56 +00:00
  • 10adec5b53 Merge zizzer.eecs.umich.edu:/bk/newmem into zower.eecs.umich.edu:/home/gblack/m5/newmem-statetrace Gabe Black 2007-03-22 00:10:55 -04:00
  • 39c4ea3473 Fix mcf benchmark object so it gets the arguments it expects. Gabe Black 2007-03-22 00:10:47 -04:00
  • 276f6d794d Add a junk operand. With no operands, the parser breaks. Gabe Black 2007-03-21 21:09:24 +00:00
  • bbffaa8ee0 Start implementing groups of instructions which do the same thing on different sets of inputs. Gabe Black 2007-03-21 21:07:43 +00:00
  • 1707aa750f put the int register count in intregs.hh Gabe Black 2007-03-21 21:04:54 +00:00
  • bf8b2e12ea Add a s SPARC_SE gzip regression Gabe Black 2007-03-21 14:31:48 -05:00
  • 0a80d06dea Break out the one and two byte opcodes into different files. Also change what bits decode is done on to reflect where clumps of instructions are. Gabe Black 2007-03-21 19:19:53 +00:00
  • 3efec59fc5 Missed a const Gabe Black 2007-03-21 19:15:40 +00:00
  • 390b868c87 created SPARC_SE vortex regression. Gabe Black 2007-03-21 01:22:22 -05:00
  • 63e2d3dcbf Merge zizzer.eecs.umich.edu:/bk/newmem into zower.eecs.umich.edu:/home/gblack/m5/newmem-statetrace Gabe Black 2007-03-21 01:18:55 -04:00
  • 2b4c02b829 The m5 side of statetrace. This is fairly ugly, but I don't want to lose it. Gabe Black 2007-03-21 01:18:47 -04:00
  • 475d36ee93 Ignore "time" and "times" syscalls. Gabe Black 2007-03-20 23:53:52 -04:00
  • 076fd9a707 Fixed up some types and const placement, and added signed bitfields that sign extend themselves. Gabe Black 2007-03-20 11:40:30 +00:00
  • e7b015cee1 Added syntax for structure oriented extMachInsts. Gabe Black 2007-03-20 06:08:52 +00:00
  • 4df9411e59 Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-03-19 17:13:23 +00:00
  • be3550dfe0 Ditched read or write only subbitfields for now since they were proving difficult to implement. Allow component Bitfields to be instantiated without templates, clean up the implementation a little, and adjust the comments to match. Gabe Black 2007-03-19 17:12:50 +00:00
  • 277ded3de7 For the _BitfieldRO and _BitfieldWO classes, make sure the undesired operator is redefined as private. Gabe Black 2007-03-19 14:28:19 +00:00
  • 898652fe04 Formatting fixes. Gabe Black 2007-03-19 14:22:28 +00:00
  • 43dea39dd4 Lots and lots of comments. Gabe Black 2007-03-19 14:20:27 +00:00
  • ad9ab66175 Reworked the BitUnion stuff a bit. There is moderately better isolation of the backend parts, although there are still macros. Gabe Black 2007-03-19 13:28:36 +00:00
  • 7c0825ccf9 Compile fixes for SPARC_FS. Gabe Black 2007-03-18 23:09:51 -04:00
  • a1f92af0fb The syntax used for twin stores was confusing the parser so it's now broken down farther. Gabe Black 2007-03-17 21:23:03 -04:00
  • 594c415a0d Created BitUnion type which lets you define nested bitfields for an integer in a portable way. Gabe Black 2007-03-17 23:33:00 +00:00
  • b54fa0edda Merge zizzer.eecs.umich.edu:/bk/newmem into ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86 Gabe Black 2007-03-16 10:57:52 +00:00
  • 725ee42ba7 Fix ALPHA_FS compile. The MachInst -> StaticInstPtr constructor is no longer a conversion constructor because it caused ambiguous conversions when setting the pointer to NULL. Gabe Black 2007-03-16 10:57:34 +00:00