gem5.git
17 years agoX86: Finally get the x86 initial stack frame right.
Gabe Black [Thu, 2 Aug 2007 22:12:18 +0000 (15:12 -0700)]
X86: Finally get the x86 initial stack frame right.
After very carefully reading through the Linux source, I'm pretty confident I now know -exactly- how the initial stack frame is constructed, filled, and aligned.

--HG--
extra : convert_revision : 3c654ade7e458bdd5445026860f11175f383a65f

17 years agoX86: Fix special case with SIB index register and REX prefix.
Gabe Black [Thu, 2 Aug 2007 22:09:12 +0000 (15:09 -0700)]
X86: Fix special case with SIB index register and REX prefix.

--HG--
extra : convert_revision : b305708a722f2a08cb55c4548c5616fcbe6c5d68

17 years agoFix how the "cmd" parameter is set in se.py and remove hack in x86 process initializa...
Gabe Black [Thu, 2 Aug 2007 01:19:23 +0000 (18:19 -0700)]
Fix how the "cmd" parameter is set in se.py and remove hack in x86 process initialization code.

--HG--
extra : convert_revision : 1fc741eea956ebfa4cef488eef4333d1f50617a6

17 years agomips: make getArgument inline so mips will link properly
Nathan Binkert [Wed, 1 Aug 2007 23:57:29 +0000 (16:57 -0700)]
mips: make getArgument inline so mips will link properly

--HG--
extra : convert_revision : 7fdbf1f35a5fcbd8704bf02aafcb3ea069626ce3

17 years agoMerge with head.
Gabe Black [Wed, 1 Aug 2007 22:54:25 +0000 (15:54 -0700)]
Merge with head.

--HG--
extra : convert_revision : f677debfd636d79bc5097eb45331601d3253743d

17 years agoMIPS: Files which are needed for the MIPS fix.
Gabe Black [Wed, 1 Aug 2007 22:53:39 +0000 (15:53 -0700)]
MIPS: Files which are needed for the MIPS fix.

--HG--
extra : convert_revision : ae710fa8e4e9f57c19cd7277b1b59efd0af40b6a

17 years agoStatetrace: Make sure all the info block strings are printed.
Gabe Black [Wed, 1 Aug 2007 22:40:41 +0000 (15:40 -0700)]
Statetrace: Make sure all the info block strings are printed.

--HG--
extra : convert_revision : 534b4f5cee3fd1a6d3638d9a910d22ad1aa81fde

17 years agoX86: Hide the irrelevant portions of the address components for load and store microops.
Gabe Black [Wed, 1 Aug 2007 21:34:59 +0000 (14:34 -0700)]
X86: Hide the irrelevant portions of the address components for load and store microops.

--HG--
extra : convert_revision : a5ac6fefa09882f0833537e23f1ac0477bc89bb9

17 years agoMerge Gabe and my changes to arch/mips/utility.hh
Ali Saidi [Wed, 1 Aug 2007 21:05:03 +0000 (17:05 -0400)]
Merge Gabe and my changes to arch/mips/utility.hh

--HG--
extra : convert_revision : d5a9d74ee6edf71524ba5c03fb7f054cf9722213

17 years agoArguments: Get rid of duplicate code for the Arguments class in each architecture.
Ali Saidi [Wed, 1 Aug 2007 20:59:14 +0000 (16:59 -0400)]
Arguments: Get rid of duplicate code for the Arguments class in each architecture.
Move the argument files to src/sim and add a utility.cc file with a function
getArguments() that returns the given argument in the architecture specific fashion.
getArguments() was getArg() is the architecture specific Argument class and has had
all magic numbers replaced with meaningful constants. Also add a function to the
Argument class for testing if an argument is NULL.

--HG--
rename : src/arch/alpha/arguments.cc => src/sim/arguments.cc
rename : src/arch/alpha/arguments.hh => src/sim/arguments.hh
extra : convert_revision : 8b93667bafaa03b52aadb64d669adfe835266b8e

17 years agoMIPS: Cleaned up includes to break loops, and got rid of isa_traits.cc
Gabe Black [Wed, 1 Aug 2007 20:55:47 +0000 (13:55 -0700)]
MIPS: Cleaned up includes to break loops, and got rid of isa_traits.cc
Loops of header files including each other was causing compilation to fail. To fix it, a bunch of unnecessary includes were removed, and the code in isa_traits.cc which brought a bunch of include chains together was broken up and put in proximity to the header files that delcared it.

--HG--
extra : convert_revision : 66ef7762024b72bb91147a5589a0779e279521e0

17 years agoX86: Fix for compilation bug with new cache code.
Gabe Black [Wed, 1 Aug 2007 19:49:58 +0000 (12:49 -0700)]
X86: Fix for compilation bug with new cache code.

--HG--
extra : convert_revision : 073c6db0796cd2c11b8293b382b438a2a959b821

17 years agoMerge with head.
Gabe Black [Wed, 1 Aug 2007 19:02:59 +0000 (12:02 -0700)]
Merge with head.

--HG--
extra : convert_revision : 5bc1133c6c7a575082f060e7787b62d4080f70b0

17 years agoFix for new parameter stuff.
Gabe Black [Wed, 1 Aug 2007 19:02:08 +0000 (12:02 -0700)]
Fix for new parameter stuff.

--HG--
extra : convert_revision : 49d8df7235a02b71db9d309e6b2029587c3d0c8b

17 years agoX86: Reorganize the native tracing code.
Gabe Black [Wed, 1 Aug 2007 19:01:51 +0000 (12:01 -0700)]
X86: Reorganize the native tracing code.
Ignore different values or rcx and r11 after a syscall until either the local or remote value changes. Also change the codes organization somewhat.

--HG--
extra : convert_revision : 2c1f69d4e55b443e68bfc7b43e8387b02cf0b6b5

17 years agoX86: Get rid of initialization of R11
Gabe Black [Wed, 1 Aug 2007 19:00:32 +0000 (12:00 -0700)]
X86: Get rid of initialization of R11
R11 is just junk after the start of exectuion because we're "returning" from
an execve call and linux destroys the contents of rcx and r11 on system calls.

--HG--
extra : convert_revision : 6bf69a50ce56e0355dfdd41524163874340beec0

17 years agoTwin64_t is in base/bigint.hh
Nathan Binkert [Wed, 1 Aug 2007 18:48:32 +0000 (11:48 -0700)]
Twin64_t is in base/bigint.hh

--HG--
extra : convert_revision : 827a89c203235aea08d184cdc720d9c6fb08e4c7

17 years agoAdd a flag to indicate an instruction triggers a syscall in SE mode.
Gabe Black [Wed, 1 Aug 2007 00:34:08 +0000 (17:34 -0700)]
Add a flag to indicate an instruction triggers a syscall in SE mode.

--HG--
extra : convert_revision : 1d0b3afdd8254f5b2fb4bbff1fa4a0536f78bb06

17 years agoX86: Add operand type information to the fnstcw and fldw instruction placeholders.
Gabe Black [Tue, 31 Jul 2007 21:55:06 +0000 (14:55 -0700)]
X86: Add operand type information to the fnstcw and fldw instruction placeholders.
These are the only floating point instructions that get used in my simple hello world test. These instructions are for setting up the floating point control register. Their not being implemented doesn't affect anything because floating point isn't used.

--HG--
extra : convert_revision : 4dfb9ef2a5665f034946c504978029e8799e64cd

17 years agoX86: Add decoding for x87 floating point.
Gabe Black [Tue, 31 Jul 2007 00:54:01 +0000 (17:54 -0700)]
X86: Add decoding for x87 floating point.

--HG--
extra : convert_revision : 08f0f4a3d77a2c5eb9b5ca0cae7d0be9a72febec

17 years agoX86: Attach the "DIV" instruction implementation to the decoder.
Gabe Black [Mon, 30 Jul 2007 22:44:48 +0000 (15:44 -0700)]
X86: Attach the "DIV" instruction implementation to the decoder.

--HG--
extra : convert_revision : 8aef1c8d1ced2db998ed0d31241cadc17e19eadd

17 years agoX86: Remove a naming conflict between the register index parameters and the "picked...
Gabe Black [Mon, 30 Jul 2007 22:44:21 +0000 (15:44 -0700)]
X86: Remove a naming conflict between the register index parameters and the "picked" register values.

--HG--
extra : convert_revision : 7b2c1be509478153ebf396841e4cbeccee3e03d1

17 years agoX86: __pad0 should be a 4 byte pad, not a 4 long array of 4 byte pads.
Gabe Black [Mon, 30 Jul 2007 22:43:20 +0000 (15:43 -0700)]
X86: __pad0 should be a 4 byte pad, not a 4 long array of 4 byte pads.

--HG--
extra : convert_revision : e0d5ab617bc95d5d714fa9fcdf0a448874aef886

17 years agoX86: Turn on the exit_group, exit, munmap, and write syscalls.
Gabe Black [Mon, 30 Jul 2007 22:42:42 +0000 (15:42 -0700)]
X86: Turn on the exit_group, exit, munmap, and write syscalls.

--HG--
extra : convert_revision : e358c18cd999a8e274108e06502c3324c2d12d3b

17 years agoX86: Use an mmap base address that matches what an actual machine uses.
Gabe Black [Mon, 30 Jul 2007 22:42:04 +0000 (15:42 -0700)]
X86: Use an mmap base address that matches what an actual machine uses.

--HG--
extra : convert_revision : 98521797bbc6360301b3c6a6b1b8e28236ef570e

17 years agoX86: Set up RIP relative LEA instructions operands correctly.
Gabe Black [Mon, 30 Jul 2007 22:41:08 +0000 (15:41 -0700)]
X86: Set up RIP relative LEA instructions operands correctly.

--HG--
extra : convert_revision : 820cafadd550487c0d62c5082261b0886fce4f0d

17 years agoX86: Implement unsigned divide. The non-byte version ignores rdx which it shouldn't.
Gabe Black [Mon, 30 Jul 2007 22:40:39 +0000 (15:40 -0700)]
X86: Implement unsigned divide. The non-byte version ignores rdx which it shouldn't.

--HG--
extra : convert_revision : 07e5509fb8ed9d73c144d6f52951ebc02e7c0032

17 years agoX86: Allow RIP relative decode on -all- memory forms of operands.
Gabe Black [Mon, 30 Jul 2007 22:39:25 +0000 (15:39 -0700)]
X86: Allow RIP relative decode on -all- memory forms of operands.

--HG--
extra : convert_revision : 8af62cda2ce1c4acfa26a028a4f7506647bc27f7

17 years agoX86: Take into account the regular registers and the microcode registers when decided...
Gabe Black [Mon, 30 Jul 2007 22:38:40 +0000 (15:38 -0700)]
X86: Take into account the regular registers and the microcode registers when decided whether or not to fold.

--HG--
extra : convert_revision : 26feec984dec61799c4afb03a4503a53c35872c5

17 years agoX86: Fix up the stat structure. This probably still isn't right.
Gabe Black [Mon, 30 Jul 2007 20:31:59 +0000 (13:31 -0700)]
X86: Fix up the stat structure. This probably still isn't right.

--HG--
extra : convert_revision : 2e2a22cdf3abe648c9e1309b9070cfd10fc4a8b8

17 years agoX86: Hook in the new instructions.
Gabe Black [Mon, 30 Jul 2007 20:31:27 +0000 (13:31 -0700)]
X86: Hook in the new instructions.

--HG--
extra : convert_revision : c4233001b35b52161083482841593ec28da6ff7d

17 years agoX86: Turn on some system calls, and make the kernel version match my development...
Gabe Black [Mon, 30 Jul 2007 20:30:41 +0000 (13:30 -0700)]
X86: Turn on some system calls, and make the kernel version match my development machine.

--HG--
extra : convert_revision : 2f1969a45aa82708dc4cddef09c01306f76f0a81

17 years agoX86: Make sure FP_Base_DepTag is big enough to avoid trouble.
Gabe Black [Mon, 30 Jul 2007 20:29:56 +0000 (13:29 -0700)]
X86: Make sure FP_Base_DepTag is big enough to avoid trouble.

--HG--
extra : convert_revision : 7e0a83d5deb7fc9aaa69b7d024ea6ae6890df133

17 years agoX86: Implement a stub CPUID function which is hardcode to return certain values.
Gabe Black [Mon, 30 Jul 2007 20:29:33 +0000 (13:29 -0700)]
X86: Implement a stub CPUID function which is hardcode to return certain values.

--HG--
extra : convert_revision : 4085e04fd13e834646106faa55726d07d9631f42

17 years agoX86: Force jumps to use 64 bit operand size.
Gabe Black [Mon, 30 Jul 2007 20:28:31 +0000 (13:28 -0700)]
X86: Force jumps to use 64 bit operand size.

--HG--
extra : convert_revision : 1c3685e7f4d07d5b4ded6c78b794964f51a358a9

17 years agoX86: Make instructions use pick, and implement/adjust some multiplication microops...
Gabe Black [Mon, 30 Jul 2007 20:28:05 +0000 (13:28 -0700)]
X86: Make instructions use pick, and implement/adjust some multiplication microops and instructions.

--HG--
extra : convert_revision : 5c56f6819ee07d936b388b3d1810a3b73db84f9c

17 years agoX86: Make merge and pick work with high bytes. Fix a sizing issue in pick.
Gabe Black [Mon, 30 Jul 2007 20:26:48 +0000 (13:26 -0700)]
X86: Make merge and pick work with high bytes. Fix a sizing issue in pick.

--HG--
extra : convert_revision : 4ddc2ca8c23bb7e90a646329ebf27a013ac5e3d6

17 years agoX86: Make register names in disassembly reflect high bytes.
Gabe Black [Mon, 30 Jul 2007 20:26:14 +0000 (13:26 -0700)]
X86: Make register names in disassembly reflect high bytes.

--HG--
extra : convert_revision : e2891581e5504de0a2c8e5932fd22425cafd4fc7

17 years agoX86: missed a file which adds a "fold" bit.
Gabe Black [Mon, 30 Jul 2007 20:25:38 +0000 (13:25 -0700)]
X86: missed a file which adds a "fold" bit.

--HG--
extra : convert_revision : 2c8eea425221d069a9bb888c8f18839843061899

17 years agoMake the register indices use the appropriate "fold" bit.
Gabe Black [Mon, 30 Jul 2007 20:25:00 +0000 (13:25 -0700)]
Make the register indices use the appropriate "fold" bit.

--HG--
extra : convert_revision : 89e15e2ef1f709f2c09238b78f94505ce8ef146d

17 years agoX86: Make disassembly use the final register index. Add bits to indicate whether...
Gabe Black [Mon, 30 Jul 2007 20:23:33 +0000 (13:23 -0700)]
X86: Make disassembly use the final register index. Add bits to indicate whether or not register indexes should be "folded".

--HG--
extra : convert_revision : 4b46e71ca91e480f6e1662b7f37b75240d6598e9

17 years agoX86: Missed a file for adding a bit to indicate that an REX prefix was present.
Gabe Black [Mon, 30 Jul 2007 20:20:08 +0000 (13:20 -0700)]
X86: Missed a file for adding a bit to indicate that an REX prefix was present.

--HG--
extra : convert_revision : f1bbd5165a7415d0daf27660575d30c41510f531

17 years agoX86: Implement LEAVE
Gabe Black [Mon, 30 Jul 2007 20:19:11 +0000 (13:19 -0700)]
X86: Implement LEAVE

--HG--
extra : convert_revision : c642d5018ece82c644e1cfa389b2d3dbd6ab5ffd

17 years agoX86: Add a bitfield to indicate whether or not an REX prefix was present.
Gabe Black [Mon, 30 Jul 2007 20:17:34 +0000 (13:17 -0700)]
X86: Add a bitfield to indicate whether or not an REX prefix was present.

--HG--
extra : convert_revision : 9c4802f6c6e4eaab36aac900e2c7576682cb0f33

17 years agoFix problem with tracer not being initialized.
Gabe Black [Mon, 30 Jul 2007 20:13:11 +0000 (13:13 -0700)]
Fix problem with tracer not being initialized.

--HG--
extra : convert_revision : 09610ad84afa605db2d0eab9945eb9809f297182

17 years agoMerge with head.
Gabe Black [Sun, 29 Jul 2007 20:53:39 +0000 (13:53 -0700)]
Merge with head.

--HG--
extra : convert_revision : 1cf4d998699d131c3b20eef67a3c2817af0ce439

17 years agoX86: Make logic instructions flag setting work.
Gabe Black [Sun, 29 Jul 2007 20:51:40 +0000 (13:51 -0700)]
X86: Make logic instructions flag setting work.
The instructions now ask for the appropriate flags to be set, and the microops do the "right thing" with the CF and OF flags, namely zero them.

--HG--
extra : convert_revision : 85138a832f44c879bf8a11bd3a35b58be6272ef3

17 years agoX86: Make arithmetic instructions set the appropriate flags.
Gabe Black [Sun, 29 Jul 2007 20:50:10 +0000 (13:50 -0700)]
X86: Make arithmetic instructions set the appropriate flags.

--HG--
extra : convert_revision : 3bdef3876c7b86bc93365edee876b74a201d625f

17 years agoBsaeCPU: Get rid of some bad DPRINTFs.
Steve Reinhardt [Sun, 29 Jul 2007 20:22:44 +0000 (13:22 -0700)]
BsaeCPU: Get rid of some bad DPRINTFs.
People should never put pointers in DPRINTFs; it messes up
tracediffs.  Plus these used the FullCPU trace flag, which
is not right.

--HG--
extra : convert_revision : 82ed56757da0ad947c165ba205b5f752c85c6667

17 years agoStatetrace: Make statetrace patch amd64 executables for true single stepping after...
Gabe Black [Sun, 29 Jul 2007 19:37:35 +0000 (12:37 -0700)]
Statetrace: Make statetrace patch amd64 executables for true single stepping after system calls.
Because of peculiarities in how system calls are returned from, single stepping executes some system calls and the instruction following them in a single step. Statetrace now patches the executable image when it detects a system call to force "correct" behavior, aka the appearance of stepping one instruction every single time.

--HG--
extra : convert_revision : ac6243a2e00ff98f827b005efd27b4dc5be4f774

17 years agoMerge with head. style.py was also missing an argument in one call to modified_lines.
Gabe Black [Sun, 29 Jul 2007 08:38:07 +0000 (01:38 -0700)]
Merge ... head. style.py was also missing an argument in one call to modified_lines.

--HG--
extra : convert_revision : 0f4e23007399f9d0e2be5310062bd61f5415550d

17 years agoX86: Initial stack frame fixes and constant shuffling.
Gabe Black [Sun, 29 Jul 2007 08:33:06 +0000 (01:33 -0700)]
X86: Initial stack frame fixes and constant shuffling.
The initial stack frame for x86 is now substantially more correct. The fixes made here can be back ported to SPARC and possible the other ISAs as well. The auxiliary vector types were moved to the LiveProcess base class because they are independent of ISA. Some of the types may only apply to Linux, though, so they may have to be moved.

--HG--
extra : convert_revision : 89ace35fcc8eb9586d2fee8eeccbc3686499ef24

17 years agoX86: Make limm use merge and allow overriding the data size.
Gabe Black [Sun, 29 Jul 2007 08:30:28 +0000 (01:30 -0700)]
X86: Make limm use merge and allow overriding the data size.

--HG--
extra : convert_revision : c6057226b8ff8f272612a9d3bf7d1d9ba90c819b

17 years agoStatetrace: Print the correct address of auxiliary vectors.
Gabe Black [Sun, 29 Jul 2007 08:29:53 +0000 (01:29 -0700)]
Statetrace: Print the correct address of auxiliary vectors.
The address of the stackpointer proceeding the vector minus 8 should be minus 16.

--HG--
extra : convert_revision : 648f01e9753e28391fc8d282bd9fe2bd47a0193f

17 years agoX86: Fix register ordering.
Gabe Black [Sun, 29 Jul 2007 08:28:36 +0000 (01:28 -0700)]
X86: Fix register ordering.
The correct order is unintuitively rax, rcx, rdx, rbx, etc, not rax, rbx, rcx, rdx.

--HG--
extra : convert_revision : 3abe6a723a6e30becfe34f8da707ea2ff5d4df77

17 years agoX86: return -return_value.value() on failure.
Gabe Black [Sun, 29 Jul 2007 08:27:34 +0000 (01:27 -0700)]
X86: return -return_value.value() on failure.

--HG--
extra : convert_revision : d8e1486ff075b2917be62a0008f83fd6c9e4c09a

17 years agoX86: Fix popa and push with the stack pointer.
Gabe Black [Sun, 29 Jul 2007 08:26:47 +0000 (01:26 -0700)]
X86: Fix popa and push with the stack pointer.
POPA used st instead of ld, and it didn't skip rsp. push rsp needs to store the -original- value of the stack pointer.

--HG--
extra : convert_revision : 376370c99b6ab60fb2bc4cd4f0a6dce71153ad06

17 years agoX86: Fix a bug with merge
Gabe Black [Sun, 29 Jul 2007 08:24:57 +0000 (01:24 -0700)]
X86: Fix a bug with merge
Merge was returning the value to merge in, not the actual result of the merge.

--HG--
extra : convert_revision : 230b4b5064037d099ae7859edabdf5be84603849

17 years agoWork around a mercurial bug in bdiff.blocks
Nathan Binkert [Sun, 29 Jul 2007 04:56:43 +0000 (21:56 -0700)]
Work around a mercurial bug in bdiff.blocks

--HG--
extra : convert_revision : 597503431883a24f68744bf0dce77356a32d7ff7

17 years agoX86: Fix a comment and adjust the stack base address.
Gabe Black [Sun, 29 Jul 2007 04:18:53 +0000 (21:18 -0700)]
X86: Fix a comment and adjust the stack base address.
The stack base on my development machine starts one page below where it needs to. I don't know why it does, but I've duplicated it in m5.

--HG--
extra : convert_revision : c4783ba885b90f17e843f61e07af0bc3330a74bc

17 years agoMerge with head.
Gabe Black [Sun, 29 Jul 2007 04:04:45 +0000 (21:04 -0700)]
Merge with head.

--HG--
extra : convert_revision : 3c1ff2585c9b20649792344b4180f6d82cef9c1b

17 years agoStatetrace: Implement the AMD64 version of TraceChild.
Gabe Black [Sun, 29 Jul 2007 03:36:35 +0000 (20:36 -0700)]
Statetrace: Implement the AMD64 version of TraceChild.

--HG--
extra : convert_revision : cde33fefe46dc05e9b4ea785a4df6b78ac57ccd5

17 years agoStatetrace: Fix indendation. Set the default hostname to "localhost" instead of my...
Gabe Black [Sun, 29 Jul 2007 03:35:33 +0000 (20:35 -0700)]
Statetrace: Fix indendation. Set the default hostname to "localhost" instead of my machine at UM.

--HG--
extra : convert_revision : f268c04e39fd384e0ac17253faae2233b58e9373

17 years agoStatetrace: Fix compilation problem.
Gabe Black [Sun, 29 Jul 2007 03:34:17 +0000 (20:34 -0700)]
Statetrace: Fix compilation problem.

--HG--
extra : convert_revision : 7f501de99e5389dc3a4172654d7cbe32ed811259

17 years agoX86: Fix up auxiliary vectors.
Gabe Black [Sun, 29 Jul 2007 03:33:42 +0000 (20:33 -0700)]
X86: Fix up auxiliary vectors.
The type constants should go into an architecture independent spot since they are universal to all Linux elf binaries. The right value for some of the vectors needs to be determined. Also, x86 does not store argc or argv_array_base in registers like some other architectures.

--HG--
extra : convert_revision : 8d3f6a3e028d881d3c41e8ddf4f29d25738b529c

17 years agoTurn the instruction tracing code into pluggable sim objects.
Gabe Black [Sun, 29 Jul 2007 03:30:43 +0000 (20:30 -0700)]
Turn the instruction tracing code into pluggable sim objects.
These need to be refined a little still and given parameters.

--HG--
extra : convert_revision : 9a8f5a7bd9dacbebbbd2c235cd890c49a81040d7

17 years agostyle: bad whitespace
Nathan Binkert [Sun, 29 Jul 2007 00:17:04 +0000 (17:17 -0700)]
style: bad whitespace

--HG--
extra : convert_revision : 3af834e0a8c9656e0332960c085d9152dd5c3092

17 years agostyle: fix stupid bugs
Nathan Binkert [Sat, 28 Jul 2007 23:55:51 +0000 (16:55 -0700)]
style: fix stupid bugs

--HG--
extra : convert_revision : ef3dcc3a160eb19a6c4fcdcd411d392aa42e4efe

17 years agostyle: Check/Fix whitespace on SCons files
Nathan Binkert [Sat, 28 Jul 2007 23:49:20 +0000 (16:49 -0700)]
style: Check/Fix whitespace on SCons files

--HG--
extra : convert_revision : 46e6b2dd8e1984cbab0ea24c94760794734c0f95

17 years agoscons: make things work when EXTRAS is not defined.
Nathan Binkert [Fri, 27 Jul 2007 05:45:33 +0000 (22:45 -0700)]
scons: make things work when EXTRAS is not defined.

--HG--
extra : convert_revision : 83562b55ec099e609c64cd42eb47a8481e4e85e7

17 years agoMerge with head.
Gabe Black [Fri, 27 Jul 2007 05:13:48 +0000 (22:13 -0700)]
Merge with head.

--HG--
extra : convert_revision : e4be9d5f2ce8e3252958e2c5e03710b0bf9755c7

17 years agoX86: Fix argument register indexing.
Gabe Black [Fri, 27 Jul 2007 05:13:14 +0000 (22:13 -0700)]
X86: Fix argument register indexing.
Code was assuming that all argument registers followed in order from ArgumentReg0. There is now an ArgumentReg array which is indexed to find the right index. There is a constant, NumArgumentRegs, which can be used to protect against using an invalid ArgumentReg.

--HG--
extra : convert_revision : f448a3ca4d6adc3fc3323562870f70eec05a8a1f

17 years agoX86: Hook in shift and rotate by one instructions, and NOT.
Gabe Black [Fri, 27 Jul 2007 05:10:59 +0000 (22:10 -0700)]
X86: Hook in shift and rotate by one instructions, and NOT.

--HG--
extra : convert_revision : b3ab74e09f5cd02671cc6425c8cb8638bd58cbee

17 years agoX86: Fix pc relative versions of add and subtract.
Gabe Black [Fri, 27 Jul 2007 05:10:21 +0000 (22:10 -0700)]
X86: Fix pc relative versions of add and subtract.

--HG--
extra : convert_revision : c7e578aae8d36aa5d279fc27d6d7d28ed0a54181

17 years agoX86: Implement rotate-by-one instructions, and make register rotates use registers.
Gabe Black [Fri, 27 Jul 2007 05:09:41 +0000 (22:09 -0700)]
X86: Implement rotate-by-one instructions, and make register rotates use registers.

--HG--
extra : convert_revision : 701691951688ecefdc6450d31076b45e9af15324

17 years agoX86: Implement shift-by-one instructions, and make register shifts use registers.
Gabe Black [Fri, 27 Jul 2007 05:09:24 +0000 (22:09 -0700)]
X86: Implement shift-by-one instructions, and make register shifts use registers.

--HG--
extra : convert_revision : ce4af3e56b45821e0a8b27f288b532d2f9dd3336

17 years agoX86: Add functions to read and write to an exec context.
Gabe Black [Fri, 27 Jul 2007 05:08:35 +0000 (22:08 -0700)]
X86: Add functions to read and write to an exec context.
These functions take care of calling the thread contexts read and write functions with the right sized data type, and handle unaligned accesses.

--HG--
extra : convert_revision : b4b59ab2b22559333035185946bae3eab316c879

17 years agoX86: Fix carry calculation for subtraction based microops.
Gabe Black [Fri, 27 Jul 2007 05:06:30 +0000 (22:06 -0700)]
X86: Fix carry calculation for subtraction based microops.
The carry flag should be calculated using the -complement- of the second operand, not it's negation. The carry in which is part of computing the 2's complement may induce a carry, but if you've already caused the carry before you get the carry computing logic involved, it will miss it.

--HG--
extra : convert_revision : 318cf86929664fc52ed9e023606a9e892eba635c

17 years agoAdd functions for mmap and brk.
Gabe Black [Fri, 27 Jul 2007 05:04:33 +0000 (22:04 -0700)]
Add functions for mmap and brk.

--HG--
extra : convert_revision : 3d0340a2aae87b3462d6562b34ac7e02c685c1ef

17 years agoImplement NOT
Gabe Black [Fri, 27 Jul 2007 05:03:19 +0000 (22:03 -0700)]
Implement NOT

--HG--
extra : convert_revision : 09cbed6332224d06644d401f21178eb7914993df

17 years agoAdd a new SCons option called EXTRAS that allows you to include stuff in
Nathan Binkert [Thu, 26 Jul 2007 01:21:11 +0000 (18:21 -0700)]
Add a new SCons option called EXTRAS that allows you to include stuff in
the build process that is outside of the main M5 tree.

--HG--
extra : convert_revision : 6edc4fbc58240f83b59c7b5707c0390cdb85d9ec

17 years agoMerge with head.
Gabe Black [Tue, 24 Jul 2007 22:48:40 +0000 (15:48 -0700)]
Merge with head.

--HG--
extra : convert_revision : 4a34b3f91c4fc90055596245ae3efec45ea33888

17 years agoHook in a bunch of new instructions, fix a few minor bugs, and expand out one of...
Gabe Black [Tue, 24 Jul 2007 22:43:38 +0000 (15:43 -0700)]
Hook in a bunch of new instructions, fix a few minor bugs, and expand out one of the prefix multiplexed opcode groups.

--HG--
extra : convert_revision : b5afd54a180a8fbdf9a892b1a2316fcf0d11afc6

17 years agoAdd a tgt_iovec structure to support writev, change the name of X86Linux to X86Linux6...
Gabe Black [Tue, 24 Jul 2007 22:42:11 +0000 (15:42 -0700)]
Add a tgt_iovec structure to support writev, change the name of X86Linux to X86Linux64, add some syscalls.

--HG--
extra : convert_revision : 9c13e9c68f331fe6c4a9abd96f7aee0f064101fc

17 years agoAdd a special case for "test" which needs an immediate even though everything else...
Gabe Black [Tue, 24 Jul 2007 22:37:16 +0000 (15:37 -0700)]
Add a special case for "test" which needs an immediate even though everything else with it's opcode doesn't.
Also made some spacing consistent.

--HG--
extra : convert_revision : 72a317f29c11705782e19840bef24354214d3143

17 years agoThe groups of instructions hanging off opcode 71h, 72h, and 73h all need a byte immediate
Gabe Black [Tue, 24 Jul 2007 22:19:02 +0000 (15:19 -0700)]
The groups of instructions hanging off opcode 71h, 72h, and 73h all need a byte immediate

--HG--
extra : convert_revision : 9559047adfec1490c2d40065442a579549624fcc

17 years agoMake the shift and rotate microops mask the shift/rotate amount correctly.
Gabe Black [Tue, 24 Jul 2007 22:10:53 +0000 (15:10 -0700)]
Make the shift and rotate microops mask the shift/rotate amount correctly.

--HG--
extra : convert_revision : 31c5d3fa8ef0d37494d0e35cef31be6056d5d93f

17 years agoFix immediate shifts. Implement register shifts.
Gabe Black [Tue, 24 Jul 2007 22:10:20 +0000 (15:10 -0700)]
Fix immediate shifts. Implement register shifts.

--HG--
extra : convert_revision : 0b83422ad3c190021e46cada07e64d8d57d29859

17 years agoFix immediate rotates and add register ones.
Gabe Black [Tue, 24 Jul 2007 22:08:56 +0000 (15:08 -0700)]
Fix immediate rotates and add register ones.

--HG--
extra : convert_revision : a6b9cee59019ea0f906c8a8e76eeb2cd73093671

17 years agoClean out part of an old comment.
Gabe Black [Tue, 24 Jul 2007 22:08:09 +0000 (15:08 -0700)]
Clean out part of an old comment.

--HG--
extra : convert_revision : 6a6b2a06576ebe7383f7ce0e4e9f96bc96b84b56

17 years agoImplement cmov.
Gabe Black [Tue, 24 Jul 2007 22:07:35 +0000 (15:07 -0700)]
Implement cmov.

--HG--
extra : convert_revision : 2e92623b53c1fe8b4da3fef3486c0dcd8d5ef9f5

17 years agoImplement cdqe and cqo, which are also called cbw and cwde, and cwd and cdq respectiv...
Gabe Black [Tue, 24 Jul 2007 22:07:03 +0000 (15:07 -0700)]
Implement cdqe and cqo, which are also called cbw and cwde, and cwd and cdq respectively, depending on the operand size.

--HG--
extra : convert_revision : 67ac035c68608d7260c21ce32009b344f3834e46

17 years agoImplement setcc.
Gabe Black [Tue, 24 Jul 2007 22:05:17 +0000 (15:05 -0700)]
Implement setcc.

--HG--
extra : convert_revision : 7a47b9971fe9e4ac638b275fb56fdcba08c2d671

17 years agoGet rid of an old comment.
Gabe Black [Tue, 24 Jul 2007 22:04:53 +0000 (15:04 -0700)]
Get rid of an old comment.

--HG--
extra : convert_revision : 1b86a7f60489bc65a03919b27afd4dfbe4e09bba

17 years agoGet rid of an old comment
Gabe Black [Tue, 24 Jul 2007 22:03:43 +0000 (15:03 -0700)]
Get rid of an old comment

--HG--
extra : convert_revision : 4d626721ad54af9cbf5b0c07a3a6e8a05e4e9ab5

17 years agoMajor changes to how SimObjects are created and initialized. Almost all
Nathan Binkert [Tue, 24 Jul 2007 04:51:38 +0000 (21:51 -0700)]
Major changes to how SimObjects are created and initialized.  Almost all
creation and initialization now happens in python.  Parameter objects
are generated and initialized by python.  The .ini file is now solely for
debugging purposes and is not used in construction of the objects in any
way.

--HG--
extra : convert_revision : 7e722873e417cb3d696f2e34c35ff488b7bff4ed

17 years agoAllow the fixwhite stuff to work when committing from a subdir
Nathan Binkert [Tue, 24 Jul 2007 03:55:57 +0000 (20:55 -0700)]
Allow the fixwhite stuff to work when committing from a subdir

--HG--
extra : convert_revision : 10e6ecc60bb8ee4e4a6f06f8c56550299c262c91

17 years agoImplement pusha, popa, three operand imul, hook them into the decoder, and clean...
Gabe Black [Mon, 23 Jul 2007 18:20:57 +0000 (11:20 -0700)]
Implement pusha, popa, three operand imul, hook them into the decoder, and clean up the decoder a little.

--HG--
extra : convert_revision : c1b8f0f433f629e4104e2b04addcdaabf57595e3

17 years agoMake the operand size reflect the size specifier on the operand tags, and implement NEG
Gabe Black [Mon, 23 Jul 2007 01:07:49 +0000 (01:07 +0000)]
Make the operand size reflect the size specifier on the operand tags, and implement NEG

--HG--
extra : convert_revision : da73ed6820d57f083c18f44b2fa868fc0976dd16

17 years agodo proper style checks for merged files
Nathan Binkert [Sun, 22 Jul 2007 20:45:12 +0000 (13:45 -0700)]
do proper style checks for merged files

--HG--
extra : convert_revision : f9d4c61ded4b13655dbe86f0bb6a0b3beaf45151