summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-10-29X86: Fault on divide by zero instead of panicing.Gabe Black
2010-10-29X86: Make syscalls also serialize after.Gabe Black
2010-10-24O3: Get rid of a bunch of commented out lines.Gabe Black
2010-10-22Configs: Stop setting the "mem" parameter in splash2 config files.Gabe Black
This parameter is no longer used, and trying to set it like these scripts were gives a simobject two parents and causes the simulation to die.
2010-10-22X86: Make nop a regular, non-microcoded instruction.Gabe Black
Code in the CPUs that need a nop to carry a fault can't easily deal with a microcoded nop. This instruction format provides for one that isn't. --HG-- rename : src/arch/x86/isa/formats/syscall.isa => src/arch/x86/isa/formats/nop.isa
2010-10-22X86: Implement genMachineCheckFault.Gabe Black
Even though this shouldn't ever be used, it might get called speculatively and shouldn't panic.
2010-10-22X86: Make syscall instructions non-speculative in SE.Gabe Black
2010-10-22ISA: Simplify various implementations of completeAcc.Gabe Black
2010-10-22ARM: Don't pretend to writeback registers in initiateAcc.Gabe Black
2010-10-18cache: minor SC assertion fixSteve Reinhardt
Thanks to Joe Gross for finding/testing this.
2010-10-17MIPS: Get rid of the backdoor device copy/pasted from and only used in Alpha.Gabe Black
2010-10-16Mem: Reclaim some request flags used by MIPS for alignment checking.Gabe Black
These flags were being used to identify what alignment a request needed, but the same information is available using the request size. This change also eliminates the isMisaligned function. If more complicated alignment checks are needed, they can be signaled using the ASI_BITS space in the flags vector like is currently done with ARM.
2010-10-15GetArgument: Rework getArgument so that X86_FS compiles again.Gabe Black
When no size is specified for an argument, push the decision about what size to use into the ISA by passing a size of -1.
2010-10-14SPARC: Get rid of the copy/pasted StackTrace stolen from Alpha.Gabe Black
2010-10-13Mem: Change the CLREX flag to CLEAR_LL.Gabe Black
CLREX is the name of an ARM instruction, not a name for this generic flag.
2010-10-10X86: Detect attempts to load a 32 bit kernel and panic.Gabe Black
2010-10-10SPARC: Make SPARC's ISA's clear function initialize everything it should.Gabe Black
Also make it not set some pointers to NULL potentially introducing a memory leak. That should be done in the constructor.
2010-10-10Alpha: Force all the IPRs to an initial, determinstic value when cleared.Gabe Black
2010-10-10Alpha: Initialize the data TLB mode IPR.Gabe Black
2010-10-09UART: Make the 8250's MCR return a deterministic value.Gabe Black
This change makes the 8250 device return the value it has for the MCR when read instead of leaving the packet data unmodified/uninitialized. The value the UART has for the MCR may not be right, but that's a seperate issue that apparently hasn't caused any problems to date.
2010-10-04Alpha: Fix Alpha NumMiscArchRegs constant.Gabe Black
Also add asserts in O3's Scoreboard class to catch bad indexes.
2010-10-01Power: Fix compile error from previous push.Ali Saidi
2010-10-01ARM: Make the TLB a little bit faster by moving most recently used items to ↵Ali Saidi
front of list
2010-10-01ARM: Add a fake flash controller so that unmodified linux can bootAli Saidi
With this change an unmodified Linux kernel can boot in M5.
2010-10-01ARM: Fix some subtle bugs in the GICPrakash Ramrakhyani
The GIC code can write to the registers with 8, 16, or 32 byte accesses which could set/clear different numbers of interrupts.
2010-10-01ARM: Implement functional virtual to physical address translationAli Saidi
for debugging and program introspection.
2010-10-01Debug: Implement getArgument() and function skipping for ARM.Ali Saidi
In the process make add skipFuction() to handle isa specific function skipping instead of ifdefs and other ugliness. For almost all ABIs, 64 bit arguments can only start in even registers. Size is now passed to getArgument() so that 32 bit systems can make decisions about register selection for 64 bit arguments. The number argument is now passed by reference because getArgument() will need to change it based on the size of the argument and the current argument number. For ARM, if the argument number is odd and a 64-bit register is requested the number must first be incremented to because all 64 bit arguments are passed in an even argument register. Then the number will be incremented again to access both halves of the argument.
2010-10-01ARM: Clean up use of TBit and JBit.Ali Saidi
Rather tha constantly using ULL(1) << PcXBitShift define those directly. Additionally, add some helper functions to further clean up the code.
2010-09-30CPU/Cache: Fix some errors exposed by valgrindAli Saidi
2010-09-29X86: Fix the RIP relative versions of the BT, BTC, BTR, and BTS instructions.Gabe Black
2010-09-22python: get rid of internal.enums package.Steve Reinhardt
Move generated enums into internal.params, which gets imported into object.params, restoring backward compatibility for scripts that expect to find them there.
2010-09-21stats: update stats for previous csetSteve Reinhardt
Coherence protocol change basically got rid of UpgradeReqs in L2 caches, other minor related cache stat changes.
2010-09-21cache: improve coherence handling of writebacksSteve Reinhardt
If we write back an exclusive copy, we now mark it as such, so the cache receiving the writeback can mark its copy as exclusive. This avoids some unnecessary upgrade requests when a cache later tries to re-acquire exclusive access to the block.
2010-09-21diff-out: clean up optionsSteve Reinhardt
Make diff-out sort stats changes by percentage by default, with '-a' to use current alpha sort (instead of requiring '-p' to sort by percentage). Other minor options cleanup too.
2010-09-21tests: print if output files matchSteve Reinhardt
Add '-s' flag to diff command generating outdiff file so we have positive confirmation when outputs match.
2010-09-20CPU: Fix O3 and possible InOrder segfaults in FS.Gabe Black
2010-09-16devices: undo cset 017baf09599f that added timer drain functions.Steve Reinhardt
It's not the right fix for the checkpoint deadlock problem Brad was having, and creates another bug where the system can deadlock on restore. Brad can't reproduce the original bug right now, so we'll wait until it arises again and then try to fix it the right way then.
2010-09-14X86: Make the halt microop non-speculative.Gabe Black
Executing this microop makes the CPU halt even if it was misspeculated.
2010-09-14X86: Make unrecognized instructions behave better in x86.Gabe Black
2010-09-14CPU: Trim unnecessary includes from some common files.Gabe Black
This reduces the scope of those includes and makes it less likely for there to be a dependency loop. This also moves the hashing functions associated with ExtMachInst objects to be with the ExtMachInst definitions and out of utility.hh.
2010-09-13CPU: Get rid of the now unnecessary getInst/setInst family of functions.Gabe Black
This code is no longer needed because of the preceeding change which adds a StaticInstPtr parameter to the fault's invoke method, obviating the only use for this pair of functions.
2010-09-13Faults: Pass the StaticInst involved, if any, to a Fault's invoke method.Gabe Black
Also move the "Fault" reference counted pointer type into a separate file, sim/fault.hh. It would be better to name this less similarly to sim/faults.hh to reduce confusion, but fault.hh matches the name of the type. We could change Fault to FaultPtr to match other pointer types, and then changing the name of the file would make more sense.
2010-09-12swig: make all generated files go into the m5.internal packageNathan Binkert
This is necessary because versions of swig older than 1.3.39 fail to do the right thing and try to do relative imports for everything (even with the package= option to %module). Instead of putting params in the m5.internal.params package, put params in the m5.internal package and make all param modules start with param_. Same thing for m5.internal.enums. Also, stop importing all generated params into m5.objects. They are not necessary and now with everything using relative imports we wound up with pollution of the namespace (where builtin-range got overridden). --HG-- rename : src/python/m5/internal/enums/__init__.py => src/python/m5/internal/enums.py rename : src/python/m5/internal/params/__init__.py => src/python/m5/internal/params.py
2010-09-10style: fix sorting of includes and whitespace in some filesNathan Binkert
2010-09-09scons: Stop building the big monolithic swigged params moduleNathan Binkert
kill params.i and create a separate .i for each object (param, enums, etc.)
2010-09-09init: don't build files that centralize python and swig codeNathan Binkert
Instead of putting all object files into m5/object/__init__.py, interrogate the importer to find out what should be imported. Instead of creating a single file that lists all of the embedded python modules, use static object construction to put those objects onto a list. Do something similar for embedded swig (C++) code.
2010-09-09scons: use code_formatter wherever we can in the build systemNathan Binkert
2010-09-09code_formatter: make it easier to insert whitespaceNathan Binkert
a newline by just doing "code()". indent() and dedent() now take a "count" parameter to indent/dedent multiple levels.
2010-09-09swig: don't override SWIG_name anymoreNathan Binkert
It doesn't appear to be necessary and it is somewhat odd. I'm pretty sure that the package parameter to %module does whatever this might have been before. It's necessary in future revisions anyway.
2010-09-09stats: update stats for preceding coherence changesSteve Reinhardt
Because the handling of the E state for multilevel caches has changed, stats are affected for any non-ruby config with caches, even uniprocessor simple CPU.