gem5.git
17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Mon, 9 Apr 2007 07:59:57 +0000 (07:59 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : 1396ed5b264d29377ef9793a763225a93181f65f

17 years agoAdded SPARC o3 insttest regression.
Gabe Black [Mon, 9 Apr 2007 07:59:56 +0000 (03:59 -0400)]
Added SPARC o3 insttest regression.

--HG--
extra : convert_revision : b008b4bda60ced329df9b700ff9b0a978e2d3b19

17 years agoAdded SPARC simple timing regression for insttest
Gabe Black [Mon, 9 Apr 2007 07:52:15 +0000 (03:52 -0400)]
Added SPARC simple timing regression for insttest

--HG--
extra : convert_revision : cb490fd6f1be73b57dceb93edf83d7edc4a67beb

17 years agoMake SPARC build o3 by default.
Gabe Black [Mon, 9 Apr 2007 07:40:21 +0000 (03:40 -0400)]
Make SPARC build o3 by default.

--HG--
extra : convert_revision : 7be49f9d395094d849d8da59b0fd4efe962fb201

17 years agoAccidentally didn't save when moving the specialization code out of here.
Gabe Black [Mon, 9 Apr 2007 01:08:05 +0000 (01:08 +0000)]
Accidentally didn't save when moving the specialization code out of here.

--HG--
extra : convert_revision : 1ffe0c497e10fef1eb84b3c97c00b98d820fbb97

17 years agoTake into account that the flattened integer register space is a different size than...
Gabe Black [Sun, 8 Apr 2007 23:31:11 +0000 (23:31 +0000)]
Take into account that the flattened integer register space is a different size than the architected one. Also fixed some asserts.

--HG--
extra : convert_revision : 26e7863919d1b976ba8cad747af475a6f18e9440

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Sun, 8 Apr 2007 01:54:08 +0000 (01:54 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-o3-spec

--HG--
extra : convert_revision : dba3542ab73cc8ae46347a14ae4c133f1276011c

17 years agoGet the "hard" SPARC instructions working in o3. I don't like that the IsStoreConditi...
Gabe Black [Sun, 8 Apr 2007 01:42:42 +0000 (01:42 +0000)]
Get the "hard" SPARC instructions working in o3. I don't like that the IsStoreConditional flag needs to be set for them because they aren't store conditional instructions, and I should fix the format code which is not handling the opt_flags correctly.

--HG--
extra : convert_revision : cfd32808592832d7b6fbdaace5ae7b17c8a246e9

17 years agoMove the instruction specialization stuff out of the microassembler file, and added...
Gabe Black [Fri, 6 Apr 2007 16:55:56 +0000 (16:55 +0000)]
Move the instruction specialization stuff out of the microassembler file, and added some comments to main.isa

--HG--
extra : convert_revision : 1534ae7d5a9e95bf662d79a04f9286c227541c6c

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Fri, 6 Apr 2007 16:39:47 +0000 (16:39 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : 8e624bb95cb9f478ca7ac1dbbd64e20674e3e224

17 years agoConsolidated the microcode assembler to help separate it from more x86-centric stuff.
Gabe Black [Fri, 6 Apr 2007 16:39:25 +0000 (16:39 +0000)]
Consolidated the microcode assembler to help separate it from more x86-centric stuff.

--HG--
extra : convert_revision : 5e7e8026e24ce44a3dac4a358e0c3e5560685958

17 years agoRefactored the x86 isa description some more. There should be more seperation between...
Gabe Black [Fri, 6 Apr 2007 16:00:56 +0000 (16:00 +0000)]
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.

--HG--
rename : src/arch/x86/isa/formats/macroop.isa => src/arch/x86/isa/macroop.isa
extra : convert_revision : 5ab40eedf574fce438d9fe90e00a496dc95c8bcf

17 years agoClean up the code a little, fix (I think) a perceived problem with immediate sizes...
Gabe Black [Fri, 6 Apr 2007 15:19:23 +0000 (15:19 +0000)]
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.

--HG--
extra : convert_revision : e59b747198cc79d50045bd2dc45b2e2b97bbffcc

17 years agoAdd in a stub merging function
Gabe Black [Fri, 6 Apr 2007 15:16:36 +0000 (15:16 +0000)]
Add in a stub merging function

--HG--
extra : convert_revision : 15e3cdb4ebcd31bc44204687ba59dde00c56c6be

17 years agoClean up the macroop code.
Gabe Black [Fri, 6 Apr 2007 15:15:36 +0000 (15:15 +0000)]
Clean up the macroop code.

--HG--
extra : convert_revision : 3cf83c3e038fece6190dbb91f56deb0498c9a70d

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Fri, 6 Apr 2007 14:37:46 +0000 (14:37 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-o3-spec

--HG--
extra : convert_revision : b7e89d32df946ea24c438292308f5fc8248f8bd9

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 5 Apr 2007 11:35:31 +0000 (11:35 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : efdbf9787383dc1df544b7276f8120285e69bf69

17 years agoThe process of going from an instruction definition to an instruction to be returned...
Gabe Black [Wed, 4 Apr 2007 23:35:20 +0000 (23:35 +0000)]
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.

1. Microops are created. These are StaticInsts use templates to provide a basic form of polymorphism without having to make the microassembler smarter.
2. An instruction class is created which has a "templated" microcode program as it's docstring. The template parameters are refernced with ^ following by a number.
3. An instruction in the decoder references an instruction template using it's mnemonic. The parameters to it's format end up replacing the placeholders. These parameters describe a source for an operand which could be memory, a register, or an immediate. It it's a register, the register index is used. If it's memory, eventually a load/store will be pre/postpended to the instruction template and it's destination register will be used in place of the ^. If it's an immediate, the immediate is used. Some operand types, specifically those that come from the ModRM byte, need to be decoded further into memory vs. register versions. This is accomplished by making the decode_block text for these instructions another case statement based off ModRM.
4. Once all of the template parameters have been handled, the instruction goes throw the microcode assembler which resolves labels and creates a list of python op objects. If an operand is a register, it uses a % prefix, an immediate uses $, and a label uses @. If the operand is just letters, numbers, and underscores, it can appear immediately after the prefix. If it's not, it can be encolsed in non nested {}s.
5. If there is a single "op" object (which corresponds to a single microop) the decoder is set up to return it directly. If not, a macroop wrapper is created around it.

In the future, I'm considering seperating the operand type specialization from the template substitution step. A problem this introduces is that either the template arguments need to be kept around for the specialization step, or they need to be re-extracted. Re-extraction might be the way to go so that the operand formats can be coded directly into the micro assembler template without having to pass them in as parameters. I don't know if that's actually useful, though.

src/arch/x86/isa/decoder/one_byte_opcodes.isa:
src/arch/x86/isa/microasm.isa:
src/arch/x86/isa/microops/microops.isa:
src/arch/x86/isa/operands.isa:
src/arch/x86/isa/microops/base.isa:
    Implemented polymorphic microops and changed around the microcode assembler syntax.

--HG--
extra : convert_revision : e341f7b8ea9350a31e586a3d33250137e5954f43

17 years agoFix a regular expression problem when recognizing labels for string substitution.
Gabe Black [Wed, 4 Apr 2007 23:19:32 +0000 (23:19 +0000)]
Fix a regular expression problem when recognizing labels for string substitution.

--HG--
extra : convert_revision : ba398e1b434efda28882f159d5a4419302276371

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Wed, 4 Apr 2007 20:50:49 +0000 (20:50 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-o3-spec

--HG--
extra : convert_revision : 81269f094834f43b4e908321bfce2e031b39d2a4

17 years agoUpdates for other ISA cpu_builders.
Kevin Lim [Wed, 4 Apr 2007 20:50:48 +0000 (16:50 -0400)]
Updates for other ISA cpu_builders.

--HG--
extra : convert_revision : b02736c627bb9dcf87463a9133e04369b9f8fae2

17 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 4 Apr 2007 19:39:13 +0000 (15:39 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/head

--HG--
extra : convert_revision : 7181d8c2ee673322372484cf288a94ebd91b5265

17 years agoPass ISA-specific O3 CPU as a constructor parameter instead of using setCPU functions.
Kevin Lim [Wed, 4 Apr 2007 19:38:59 +0000 (15:38 -0400)]
Pass ISA-specific O3 CPU as a constructor parameter instead of using setCPU functions.

src/cpu/o3/alpha/cpu_impl.hh:
    Pass ISA-specific O3 CPU to FullO3CPU as a constructor parameter instead of using setCPU functions.

--HG--
extra : convert_revision : 74f4b1f5fb6f95a56081f367cce7ff44acb5688a

17 years agoMerge zizzer:/bk/newmem
Ali Saidi [Wed, 4 Apr 2007 17:57:23 +0000 (13:57 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : be37463ea3ca38ef02ae0b82da0752f240a530d0

17 years agoThe MemoryObject tha owns a port should delete it if it so chooses when deletePortRef...
Ali Saidi [Wed, 4 Apr 2007 17:56:38 +0000 (13:56 -0400)]
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.

src/mem/bus.cc:
src/mem/bus.hh:
src/mem/cache/cache_impl.hh:
    only keep around one func port we give to anyone who wants it. Otherwise we can run out of port ids reasonably quickly if
    a lot of functional accesses are happening (e.g. remote debugging, dprintk, etc)

--HG--
extra : convert_revision : 6a9e3e96f51cedaab6de1b36cf317203899a3716

17 years agoReworking how x86's isa description works. I'm adopting the following definitions...
Gabe Black [Wed, 4 Apr 2007 14:31:59 +0000 (14:31 +0000)]
Reworking how x86's isa description works. I'm adopting the following definitions to make figuring out what's what a little easier:

MicroOp: A single operation actually implemented in hardware.
MacroOp: A collection of microops which are executed as a unit.
Instruction: An architected instruction which can be implemented with a macroop or a microop.

--HG--
extra : convert_revision : 1cfc8409cc686c75220767839f55a30551aa6f13

17 years agoMake "Name" really be the same as "name" with only the first letter capitalized....
Gabe Black [Wed, 4 Apr 2007 14:28:43 +0000 (14:28 +0000)]
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

--HG--
extra : convert_revision : bcbb28f2bf268765c1d37075a4417a4a6c1b9588

17 years agoMade x86 ExtMachInsts distinguishable from each other by defining a real == and a...
Gabe Black [Wed, 4 Apr 2007 14:27:00 +0000 (14:27 +0000)]
Made x86 ExtMachInsts distinguishable from each other by defining a real == and a real hash function.

--HG--
extra : convert_revision : 30f29a36f6ab44e67e62aaf81b685fbe1267c746

17 years agoAdded all the different variations of the register names.
Gabe Black [Wed, 4 Apr 2007 14:25:36 +0000 (14:25 +0000)]
Added all the different variations of the register names.

--HG--
extra : convert_revision : ff06bdca556a5e1a0dfe7978575c2277c30c002a

17 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Wed, 4 Apr 2007 04:14:44 +0000 (00:14 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/head

--HG--
extra : convert_revision : 4a8cbb65b19636c31b5c6fd5f24c90f8f2148ed1

17 years agoMade the "data" field of store queue entries into a character array. It's sized to...
Gabe Black [Tue, 3 Apr 2007 22:53:26 +0000 (22:53 +0000)]
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.

src/cpu/o3/lsq_unit.hh:
src/cpu/o3/lsq_unit_impl.hh:
    fixed twin memory operations.

--HG--
extra : convert_revision : 8fb97f98e285cd22413e06e146fa82392ac2a590

17 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Ali Saidi [Tue, 3 Apr 2007 22:29:09 +0000 (18:29 -0400)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/tmp/newmem.1449b

--HG--
extra : convert_revision : 05021f4884de7af769df9f9c4416c483baa9c2fe

17 years agofixed sttw instruction changes execution trace a bit
Ali Saidi [Tue, 3 Apr 2007 22:28:59 +0000 (18:28 -0400)]
fixed sttw instruction changes execution trace a bit

--HG--
extra : convert_revision : 4bebe6f9acedfd29dfe02f16d4ddb551a2fc7290

17 years agoFix a memory leak. Hopefully this fixes the longer running benchmarks.
Kevin Lim [Tue, 3 Apr 2007 18:25:24 +0000 (14:25 -0400)]
Fix a memory leak.  Hopefully this fixes the longer running benchmarks.

--HG--
extra : convert_revision : 89eff82642ff181a9b95c77c4d2bf620ca837113

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Tue, 3 Apr 2007 15:01:36 +0000 (15:01 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : 7be8ebe55a7b11552d78701520f93aa86db1e501

17 years agoA batch of changes and fixes. Macroops are now generated automatically, multiops...
Gabe Black [Tue, 3 Apr 2007 15:01:09 +0000 (15:01 +0000)]
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.

--HG--
extra : convert_revision : 518059f47e11df50aa450d4a322ef2ac069c99c9

17 years agoZero out ModRM if the byte isn't there, and fix some displacement size stuff.
Gabe Black [Tue, 3 Apr 2007 14:56:24 +0000 (14:56 +0000)]
Zero out ModRM if the byte isn't there, and fix some displacement size stuff.

--HG--
extra : convert_revision : f43abf33a223a665b30098c63011fb162200d5e6

17 years agoRemove/comment out DPRINTFs that were causing a segfault.
Kevin Lim [Mon, 2 Apr 2007 17:55:45 +0000 (13:55 -0400)]
Remove/comment out DPRINTFs that were causing a segfault.

The removed ones were unnecessary.  The commented out ones could be useful in the future, should this problem get fixed.  See flyspray task #243.

src/cpu/o3/commit_impl.hh:
src/cpu/o3/decode_impl.hh:
src/cpu/o3/fetch_impl.hh:
src/cpu/o3/iew_impl.hh:
src/cpu/o3/inst_queue_impl.hh:
src/cpu/o3/lsq_impl.hh:
src/cpu/o3/lsq_unit_impl.hh:
src/cpu/o3/rename_impl.hh:
src/cpu/o3/rob_impl.hh:
    Remove/comment out DPRINTFs that were causing a segfault.

--HG--
extra : convert_revision : b5aeda1c6300dfde5e0a3e9b8c4c5f6fa00b9862

17 years agoFix up SPARC's CPU builder to match changes to Alpha's CPU builder.
Kevin Lim [Mon, 2 Apr 2007 17:28:17 +0000 (13:28 -0400)]
Fix up SPARC's CPU builder to match changes to Alpha's CPU builder.

--HG--
extra : convert_revision : ec2a739f1da07f0922c772e6998017995115ce80

17 years agoUpdate refs for recent changes.
Kevin Lim [Fri, 30 Mar 2007 20:59:40 +0000 (16:59 -0400)]
Update refs for recent changes.

--HG--
extra : convert_revision : 30a02eec4d83c4e1708ed0a4e2b5faea88fe8e03

17 years agoMerge zizzer:/bk/newmem
Ali Saidi [Fri, 30 Mar 2007 02:01:34 +0000 (22:01 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 2f7f50f4ad31f741c0c67db96e49d30ca078fc94

17 years agomake serialization at least seem to work
Ali Saidi [Fri, 30 Mar 2007 02:00:01 +0000 (22:00 -0400)]
make serialization at least seem to work

--HG--
extra : convert_revision : cbfdb64f9a204670b8dd0294c74a17044b9f330c

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 29 Mar 2007 22:43:38 +0000 (22:43 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : e6a6c65cb0f8df9af82daa3eebd989c4211edfb0

17 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Gabe Black [Thu, 29 Mar 2007 22:43:37 +0000 (17:43 -0500)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-mcf

--HG--
extra : convert_revision : f2c3503e8893b957330cf3791748a45800ea5a82

17 years agoAdded SPARC_SE simple timing twolf regression.
Gabe Black [Thu, 29 Mar 2007 22:41:20 +0000 (17:41 -0500)]
Added SPARC_SE simple timing twolf regression.

--HG--
extra : convert_revision : 289aadd4bc762a5a9e7a82ee15196ebdea2521e5

17 years agoAdded a SPARC_SE simple timing mcf regression.
Gabe Black [Thu, 29 Mar 2007 22:39:34 +0000 (17:39 -0500)]
Added a SPARC_SE simple timing mcf regression.

--HG--
extra : convert_revision : d8fea11c37bd3f0b5f5e8880c92b711892ee8125

17 years agoget rid of CWP bounds warning...
Ali Saidi [Thu, 29 Mar 2007 19:57:11 +0000 (15:57 -0400)]
get rid of CWP bounds warning...

--HG--
extra : convert_revision : 74df09341c091c2d6ca9b46c6a3521f22b48acf4

17 years agoadd to instruction test sttw instruction
Ali Saidi [Thu, 29 Mar 2007 19:41:09 +0000 (15:41 -0400)]
add to instruction test sttw instruction

--HG--
extra : convert_revision : 16efbe12e609a909a589505ad6c473eb44c38f9c

17 years agoMade the MultiOp format do a little more. It now sets up single microop instructions...
Gabe Black [Thu, 29 Mar 2007 17:57:19 +0000 (17:57 +0000)]
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.

--HG--
extra : convert_revision : 1a0a4b36afce8255e23e3cdd7a85c1392dda5f72

17 years agoAdd a microcode assembler. A microcode "program" is a series of statements. Each...
Gabe Black [Thu, 29 Mar 2007 17:57:18 +0000 (17:57 +0000)]
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.

--HG--
extra : convert_revision : 8e5cfdd1a3c9a7e3731fdf6acd615ee82ac2b9b7

17 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Gabe Black [Thu, 29 Mar 2007 17:57:17 +0000 (12:57 -0500)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-vortex

--HG--
extra : convert_revision : 709766f1a1a2347c92d4f508e38b9602c1030717

17 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Gabe Black [Thu, 29 Mar 2007 17:53:36 +0000 (12:53 -0500)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-vortex

--HG--
extra : convert_revision : 7efa5fe80ef75155685b93453e967a1115318b9d

17 years agoMerge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
Gabe Black [Thu, 29 Mar 2007 17:52:09 +0000 (12:52 -0500)]
Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/newmem
into  zizzer.eecs.umich.edu:/.automount/wexford/x/gblack/m5/newmem-gzip

--HG--
extra : convert_revision : 39cf24fe19cd48306baef1ef147a3f4738d0fe8a

17 years agoAdded SPARC_SE simple timing vortex regression.
Gabe Black [Thu, 29 Mar 2007 17:51:12 +0000 (12:51 -0500)]
Added SPARC_SE simple timing vortex regression.

--HG--
extra : convert_revision : 12a2fc0b43cfa72747c1ef24d124979e43b166c7

17 years agoAdded SPARC_SE simple timing gzip regression.
Gabe Black [Thu, 29 Mar 2007 17:49:59 +0000 (12:49 -0500)]
Added SPARC_SE simple timing gzip regression.

--HG--
extra : convert_revision : 3d5f5f991c9b0c1c07499a2013119240cae5870f

17 years agoOverride addPrivateSplitL1Caches function in order to automatically set the tgts_per_...
Kevin Lim [Thu, 29 Mar 2007 16:25:47 +0000 (12:25 -0400)]
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.

Remove this hack once the caches eventually get fixed.

--HG--
extra : convert_revision : 8c61ac1b6182f57ebbe3bcfeddb5a4f4334d7bc0

17 years agoUpdate code so that the O3 CPU can handle not initially having anything hooked up...
Kevin Lim [Thu, 29 Mar 2007 16:02:57 +0000 (12:02 -0400)]
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.

src/cpu/o3/fetch.hh:
src/cpu/o3/fetch_impl.hh:
    Update code so that the O3 CPU can handle not initially having anything hooked up to its ports.

--HG--
extra : convert_revision : 04bcef44e754735d821509ebd69b0ef9c8ef8e2c

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 29 Mar 2007 07:51:34 +0000 (00:51 -0700)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ewok.(none):/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : 849b63ae1300e240082da19dfeb283cdeeb80aef

17 years agoFidget with the syntax of the MultiOp format in anticipation of making it actually...
Gabe Black [Thu, 29 Mar 2007 07:50:54 +0000 (00:50 -0700)]
Fidget with the syntax of the MultiOp format in anticipation of making it actually work.

--HG--
extra : convert_revision : f62a1f035cc11677df8eb5a839ca1247d819fab3

17 years agoAdd code to generate register and immediate based integer op microop classes.
Gabe Black [Thu, 29 Mar 2007 07:49:53 +0000 (00:49 -0700)]
Add code to generate register and immediate based integer op microop classes.

--HG--
extra : convert_revision : 718f941da74dd3b4557cd21e1772879ac21aa9c6

17 years agoAllow "let" blocks to add code to the output files.
Gabe Black [Thu, 29 Mar 2007 07:47:46 +0000 (00:47 -0700)]
Allow "let" blocks to add code to the output files.

--HG--
extra : convert_revision : 0ffddb2b40dccbf2a3790464c843cfc1b43eaa02

17 years agoCall compare and Swap on the target, not the response.
Ron Dreslinski [Wed, 28 Mar 2007 19:38:11 +0000 (14:38 -0500)]
Call compare and Swap on the target, not the response.

--HG--
extra : convert_revision : 522805fe2c9abaa5ba0d9262ad98f841d90f6452

17 years agosome more fixes... non-tso stuff seems to work
Ali Saidi [Wed, 28 Mar 2007 00:44:21 +0000 (20:44 -0400)]
some more fixes... non-tso stuff seems to work

--HG--
extra : convert_revision : da604d20443376d04826397d0aaff0bdd744053b

17 years agoMerge zizzer:/bk/newmem
Ron Dreslinski [Tue, 27 Mar 2007 22:06:07 +0000 (17:06 -0500)]
Merge zizzer:/bk/newmem
into  zazzer.eecs.umich.edu:/z/rdreslin/m5bk/head

--HG--
extra : convert_revision : 45b64b1564f0e4958d8441455f87b2b185324d55

17 years agoFirst Pass At Cmp/Swap in caches
Ron Dreslinski [Tue, 27 Mar 2007 22:05:25 +0000 (17:05 -0500)]
First Pass At Cmp/Swap in caches

--HG--
extra : convert_revision : 211bfb7c6a59e9e120dae1600d4754baaf231332

17 years agoInstead of creating a new python process to run traceflags.py,
Nathan Binkert [Tue, 27 Mar 2007 04:07:32 +0000 (21:07 -0700)]
Instead of creating a new python process to run traceflags.py,
just directly exec the file and generate the flags

--HG--
extra : convert_revision : d648ca7348404ded5337db327adafccbd2ae40c8

17 years agoMerge zizzer:/bk/newmem
Ali Saidi [Mon, 26 Mar 2007 22:40:30 +0000 (18:40 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : 4b60e96e8dc9c69842514e29925ec1931597ddb4

17 years agofirst bit of life from the intel gigabit model
Ali Saidi [Mon, 26 Mar 2007 22:40:18 +0000 (18:40 -0400)]
first bit of life from the intel gigabit model

--HG--
extra : convert_revision : d8944a53f6b585df21651c4e624518d5c49a7837

17 years agoUpdate stats for changes.
Kevin Lim [Sun, 25 Mar 2007 05:05:48 +0000 (01:05 -0400)]
Update stats for changes.

--HG--
extra : convert_revision : a24c4cd7e2fcd732f5da5679f0c0fbf205f22815

17 years agoUpdate for new trace data behavior.
Kevin Lim [Sun, 25 Mar 2007 04:47:14 +0000 (23:47 -0500)]
Update for new trace data behavior.

--HG--
extra : convert_revision : c3df20c5187614febc4cc9f4d4c68bfecfba1ea7

17 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Sat, 24 Mar 2007 18:00:16 +0000 (14:00 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/clean2

--HG--
extra : convert_revision : f3d193dd1e0b82c496d8224f014123b7cb028c02

17 years agoAdded a SPARC_SE simple atomic regression for the mcf benchmark.
Gabe Black [Sat, 24 Mar 2007 07:14:24 +0000 (02:14 -0500)]
Added a SPARC_SE simple atomic regression for the mcf benchmark.

--HG--
extra : convert_revision : 2284e41c03659db8fc8f284f7d9b587a3708fadf

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Sat, 24 Mar 2007 01:47:03 +0000 (21:47 -0400)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  zower.eecs.umich.edu:/home/gblack/m5/newmem-o3-spec

--HG--
extra : convert_revision : 6b1c8025d29f3e8f90906805dd51a5d523d56004

17 years agoMerge ktlim@zizzer:/bk/newmem
Kevin Lim [Fri, 23 Mar 2007 17:20:19 +0000 (13:20 -0400)]
Merge ktlim@zizzer:/bk/newmem
into  zamp.eecs.umich.edu:/z/ktlim2/clean/tmp/clean2

src/cpu/base_dyn_inst.hh:
    Hand merge.  Line is no longer needed because it's handled in the ISA.

--HG--
extra : convert_revision : 0be4067aa38759a5631c6940f0167d48fde2b680

17 years agoMake hardware loads/stores serializing; they need to avoid certain out-of-order inter...
Kevin Lim [Fri, 23 Mar 2007 17:14:05 +0000 (13:14 -0400)]
Make hardware loads/stores serializing; they need to avoid certain out-of-order interactions in the 21264.

--HG--
extra : convert_revision : d83940af7d0e8efe891d574ac42c6d70d179e2b1

17 years agoUpdates for commit.
Kevin Lim [Fri, 23 Mar 2007 17:13:10 +0000 (13:13 -0400)]
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.

src/cpu/o3/commit.hh:
    Slightly modify how interrupts are handled.  Also include some extra bools to keep track of state properly.
src/cpu/o3/commit_impl.hh:
    Slightly modify how interrupts are handled.  Also include some extra bools to keep track of state.

    General correctness updates, most specifically for when commit broadcasts to other stages that the ROB is empty.

--HG--
extra : convert_revision : 682ec6ccf4ee6ed0c8a030ceaba1c90a3619d102

17 years ago3 memory system fixes:
Kevin Lim [Fri, 23 Mar 2007 17:09:37 +0000 (13:09 -0400)]
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.

src/mem/bus.cc:
    Update packet's flags properly upon snoop.
src/mem/cache/cache_impl.hh:
    Be sure to not allow accesses to a block with outstanding MSHRs.
src/mem/cache/miss/miss_queue.cc:
    Update MSHR's request upon a response being handled.

--HG--
extra : convert_revision : 76a9abc610ca3f1904f075ad21637148a41982d6

17 years agoHandle status bits a little better, as well as non-speculative instructions.
Kevin Lim [Fri, 23 Mar 2007 15:40:53 +0000 (11:40 -0400)]
Handle status bits a little better, as well as non-speculative instructions.

src/cpu/o3/iew_impl.hh:
    Allow for slightly more flexible handling of non-speculative instructions.  They can be other classes now, such as loads or stores.

    Also be sure to clear the state associated with squashes that are not used.  i.e. if a squash due to a memory ordering violation happens on the same cycle as an older branch squashing, clear the state associated with the memory ordering violation.

    Lastly don't consider uncached loads to officially be "at commit" until IEW receives the signal back from commit about the load.
src/cpu/o3/inst_queue_impl.hh:
    Don't consider non-speculative instructions to be "at commit" until the IQ has received a signal from commit about the instruction.  This prevents non-speculative instructions from being issued too early.
src/cpu/o3/mem_dep_unit_impl.hh:
    Clear instruction's ability to issue if it's replayed.

--HG--
extra : convert_revision : d69dae878a30821222885485f4dee87170d56eb3

17 years agoTwo fixes:
Kevin Lim [Fri, 23 Mar 2007 15:33:08 +0000 (11:33 -0400)]
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.

src/cpu/base_dyn_inst.hh:
    Update how requests are handled.  The BaseDynInst should not be able to hold a pointer to the request because the request becomes owned by the memory system once it is sent out.

    Also include some functions to allow certain status bits to be cleared.
src/cpu/base_dyn_inst_impl.hh:
    Update how requests are handled.  The BaseDynInst should not be able to hold a pointer to the request because the request becomes owned by the memory system once it is sent out.
src/cpu/o3/fetch_impl.hh:
    General correctness fixes.  retryPkt is not necessarily always set, so handle it properly.  Also consider the cache unblocked only when recvRetry is called.
src/cpu/o3/lsq_unit.hh:
    Handle requests a little more correctly.  Now that the requests aren't pointed to by the DynInst, be sure to delete the request if it's not being used by the memory system.

    Also be sure to not store-load forward from an uncacheable store.
src/cpu/o3/lsq_unit_impl.hh:
    Check to make sure load-load ordering was maintained.

    Also handle requests a little more correctly.

--HG--
extra : convert_revision : e86bead2886d02443cf77bf7a7a1492845e1690f

17 years agoSet progress_interval in terms of CPU cycles.
Kevin Lim [Fri, 23 Mar 2007 15:26:30 +0000 (11:26 -0400)]
Set progress_interval in terms of CPU cycles.

--HG--
extra : convert_revision : 76b0918276cb613eb314ab1479b5ffdb31f31dee

17 years agoA couple of minor fixes.
Kevin Lim [Fri, 23 Mar 2007 15:22:43 +0000 (11:22 -0400)]
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.

src/cpu/o3/alpha/cpu_builder.cc:
    Allow for CPU id in all modes, not just full system.  Also include a parameter that was left out by accident.
src/cpu/o3/alpha/cpu_impl.hh:
    Set the CPU ID properly.
src/cpu/o3/cpu.cc:
src/cpu/o3/cpu.hh:
    Use nextCycle() function so that the CPU does not get out of phase when starting up from quiesces.
src/cpu/o3/rename_map.cc:
    Remove assertion that is no longer true.
tests/configs/o3-timing.py:
    Set CPU's id to 0.

--HG--
extra : convert_revision : 2b69c19adfce2adcc2d1939e89d702bd6674d5d5

17 years agoMerge zizzer:/bk/newmem
Ali Saidi [Thu, 22 Mar 2007 22:39:51 +0000 (18:39 -0400)]
Merge zizzer:/bk/newmem
into  zeep.pool:/z/saidi/work/m5.newmem

--HG--
extra : convert_revision : fd590d464359d8ae859998a9f446b960781a5e33

17 years agofinish up the coding of the Intel Gb NIC... Many Many bugs to squash
Ali Saidi [Thu, 22 Mar 2007 22:39:41 +0000 (18:39 -0400)]
finish up the coding of the Intel Gb NIC... Many Many bugs to squash

src/dev/i8254xGBe.cc:
src/dev/i8254xGBe.hh:
src/dev/i8254xGBe_defs.hh:
    finish coding the Intel Gb NIC device
src/dev/io_device.hh:
    we really don't want to be able to pass a null buffer to dma read, at least not the way we have things setup now... it won't work at all

--HG--
extra : convert_revision : 6739497232317ec407cfa7a96de4575a9a6cfc46

17 years agoAdd structure based bitfield syntax to the isa_parser. This is primarily useful for...
Gabe Black [Thu, 22 Mar 2007 04:10:57 +0000 (04:10 +0000)]
Add structure based bitfield syntax to the isa_parser. This is primarily useful for x86.

--HG--
extra : convert_revision : dfe6df160d00adec1830d9b88520ba20834d1209

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 22 Mar 2007 04:10:56 +0000 (04:10 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : 79c337f18d635acc176f0ca8d6e71fbc429cb258

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Thu, 22 Mar 2007 04:10:55 +0000 (00:10 -0400)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  zower.eecs.umich.edu:/home/gblack/m5/newmem-statetrace

--HG--
extra : convert_revision : da83ee4c3251fa95faf66e8c6d3412158ffe6887

17 years agoFix mcf benchmark object so it gets the arguments it expects.
Gabe Black [Thu, 22 Mar 2007 04:10:47 +0000 (00:10 -0400)]
Fix mcf benchmark object so it gets the arguments it expects.

--HG--
extra : convert_revision : 47087be1f89699e9f8e0dc023abbf593bc0f6618

17 years agoAdd a junk operand. With no operands, the parser breaks.
Gabe Black [Wed, 21 Mar 2007 21:09:24 +0000 (21:09 +0000)]
Add a junk operand. With no operands, the parser breaks.

--HG--
extra : convert_revision : 7410fd3681ed3d9b1293d982ed5f3553a6c75f3f

17 years agoStart implementing groups of instructions which do the same thing on different sets...
Gabe Black [Wed, 21 Mar 2007 21:07:43 +0000 (21:07 +0000)]
Start implementing groups of instructions which do the same thing on different sets of inputs.

--HG--
extra : convert_revision : 6a5be61831588f801965dd4e80cb52f28911c320

17 years agoput the int register count in intregs.hh
Gabe Black [Wed, 21 Mar 2007 21:04:54 +0000 (21:04 +0000)]
put the int register count in intregs.hh

--HG--
extra : convert_revision : c48c13d9c4606c8cb7c60d18cd0f4dac9103a501

17 years agoAdd a s SPARC_SE gzip regression
Gabe Black [Wed, 21 Mar 2007 19:31:48 +0000 (14:31 -0500)]
Add a s SPARC_SE gzip regression

--HG--
extra : convert_revision : 5d75c9ad6e4599ce9b1afc176eaafab03bed43f0

17 years agoBreak out the one and two byte opcodes into different files. Also change what bits...
Gabe Black [Wed, 21 Mar 2007 19:19:53 +0000 (19:19 +0000)]
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.

--HG--
extra : convert_revision : 8768676eac25e6a4f0dc50ce2dc576bdcdd6e025

17 years agoMissed a const
Gabe Black [Wed, 21 Mar 2007 19:15:40 +0000 (19:15 +0000)]
Missed a const

--HG--
rename : src/arch/x86/isa/decoder.isa => src/arch/x86/isa/decoder/decoder.isa
extra : convert_revision : a60e7495da6fe99fa2375a3f801f2962c3e41adb

17 years agocreated SPARC_SE vortex regression.
Gabe Black [Wed, 21 Mar 2007 06:22:22 +0000 (01:22 -0500)]
created SPARC_SE vortex regression.

--HG--
extra : convert_revision : cdb60bcfbea4b79491fb035cc7ecd08cbaa2100b

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Wed, 21 Mar 2007 05:18:55 +0000 (01:18 -0400)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  zower.eecs.umich.edu:/home/gblack/m5/newmem-statetrace

--HG--
extra : convert_revision : 41214c71e7fa11d47395975a141793337d020463

17 years agoThe m5 side of statetrace. This is fairly ugly, but I don't want to lose it.
Gabe Black [Wed, 21 Mar 2007 05:18:47 +0000 (01:18 -0400)]
The m5 side of statetrace. This is fairly ugly, but I don't want to lose it.

--HG--
extra : convert_revision : 171b41418567c1f41f43363a46fa9aeaa58ae606

17 years agoIgnore "time" and "times" syscalls.
Gabe Black [Wed, 21 Mar 2007 03:53:52 +0000 (23:53 -0400)]
Ignore "time" and "times" syscalls.

--HG--
extra : convert_revision : 3ff55e35877c0fd74823ce5e52ed16c38da92068

17 years agoFixed up some types and const placement, and added signed bitfields that sign extend...
Gabe Black [Tue, 20 Mar 2007 11:40:30 +0000 (11:40 +0000)]
Fixed up some types and const placement, and added signed bitfields that sign extend themselves.

--HG--
extra : convert_revision : 84bda8fc14f9a6f7dc7982c9aeb15bf688457706

17 years agoAdded syntax for structure oriented extMachInsts.
Gabe Black [Tue, 20 Mar 2007 06:08:52 +0000 (06:08 +0000)]
Added syntax for structure oriented extMachInsts.

--HG--
extra : convert_revision : 4a30c58019ad8e3dd8dffb4c4c08eb6914e5c5be

17 years agoMerge zizzer.eecs.umich.edu:/bk/newmem
Gabe Black [Mon, 19 Mar 2007 17:13:23 +0000 (17:13 +0000)]
Merge zizzer.eecs.umich.edu:/bk/newmem
into  ahchoo.blinky.homelinux.org:/home/gblack/m5/newmem-x86

--HG--
extra : convert_revision : a6ae6ce183aaa4d1a9434f9ddd64cc30878d2147