summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-11-08X86: Don't panic on faults on prefetches in SE mode.Gabe Black
2009-11-08X86: Explain what really didn't work with unmapped addresses in SE mode.Gabe Black
2009-11-08X86: Make x86 use PREFETCH instead of PF_EXCLUSIVE.Gabe Black
2009-11-08automergeNathan Binkert
2009-11-08scons: deal with generated .py files properlySteve Reinhardt
2009-11-08ARM: Support forcing load/store multiple to use user registers.Gabe Black
2009-11-08ARM: Simplify the load/store multiple generation code.Gabe Black
Specifically, get rid of the big switch statement so more cases can be handled. Enumerating all the possible settings doesn't scale well. Also do some minor style clean up.
2009-11-08compile: wrap 64bit numbers with ULL() so 32bit compiles workNathan Binkert
In the isa_parser, we need to check case statements.
2009-11-08ARM: Split the condition codes out of the CPSR.Gabe Black
This allows those bits to be renamed while allowing the other fields to control the behavior of the processor.
2009-11-08ARM: Add in more bits for the mon mode.Gabe Black
2009-11-08ARM: Get rid of NumInternalProcRegs.Gabe Black
That constant is a carry over from Alpha and doesn't do anything in ARM.
2009-11-08ARM: Add back in spots for Rhi and Rlo, and use a named constant for LR.Gabe Black
2009-11-08ARM: Get rid of the Raddr operand.Gabe Black
2009-11-08ARM: Initialize processes in user mode.Gabe Black
I accidentally left in a change to test using int registers in system mode. This change reverts that.
2009-11-08ARM: Implement the shadow registers using register flattening.Gabe Black
2009-11-08ARM: Set up an intregs.hh for ARM.Gabe Black
Add constants for all the modes and registers, maps for aliasing, functions that use the maps and range check, and use a named constant instead of a magic number for the microcode register.
2009-11-07ARM: Get rid of some unneeded register indexes.Gabe Black
2009-11-04X86: Fix problem with movhps instructionVince Weaver
This problem is like the one fixed with movhpd a few weeks ago. A +8 displacement is used to access memory when there should be none. This fix is needed for the perlbmk spec2k benchmark to run.
2009-11-05slicc: tweak file enumeration for sconsSteve Reinhardt
Right now .cc and .hh files are handled separately, but then they're just munged together at the end by scons, so it doesn't buy us anything. Might as well munge from the start since we'll eventually be adding generated Python files to the list too.
2009-11-05slicc: whack some of Nate's leftover debug codeSteve Reinhardt
2009-11-04build: fix compile problems pointed out by gcc 4.4Nathan Binkert
2009-11-04o3: get rid of unused physmem pointerSteve Reinhardt
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