summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-11-04X86: Enable x86_64 vsyscall supportVince Weaver
64-bit vsyscall is different than 32-bit. There are only two syscalls, time and gettimeofday. On a real system, there is complicated code that implements these without entering the kernel. That would be complicated to implement in m5. Instead we just place code that calls the regular syscalls (this is how tools such as valgrind handle this case). This is needed for the perlbmk spec2k benchmark.
2009-11-04X86: Hook up time syscall on X86Vince Weaver
This has been tested and verified that it works.
2009-10-30X86: Add support for x86 psrldq and pslldq instructionsVince Weaver
These are complicated instructions and the micro-code might be suboptimal. This has been tested with some small sample programs (attached) The psrldq instruction is needed by various spec2k programs.
2009-10-30X86: Implement movd_Vo_Edp on X86Vince Weaver
This patch implements the movd_Vo_Edp series of instructions. It addresses various concerns by Gabe Black about which file the instruction belonged in, as well as supporting REX prefixed instructions properly. This instruction is needed for some of the spec2k benchmarks, most notably bzip2.
2009-10-30X86: Implement the X86 sse2 haddpd instructionVince Weaver
This patch implements the haddpd instruction. It fixes the problem in the previous version (pointed out by Gabe Black) where an incorrect result would happen if you issue the instruction with the same argument twice, i.e. "haddpd %xmm0,%xmm0" This instruction is used by many spec2k benchmarks.
2009-10-30X86: Hookup truncate/ftruncate syscalls on X86Vince Weaver
This patch hooks up the truncate, ftruncate, truncate64 and ftruncate64 system calls on 32-bit and 64-bit X86. These have been tested on both architectures. ftruncate/ftruncate64 is needed for the f90 spec2k benchmarks.
2009-10-30SysCalls: Implement truncate64 system callVince Weaver
This uses the new stack-based argument infrastructure. Tested on x86 and x86_64.
2009-10-31Syscalls: Fix a warning turned error about an unused variable in m5.fast.Gabe Black
2009-10-30Syscalls: Make system calls access arguments like a stack, not an array.Gabe Black
When accessing arguments for a syscall, the position of an argument depends on the policies of the ISA, how much space preceding arguments took up, and the "alignment" of the index for this particular argument into the number of possible storate locations. This change adjusts getSyscallArg to take its index parameter by reference instead of value and to adjust it to point to the possible location of the next argument on the stack, basically just after the current one. This way, the rules for the new argument can be applied locally without knowing about other arguments since those have already been taken into account implicitly. All system calls have also been changed to reflect the new interface. In a number of cases this made the implementation clearer since it encourages arguments to be collected in one place in order and then used as necessary later, as opposed to scattering them throughout the function or using them in place in long expressions. It also discourages using getSyscallArg over and over to retrieve the same value when a temporary would do the job.
2009-10-28license: Fix license on network model codeNathan Binkert
This mostly was a matter of changing the license owner to Princeton which is as it should have been. The code was originally licensed under the GPL but was relicensed as BSD by Li-Shiuan Peh on July 27, 2009. This relicensing was in an explicit e-mail to Nathan Binkert, Brad Beckmann, Mark Hill, David Wood, and Steve Reinhardt.
2009-10-27X86: Replace "DISPLACEMENT" with disp in movhpd.Gabe Black
2009-10-27Fix problem with the x86 sse movhpd instruction.Vince Weaver
The movhpd instruction was writing to the wrong memory offset.
2009-10-21Implement X86 sse2 movdqu and movdqa instructionsVince Weaver
The movdqa instruction should enforce 16-byte alignment. This implementation does not do that. These instructions are needed for most of x86_64 spec2k to run.
2009-10-20hook up stat syscall on 64-bit x86_SEVince Weaver
2009-10-20hook up stat64 syscall on 32-bit X86_SEVince Weaver
2009-10-20Fix stat64 structure on 32-bit X86_SEVince Weaver
The st_size entry was in the wrong place (see linux-2.6.29/arch/x86/include/asm/stat.h ) Also, the packed attribute is needed when compiling on a 64-bit machine, otherwise gcc adds extra padding that break the layout of the structure.
2009-10-27POWER: Add support for the Power ISATimothy M. Jones
This adds support for the 32-bit, big endian Power ISA. This supports both integer and floating point instructions based on the Power ISA Book I v2.06.
2009-10-26fixed error message generation bug in SLICC ast filesBrad Beckmann
2009-10-24syscall: Addition of an ioctl command code for Power.Timothy M. Jones
2009-10-24syscall: Zero out memory that already exists during the brk system call.Timothy M. Jones
Glibc often assumes that memory it receives from the kernel after a brk system call will contain only zeros. This is important during a calloc, because it won't clear the new memory itself. In the simulator, if the new page exists, it will be cleared using this patch, to mimic the kernel's functionality.
2009-10-24syscall: Fix conversion of the stat64 buffer during system calls.Timothy M. Jones
2009-10-24syscall: Implementation of the ftruncate64 system call.Timothy M. Jones
2009-10-24syscall: Implementation of the time system call.Timothy M. Jones
2009-10-24syscall: Implementation of the times system callTimothy M. Jones
2009-10-19Enable getuid and getgid related syscalls on X86_SEVince Weaver
I've tested these on x86 and they work as expected. In theory for 32-bit x86 we should have some sort of special handling for the legacy 16-bit uid/gid syscalls, but in practice modern toolchains don't use the 16-bit versions, and m5 sets the uid and gid values to be less than 16-bits anyway. This fix is needed for the perl spec2k benchmarks to run.
2009-10-16Ignore rt_sigaction() syscalls on x86 and x86_64Vince Weaver
This is currently how alpha handles this syscall. This is needed for the gcc spec2k benchmarks to run.
2009-10-17ISA: Fix compilation.Gabe Black
2009-10-15fixed MC146818 checkpointing bug and added isa serialization calls to ↵Brad Beckmann
simple_thread
2009-10-10Hook up the munmap() syscall for 32-bit x86.Vince Weaver
This is straightforward, as munmapFunc() doesn't do anything. I've tested it with code running munmap() just in case.
2009-10-03bus: add assertion to catch illegal retrySteve Reinhardt
on mem-inhibited transaction.
2009-10-02X86: Make successive anonymous mmaps move down in 32 bit SE mode Linux.Gabe Black
2009-10-02SE mode: Make the direction anonymous mmaps move through memory configurable.Gabe Black
2009-10-01inorder-debug: print out workloadKorey Sewell
2009-09-29commit Soumyaroop's bug catch about max_insts_all_threadsLisa Hsu
2009-09-26python: Fix m5.defines so grabbing flags works correctlyNathan Binkert
2009-09-26O3: Add flag to control whether faulting instructions are traced.Steve Reinhardt
When enabled, faulting instructions appear in the trace twice (once when they fault and again when they're re-executed). This flag is set by the Exec compound flag for backwards compatibility.
2009-09-26Minor cleanup: Use the blockAlign() method where it applies in the cache.Steve Reinhardt
2009-09-26Force prefetches to check cache and MSHRs immediately prior to issue.Steve Reinhardt
This prevents redundant prefetches from being issued, solving the occasional 'needsExclusive && !blk->isWritable()' assertion failure in cache_impl.hh that several people have run into. Eliminates "prefetch_cache_check_push" flag, neither setting of which really solved the problem.
2009-09-26O3: Mark fetch stage as active if it faults.Steve Reinhardt
Otherwise if the rest of the pipeline is idle then fault will never propagate to commit to be handled, causing CPU to deadlock.
2009-09-25inorder-debug: fix cpu tick debug messageKorey Sewell
2009-09-23isa_parser: Turn the ISA Parser into a subclass of Grammar.Nathan Binkert
This is to prepare for future cleanup where we allow SCons to create a separate grammar class for each ISA
2009-09-23ply grammar: Fixup Tokenizer class so you can get lexer argumentsNathan Binkert
2009-09-23ruby: Disable all debug output by defaultNathan Binkert
2009-09-23arch: nuke arch/isa_specific.hh and move stuff to generated config/the_isa.hhNathan Binkert
2009-09-22slicc: Pure python implementation of slicc.Nathan Binkert
This is simply a translation of the C++ slicc into python with very minimal reorganization of the code. The output can be verified as nearly identical by doing a "diff -wBur". Slicc can easily be run manually by using util/slicc
2009-09-22params: small cleanup to param description internalsNathan Binkert
2009-09-22scons: add slicc and ply to sys.path and PYTHONPATH so everyone has accessNathan Binkert
2009-09-22python: Move more code into m5.util allow SCons to use that code.Nathan Binkert
Get rid of misc.py and just stick misc things in __init__.py Move utility functions out of SCons files and into m5.util Move utility type stuff from m5/__init__.py to m5/util/__init__.py Remove buildEnv from m5 and allow access only from m5.defines Rename AddToPath to addToPath while we're moving it to m5.util Rename read_command to readCommand while we're moving it Rename compare_versions to compareVersions while we're moving it. --HG-- rename : src/python/m5/convert.py => src/python/m5/util/convert.py rename : src/python/m5/smartdict.py => src/python/m5/util/smartdict.py
2009-09-22multiattrdict: make multilevel nesting work properlyNathan Binkert
2009-09-22attrdict: add pickle support to attrdictNathan Binkert