summaryrefslogtreecommitdiff
path: root/src/arch
AgeCommit message (Collapse)Author
2007-08-02Merge with head.Gabe Black
--HG-- extra : convert_revision : 7700f475caa676948175cdf126ee018b0c4ad35c
2007-08-02X86: Finally get the x86 initial stack frame right.Gabe Black
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
2007-08-02X86: Fix special case with SIB index register and REX prefix.Gabe Black
--HG-- extra : convert_revision : b305708a722f2a08cb55c4548c5616fcbe6c5d68
2007-08-02merge, no manual changesAli Saidi
--HG-- extra : convert_revision : 8504bddf1f73a4186cebc03c3e52e42ea38361fc
2007-08-02Linux Support: make sure that when we get the stack page for thread info ↵Ali Saidi
we're doing a 64bit not --HG-- extra : convert_revision : c581921dd601fc72fd2d45b961c7440755b0331c
2007-08-01Fix how the "cmd" parameter is set in se.py and remove hack in x86 process ↵Gabe Black
initialization code. --HG-- extra : convert_revision : 1fc741eea956ebfa4cef488eef4333d1f50617a6
2007-08-01mips: make getArgument inline so mips will link properlyNathan Binkert
--HG-- extra : convert_revision : 7fdbf1f35a5fcbd8704bf02aafcb3ea069626ce3
2007-08-01Merge with head.Gabe Black
--HG-- extra : convert_revision : f677debfd636d79bc5097eb45331601d3253743d
2007-08-01MIPS: Files which are needed for the MIPS fix.Gabe Black
--HG-- extra : convert_revision : ae710fa8e4e9f57c19cd7277b1b59efd0af40b6a
2007-08-01X86: Hide the irrelevant portions of the address components for load and ↵Gabe Black
store microops. --HG-- extra : convert_revision : a5ac6fefa09882f0833537e23f1ac0477bc89bb9
2007-08-01Merge Gabe and my changes to arch/mips/utility.hhAli Saidi
--HG-- extra : convert_revision : d5a9d74ee6edf71524ba5c03fb7f054cf9722213
2007-08-01Arguments: Get rid of duplicate code for the Arguments class in each ↵Ali Saidi
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
2007-08-01MIPS: Cleaned up includes to break loops, and got rid of isa_traits.ccGabe Black
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
2007-08-01X86: Fix for compilation bug with new cache code.Gabe Black
--HG-- extra : convert_revision : 073c6db0796cd2c11b8293b382b438a2a959b821
2007-08-01X86: Get rid of initialization of R11Gabe Black
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
2007-07-31Add a flag to indicate an instruction triggers a syscall in SE mode.Gabe Black
--HG-- extra : convert_revision : 1d0b3afdd8254f5b2fb4bbff1fa4a0536f78bb06
2007-07-31X86: Add operand type information to the fnstcw and fldw instruction ↵Gabe Black
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
2007-07-30X86: Add decoding for x87 floating point.Gabe Black
--HG-- extra : convert_revision : 08f0f4a3d77a2c5eb9b5ca0cae7d0be9a72febec
2007-07-30X86: Attach the "DIV" instruction implementation to the decoder.Gabe Black
--HG-- extra : convert_revision : 8aef1c8d1ced2db998ed0d31241cadc17e19eadd
2007-07-30X86: Remove a naming conflict between the register index parameters and the ↵Gabe Black
"picked" register values. --HG-- extra : convert_revision : 7b2c1be509478153ebf396841e4cbeccee3e03d1
2007-07-30X86: __pad0 should be a 4 byte pad, not a 4 long array of 4 byte pads.Gabe Black
--HG-- extra : convert_revision : e0d5ab617bc95d5d714fa9fcdf0a448874aef886
2007-07-30X86: Turn on the exit_group, exit, munmap, and write syscalls.Gabe Black
--HG-- extra : convert_revision : e358c18cd999a8e274108e06502c3324c2d12d3b
2007-07-30X86: Use an mmap base address that matches what an actual machine uses.Gabe Black
--HG-- extra : convert_revision : 98521797bbc6360301b3c6a6b1b8e28236ef570e
2007-07-30X86: Set up RIP relative LEA instructions operands correctly.Gabe Black
--HG-- extra : convert_revision : 820cafadd550487c0d62c5082261b0886fce4f0d
2007-07-30X86: Implement unsigned divide. The non-byte version ignores rdx which it ↵Gabe Black
shouldn't. --HG-- extra : convert_revision : 07e5509fb8ed9d73c144d6f52951ebc02e7c0032
2007-07-30X86: Allow RIP relative decode on -all- memory forms of operands.Gabe Black
--HG-- extra : convert_revision : 8af62cda2ce1c4acfa26a028a4f7506647bc27f7
2007-07-30X86: Take into account the regular registers and the microcode registers ↵Gabe Black
when decided whether or not to fold. --HG-- extra : convert_revision : 26feec984dec61799c4afb03a4503a53c35872c5
2007-07-30X86: Fix up the stat structure. This probably still isn't right.Gabe Black
--HG-- extra : convert_revision : 2e2a22cdf3abe648c9e1309b9070cfd10fc4a8b8
2007-07-30X86: Hook in the new instructions.Gabe Black
--HG-- extra : convert_revision : c4233001b35b52161083482841593ec28da6ff7d
2007-07-30X86: Turn on some system calls, and make the kernel version match my ↵Gabe Black
development machine. --HG-- extra : convert_revision : 2f1969a45aa82708dc4cddef09c01306f76f0a81
2007-07-30X86: Make sure FP_Base_DepTag is big enough to avoid trouble.Gabe Black
--HG-- extra : convert_revision : 7e0a83d5deb7fc9aaa69b7d024ea6ae6890df133
2007-07-30X86: Implement a stub CPUID function which is hardcode to return certain values.Gabe Black
--HG-- extra : convert_revision : 4085e04fd13e834646106faa55726d07d9631f42
2007-07-30X86: Force jumps to use 64 bit operand size.Gabe Black
--HG-- extra : convert_revision : 1c3685e7f4d07d5b4ded6c78b794964f51a358a9
2007-07-30X86: Make instructions use pick, and implement/adjust some multiplication ↵Gabe Black
microops and instructions. --HG-- extra : convert_revision : 5c56f6819ee07d936b388b3d1810a3b73db84f9c
2007-07-30X86: Make merge and pick work with high bytes. Fix a sizing issue in pick.Gabe Black
--HG-- extra : convert_revision : 4ddc2ca8c23bb7e90a646329ebf27a013ac5e3d6
2007-07-30X86: Make register names in disassembly reflect high bytes.Gabe Black
--HG-- extra : convert_revision : e2891581e5504de0a2c8e5932fd22425cafd4fc7
2007-07-30X86: missed a file which adds a "fold" bit.Gabe Black
--HG-- extra : convert_revision : 2c8eea425221d069a9bb888c8f18839843061899
2007-07-30Make the register indices use the appropriate "fold" bit.Gabe Black
--HG-- extra : convert_revision : 89e15e2ef1f709f2c09238b78f94505ce8ef146d
2007-07-30X86: Make disassembly use the final register index. Add bits to indicate ↵Gabe Black
whether or not register indexes should be "folded". --HG-- extra : convert_revision : 4b46e71ca91e480f6e1662b7f37b75240d6598e9
2007-07-30X86: Missed a file for adding a bit to indicate that an REX prefix was present.Gabe Black
--HG-- extra : convert_revision : f1bbd5165a7415d0daf27660575d30c41510f531
2007-07-30X86: Implement LEAVEGabe Black
--HG-- extra : convert_revision : c642d5018ece82c644e1cfa389b2d3dbd6ab5ffd
2007-07-30X86: Add a bitfield to indicate whether or not an REX prefix was present.Gabe Black
--HG-- extra : convert_revision : 9c4802f6c6e4eaab36aac900e2c7576682cb0f33
2007-07-29X86: Make logic instructions flag setting work.Gabe Black
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
2007-07-29X86: Make arithmetic instructions set the appropriate flags.Gabe Black
--HG-- extra : convert_revision : 3bdef3876c7b86bc93365edee876b74a201d625f
2007-07-29X86: Initial stack frame fixes and constant shuffling.Gabe Black
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
2007-07-29X86: Make limm use merge and allow overriding the data size.Gabe Black
--HG-- extra : convert_revision : c6057226b8ff8f272612a9d3bf7d1d9ba90c819b
2007-07-29X86: return -return_value.value() on failure.Gabe Black
--HG-- extra : convert_revision : d8e1486ff075b2917be62a0008f83fd6c9e4c09a
2007-07-29X86: Fix popa and push with the stack pointer.Gabe Black
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
2007-07-29X86: Fix a bug with mergeGabe Black
Merge was returning the value to merge in, not the actual result of the merge. --HG-- extra : convert_revision : 230b4b5064037d099ae7859edabdf5be84603849
2007-07-28X86: Fix a comment and adjust the stack base address.Gabe Black
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