Age | Commit message (Collapse) | Author |
|
--HG--
extra : convert_revision : f1bbd5165a7415d0daf27660575d30c41510f531
|
|
--HG--
extra : convert_revision : c642d5018ece82c644e1cfa389b2d3dbd6ab5ffd
|
|
--HG--
extra : convert_revision : 9c4802f6c6e4eaab36aac900e2c7576682cb0f33
|
|
--HG--
extra : convert_revision : 09610ad84afa605db2d0eab9945eb9809f297182
|
|
--HG--
extra : convert_revision : 1cf4d998699d131c3b20eef67a3c2817af0ce439
|
|
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
|
|
--HG--
extra : convert_revision : 3bdef3876c7b86bc93365edee876b74a201d625f
|
|
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
|
|
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
|
|
modified_lines.
--HG--
extra : convert_revision : 0f4e23007399f9d0e2be5310062bd61f5415550d
|
|
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
|
|
--HG--
extra : convert_revision : c6057226b8ff8f272612a9d3bf7d1d9ba90c819b
|
|
The address of the stackpointer proceeding the vector minus 8 should be minus 16.
--HG--
extra : convert_revision : 648f01e9753e28391fc8d282bd9fe2bd47a0193f
|
|
The correct order is unintuitively rax, rcx, rdx, rbx, etc, not rax, rbx, rcx, rdx.
--HG--
extra : convert_revision : 3abe6a723a6e30becfe34f8da707ea2ff5d4df77
|
|
--HG--
extra : convert_revision : d8e1486ff075b2917be62a0008f83fd6c9e4c09a
|
|
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
|
|
Merge was returning the value to merge in, not the actual result of the merge.
--HG--
extra : convert_revision : 230b4b5064037d099ae7859edabdf5be84603849
|
|
--HG--
extra : convert_revision : 597503431883a24f68744bf0dce77356a32d7ff7
|
|
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
|
|
--HG--
extra : convert_revision : 3c1ff2585c9b20649792344b4180f6d82cef9c1b
|
|
--HG--
extra : convert_revision : cde33fefe46dc05e9b4ea785a4df6b78ac57ccd5
|
|
of my machine at UM.
--HG--
extra : convert_revision : f268c04e39fd384e0ac17253faae2233b58e9373
|
|
--HG--
extra : convert_revision : 7f501de99e5389dc3a4172654d7cbe32ed811259
|
|
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
|
|
These need to be refined a little still and given parameters.
--HG--
extra : convert_revision : 9a8f5a7bd9dacbebbbd2c235cd890c49a81040d7
|
|
--HG--
extra : convert_revision : 3af834e0a8c9656e0332960c085d9152dd5c3092
|
|
--HG--
extra : convert_revision : ef3dcc3a160eb19a6c4fcdcd411d392aa42e4efe
|
|
--HG--
extra : convert_revision : 46e6b2dd8e1984cbab0ea24c94760794734c0f95
|
|
--HG--
extra : convert_revision : 83562b55ec099e609c64cd42eb47a8481e4e85e7
|
|
--HG--
extra : convert_revision : e4be9d5f2ce8e3252958e2c5e03710b0bf9755c7
|
|
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
|
|
--HG--
extra : convert_revision : b3ab74e09f5cd02671cc6425c8cb8638bd58cbee
|
|
--HG--
extra : convert_revision : c7e578aae8d36aa5d279fc27d6d7d28ed0a54181
|
|
registers.
--HG--
extra : convert_revision : 701691951688ecefdc6450d31076b45e9af15324
|
|
registers.
--HG--
extra : convert_revision : ce4af3e56b45821e0a8b27f288b532d2f9dd3336
|
|
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
|
|
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
|
|
--HG--
extra : convert_revision : 3d0340a2aae87b3462d6562b34ac7e02c685c1ef
|
|
--HG--
extra : convert_revision : 09cbed6332224d06644d401f21178eb7914993df
|
|
the build process that is outside of the main M5 tree.
--HG--
extra : convert_revision : 6edc4fbc58240f83b59c7b5707c0390cdb85d9ec
|
|
--HG--
extra : convert_revision : 4a34b3f91c4fc90055596245ae3efec45ea33888
|
|
one of the prefix multiplexed opcode groups.
--HG--
extra : convert_revision : b5afd54a180a8fbdf9a892b1a2316fcf0d11afc6
|
|
X86Linux64, add some syscalls.
--HG--
extra : convert_revision : 9c13e9c68f331fe6c4a9abd96f7aee0f064101fc
|
|
everything else with it's opcode doesn't.
Also made some spacing consistent.
--HG--
extra : convert_revision : 72a317f29c11705782e19840bef24354214d3143
|
|
byte immediate
--HG--
extra : convert_revision : 9559047adfec1490c2d40065442a579549624fcc
|
|
--HG--
extra : convert_revision : 31c5d3fa8ef0d37494d0e35cef31be6056d5d93f
|
|
--HG--
extra : convert_revision : 0b83422ad3c190021e46cada07e64d8d57d29859
|
|
--HG--
extra : convert_revision : a6b9cee59019ea0f906c8a8e76eeb2cd73093671
|
|
--HG--
extra : convert_revision : 6a6b2a06576ebe7383f7ce0e4e9f96bc96b84b56
|
|
--HG--
extra : convert_revision : 2e92623b53c1fe8b4da3fef3486c0dcd8d5ef9f5
|