Commit Graph

  • fc6b2cceb4 X86: Make fixed register operands ignore register index extensions from the REX prefix. The only cases where this was the correct behavior are now handled with the "B" operand type, and doing things this way was breaking some instructions, notably a shift. Gabe Black 2007-08-04 20:17:31 -07:00
  • 6f3bb03a3f X86: Implement the cmpxchg instruction. Gabe Black 2007-08-04 20:15:27 -07:00
  • e410a925df X86: Start implementing segmentation support. Make instructions observe segment prefixes, default segment rules, segment base addresses. Also fix some microcode and add sib and riprel "keywords" to the x86 specialization of the microassembler. Gabe Black 2007-08-04 20:12:54 -07:00
  • ced6cbcccf X86: Create a base enum value for indexing into a region of the miscregs. This lets you index into a group of registers without having to know explicitly which one is the lowest in that group. Gabe Black 2007-08-04 20:07:42 -07:00
  • 0e6be2a9b1 X86: Add the arch_prctl system call and fix up some microcoding. The arch_prctl system call is used to set and get the FS and GS segment bases. The FS segment is use for TLS, so glibc needs to be able to set it up. Gabe Black 2007-08-04 20:02:41 -07:00
  • df015f17a4 switching: turn on profiling after a switch if there's an event Nathan Binkert 2007-08-04 16:11:11 -07:00
  • 7a996ccc98 switching: Remove the drain and resume code from the switching code. This allows us to change memory modes as well. Clean up the code while we're at it. Nathan Binkert 2007-08-04 16:09:24 -07:00
  • 5a27431b96 python: use the enum values in the memory mode changing code Nathan Binkert 2007-08-04 16:06:19 -07:00
  • 300712c0d1 swig: %include all of the enums to get all of the definitions. (instead of %import) Nathan Binkert 2007-08-04 16:05:18 -07:00
  • 5364d109d2 merge Nathan Binkert 2007-08-04 16:03:18 -07:00
  • 157bd25802 python: provide access to stats Nathan Binkert 2007-08-04 16:02:04 -07:00
  • d8900d8478 main: return an an exit code of 1 when we exit due to a python exception. This requires us to not use PyRun_SimpleString, but PyRun_String since the latter actually returns a result Nathan Binkert 2007-08-04 16:00:36 -07:00
  • e8e1ddd530 SimpleCPU: Add some DPRINTFs Nathan Binkert 2007-08-04 15:56:48 -07:00
  • c2b533cc3b Add cscope files to .hgignore. Steve Reinhardt 2007-08-03 16:27:51 -07:00
  • bb3f7dc83b tests: new ref outputs for new cache model Steve Reinhardt 2007-08-03 18:04:30 -04:00
  • 851e3c852b tests: replace all dest ref files on upgrade (if possible). Originally we were copying all source files in, but this caused problems when (large) inputs were copied along with outputs. Then we switched to just copying the standard files (m5stats.txt, etc.) but that was missing things like the *.console files. This fix should catch all the non-standard files too as long as they are copied in manually once when the test is set up. Also get a lot nicer about warning when files are ignored, and warn when expected files are missing. Those new Python sets sure are handy. Steve Reinhardt 2007-08-03 18:04:26 -04:00
  • a0bf2535a8 tests: config.out no longer exists, eliminate ref copy. Steve Reinhardt 2007-08-03 18:03:59 -04:00
  • 3afc625975 merge from head Steve Reinhardt 2007-08-03 03:51:30 -04:00
  • 62aa1d7f55 cache: get rid of obsolete params from python. Steve Reinhardt 2007-08-03 03:51:13 -04:00
  • 121a894ce0 Merge with head. Gabe Black 2007-08-02 23:30:25 -07:00
  • 0536d0cde9 python: Improve support for python calling back to C++ member functions. Add support for declaring SimObjects to swig so their members can be wrapped. Make sim_object.i only contain declarations for SimObject. Create system.i to contain declarations for System. Update python code to properly call the C++ given the new changes. Nathan Binkert 2007-08-02 22:50:02 -07:00
  • dc7a38dce7 Merge: No changes Ali Saidi 2007-08-02 22:09:54 -04:00
  • 50bceeae14 Serialize: This shouldn't have been commited, I got a little bit carried away it seems. Ali Saidi 2007-08-02 22:08:33 -04:00
  • f4b89cd897 X86: Get rid of some debug warnings. Get rid of some warnings that were accidentally committed. Gabe Black 2007-08-02 16:28:01 -07:00
  • fa9e4d110a Merge with head. Gabe Black 2007-08-02 15:14:36 -07:00
  • 4af5740afd 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. Gabe Black 2007-08-02 15:12:18 -07:00
  • 85b661e35d X86: Fix special case with SIB index register and REX prefix. Gabe Black 2007-08-02 15:09:12 -07:00
  • 4041e1ddd9 merge: no manual changes Nathan Binkert 2007-08-02 14:19:40 -07:00
  • b367474916 python: fix m5.build_env variable. As it is now, some objects will get the incorrect value depending where they were defined. Nathan Binkert 2007-08-02 14:12:53 -07:00
  • 31a9114a3d merge, no manual changes Ali Saidi 2007-08-02 15:38:06 -04:00
  • dfa147a70a python: need to import objects to make some calls work Nathan Binkert 2007-08-02 12:03:35 -07:00
  • 5682f4f7f9 main: expose the build information as a simple command line parameter Nathan Binkert 2007-08-02 11:59:02 -07:00
  • da5f62af7b Serialization: Provide array serialization methods that work on std::vector Ali Saidi 2007-08-02 14:43:27 -04:00
  • c4e026daf4 Output: Make OutputDirectory::create() be able to create binary files. Ali Saidi 2007-08-02 14:40:56 -04:00
  • acb91c2dfa Linux Support: make sure that when we get the stack page for thread info we're doing a 64bit not Ali Saidi 2007-08-02 14:34:58 -04:00
  • 970261f9ce debugSymbolTable is a global variable and only needs to be created once, not once per system Ali Saidi 2007-08-02 14:32:20 -04:00
  • e719a3e4c0 Fix how the "cmd" parameter is set in se.py and remove hack in x86 process initialization code. Gabe Black 2007-08-01 18:19:23 -07:00
  • f20ba92a76 merge: mips fix to getArgument Nathan Binkert 2007-08-01 16:58:22 -07:00
  • a3e70f4957 mips: make getArgument inline so mips will link properly Nathan Binkert 2007-08-01 16:57:29 -07:00
  • baa1182513 Merge with head. Gabe Black 2007-08-01 16:00:33 -07:00
  • 458dfc8b3e Merge with head. Gabe Black 2007-08-01 15:54:25 -07:00
  • c032a535ab MIPS: Files which are needed for the MIPS fix. Gabe Black 2007-08-01 15:53:39 -07:00
  • a88f01c200 Statetrace: Make sure all the info block strings are printed. Gabe Black 2007-08-01 15:40:41 -07:00
  • 8da3e0548e Merge with head. Gabe Black 2007-08-01 15:12:07 -07:00
  • 456a4570c1 Configuration: Update the drive systems kernel as well as the testsys kernel with cmd line option. Ali Saidi 2007-08-01 17:39:16 -04:00
  • 5b5e2fd6cd X86: Hide the irrelevant portions of the address components for load and store microops. Gabe Black 2007-08-01 14:34:59 -07:00
  • 84cd78e96f Merge Gabe and my changes to arch/mips/utility.hh Ali Saidi 2007-08-01 17:05:03 -04:00
  • fae60c164e 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. Ali Saidi 2007-08-01 16:59:14 -04:00
  • 239d124e83 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. Gabe Black 2007-08-01 13:55:47 -07:00
  • e5e5b0119d X86: Fix for compilation bug with new cache code. Gabe Black 2007-08-01 12:49:58 -07:00
  • 7da3a8e65c Merge with head. Gabe Black 2007-08-01 12:02:59 -07:00
  • c1fa2b156b Fix for new parameter stuff. Gabe Black 2007-08-01 12:02:08 -07:00
  • e42524af02 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. Gabe Black 2007-08-01 12:01:51 -07:00
  • 4b29d22386 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. Gabe Black 2007-08-01 12:00:32 -07:00
  • a4a5e6bc2e Twin64_t is in base/bigint.hh Nathan Binkert 2007-08-01 11:48:32 -07:00
  • 4bdabe1254 Add a flag to indicate an instruction triggers a syscall in SE mode. Gabe Black 2007-07-31 17:34:08 -07:00
  • 55ade789d3 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. Gabe Black 2007-07-31 14:55:06 -07:00
  • c4c8a12186 Merge from head. Steve Reinhardt 2007-07-31 00:37:07 -04:00
  • ae3e1d22fc X86: Add decoding for x87 floating point. Gabe Black 2007-07-30 17:54:01 -07:00
  • 463e8a7516 X86: Attach the "DIV" instruction implementation to the decoder. Gabe Black 2007-07-30 15:44:48 -07:00
  • 595ff465e5 X86: Remove a naming conflict between the register index parameters and the "picked" register values. Gabe Black 2007-07-30 15:44:21 -07:00
  • 77482dc439 X86: __pad0 should be a 4 byte pad, not a 4 long array of 4 byte pads. Gabe Black 2007-07-30 15:43:20 -07:00
  • f02bb63894 X86: Turn on the exit_group, exit, munmap, and write syscalls. Gabe Black 2007-07-30 15:42:42 -07:00
  • 43f0be5253 X86: Use an mmap base address that matches what an actual machine uses. Gabe Black 2007-07-30 15:42:04 -07:00
  • 890e583163 X86: Set up RIP relative LEA instructions operands correctly. Gabe Black 2007-07-30 15:41:08 -07:00
  • 44c3419e1a X86: Implement unsigned divide. The non-byte version ignores rdx which it shouldn't. Gabe Black 2007-07-30 15:40:39 -07:00
  • 74fcf117dd X86: Allow RIP relative decode on -all- memory forms of operands. Gabe Black 2007-07-30 15:39:25 -07:00
  • 65db30992c X86: Take into account the regular registers and the microcode registers when decided whether or not to fold. Gabe Black 2007-07-30 15:38:40 -07:00
  • 9536120845 X86: Fix up the stat structure. This probably still isn't right. Gabe Black 2007-07-30 13:31:59 -07:00
  • a1b193f026 X86: Hook in the new instructions. Gabe Black 2007-07-30 13:31:27 -07:00
  • ab8ba813c9 X86: Turn on some system calls, and make the kernel version match my development machine. Gabe Black 2007-07-30 13:30:41 -07:00
  • 9e2b1f8630 X86: Make sure FP_Base_DepTag is big enough to avoid trouble. Gabe Black 2007-07-30 13:29:56 -07:00
  • 18be07289f X86: Implement a stub CPUID function which is hardcode to return certain values. Gabe Black 2007-07-30 13:29:33 -07:00
  • dbc979b9e2 X86: Force jumps to use 64 bit operand size. Gabe Black 2007-07-30 13:28:31 -07:00
  • bae96272a1 X86: Make instructions use pick, and implement/adjust some multiplication microops and instructions. Gabe Black 2007-07-30 13:28:05 -07:00
  • fad96cd0fc X86: Make merge and pick work with high bytes. Fix a sizing issue in pick. Gabe Black 2007-07-30 13:26:48 -07:00
  • 0d31a41304 X86: Make register names in disassembly reflect high bytes. Gabe Black 2007-07-30 13:26:14 -07:00
  • 31a862b8f1 X86: missed a file which adds a "fold" bit. Gabe Black 2007-07-30 13:25:38 -07:00
  • da84aa95a9 Make the register indices use the appropriate "fold" bit. Gabe Black 2007-07-30 13:25:00 -07:00
  • d8beeff324 X86: Make disassembly use the final register index. Add bits to indicate whether or not register indexes should be "folded". Gabe Black 2007-07-30 13:23:33 -07:00
  • 9b5421dcba X86: Missed a file for adding a bit to indicate that an REX prefix was present. Gabe Black 2007-07-30 13:20:08 -07:00
  • 4b3a20cdec X86: Implement LEAVE Gabe Black 2007-07-30 13:19:11 -07:00
  • e70ffb0117 X86: Add a bitfield to indicate whether or not an REX prefix was present. Gabe Black 2007-07-30 13:17:34 -07:00
  • 24ac08daa4 Fix problem with tracer not being initialized. Gabe Black 2007-07-30 13:13:11 -07:00
  • 2f93db6f95 memory system: fix functional access bug. Make sure not to keep processing functional accesses after they've been responded to. Also use checkFunctional() return value instead of checking packet command field where possible, mostly just for consistency. Steve Reinhardt 2007-07-29 20:17:03 -07:00
  • fa86dcd1a6 Merge with head. Gabe Black 2007-07-29 13:53:39 -07:00
  • 7309d5ee45 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. Gabe Black 2007-07-29 13:51:40 -07:00
  • 1af50a9e8b X86: Make arithmetic instructions set the appropriate flags. Gabe Black 2007-07-29 13:50:10 -07:00
  • 08474ccf68 Merge Gabe's changes from head. Steve Reinhardt 2007-07-29 13:25:14 -07:00
  • 4a7d0c4b79 bus: take out response prioritization (timing was messed up). Also make express snoops not occupy bus (since they're magic). Steve Reinhardt 2007-07-29 13:24:48 -07:00
  • 362ff1bceb 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. Steve Reinhardt 2007-07-29 13:22:44 -07:00
  • b4087e0e44 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. Gabe Black 2007-07-29 12:37:35 -07:00
  • c5c64823fc Merge with head. style.py was also missing an argument in one call to modified_lines. Gabe Black 2007-07-29 01:38:07 -07:00
  • 5e34c62b3b 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. Gabe Black 2007-07-29 01:33:06 -07:00
  • e5f5890365 X86: Make limm use merge and allow overriding the data size. Gabe Black 2007-07-29 01:30:28 -07:00
  • c52e28a4d9 Statetrace: Print the correct address of auxiliary vectors. The address of the stackpointer proceeding the vector minus 8 should be minus 16. Gabe Black 2007-07-29 01:29:53 -07:00
  • b6395da4ce X86: Fix register ordering. The correct order is unintuitively rax, rcx, rdx, rbx, etc, not rax, rbx, rcx, rdx. Gabe Black 2007-07-29 01:28:36 -07:00
  • 33847f8c83 X86: return -return_value.value() on failure. Gabe Black 2007-07-29 01:27:34 -07:00
  • d995575342 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. Gabe Black 2007-07-29 01:26:47 -07:00
  • 3dcd848ec3 X86: Fix a bug with merge Merge was returning the value to merge in, not the actual result of the merge. Gabe Black 2007-07-29 01:24:57 -07:00