Commit Graph

  • 398f6a70a7 merge: style.py fix Nathan Binkert 2007-07-28 21:57:24 -07:00
  • 41a1acd1e9 Work around a mercurial bug in bdiff.blocks Nathan Binkert 2007-07-28 21:56:43 -07:00
  • dc86f3229c 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. Gabe Black 2007-07-28 21:18:53 -07:00
  • fe46e28b14 Merge with head. Gabe Black 2007-07-28 21:04:45 -07:00
  • 4903b549e7 Statetrace: Implement the AMD64 version of TraceChild. Gabe Black 2007-07-28 20:36:35 -07:00
  • fa968da296 Statetrace: Fix indendation. Set the default hostname to "localhost" instead of my machine at UM. Gabe Black 2007-07-28 20:35:33 -07:00
  • 77f712cdb6 Statetrace: Fix compilation problem. Gabe Black 2007-07-28 20:34:17 -07:00
  • e996ff7497 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. Gabe Black 2007-07-28 20:33:42 -07:00
  • 8dd7700482 Turn the instruction tracing code into pluggable sim objects. These need to be refined a little still and given parameters. Gabe Black 2007-07-28 20:30:43 -07:00
  • aaf59949e5 AtomicSimpleCPU: fix inadvertent loss of endian conversion on read. Steve Reinhardt 2007-07-28 18:00:05 -07:00
  • accc0d6972 style: fix whitespace problems Nathan Binkert 2007-07-28 17:18:18 -07:00
  • 5fb52e6e39 merge whitespace fixes Nathan Binkert 2007-07-28 17:17:30 -07:00
  • 1bc36f0787 style: bad whitespace Nathan Binkert 2007-07-28 17:17:04 -07:00
  • 142362b703 merge whitespace changes Nathan Binkert 2007-07-28 17:06:32 -07:00
  • 9aed27efb3 style: fix stupid bugs Nathan Binkert 2007-07-28 16:55:51 -07:00
  • c27e23f2e8 style: Check/Fix whitespace on SCons files Nathan Binkert 2007-07-28 16:49:20 -07:00
  • 8705b0799b packet: get rid of unused intersect() function. Steve Reinhardt 2007-07-27 12:46:55 -07:00
  • 0cbcb715e0 cache/memtest: fixes for functional accesses. Steve Reinhardt 2007-07-27 12:46:45 -07:00
  • 01c9d34a0b cache: Get rid of unused variable. Steve Reinhardt 2007-07-27 03:51:15 -04:00
  • f0fef8f850 Merge python and x86 changes with cache branch Nathan Binkert 2007-07-26 23:15:49 -07:00
  • cda354b070 scons: make things work when EXTRAS is not defined. Nathan Binkert 2007-07-26 22:45:33 -07:00
  • d4e69c006b Merge with head. Gabe Black 2007-07-26 22:13:48 -07:00
  • d1e533a1e2 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. Gabe Black 2007-07-26 22:13:14 -07:00
  • 876849724d X86: Hook in shift and rotate by one instructions, and NOT. Gabe Black 2007-07-26 22:10:59 -07:00
  • edaaf1ebf1 X86: Fix pc relative versions of add and subtract. Gabe Black 2007-07-26 22:10:21 -07:00
  • 647a3270d1 X86: Implement rotate-by-one instructions, and make register rotates use registers. Gabe Black 2007-07-26 22:09:41 -07:00
  • 9e975a7e08 X86: Implement shift-by-one instructions, and make register shifts use registers. Gabe Black 2007-07-26 22:09:24 -07:00
  • c0670187c5 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. Gabe Black 2007-07-26 22:08:35 -07:00
  • 57428b8b0b 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. Gabe Black 2007-07-26 22:06:30 -07:00
  • 749ed15b60 Add functions for mmap and brk. Gabe Black 2007-07-26 22:04:33 -07:00
  • 7d826f632c Implement NOT Gabe Black 2007-07-26 22:03:19 -07:00
  • 6b73ff43ff Have owner respond to UpgradeReq to avoid race. Steve Reinhardt 2007-07-26 17:04:17 -07:00
  • c3bf59dcb9 Add downward express snoops for invalidations. Steve Reinhardt 2007-07-26 17:04:17 -07:00
  • f1b5c8fb57 Continue snooping after a writeback is encountered. Steve Reinhardt 2007-07-26 17:04:16 -07:00
  • 58250b8e5f bus: Fix default port handling. Steve Reinhardt 2007-07-26 17:04:12 -07:00
  • 19c01e82b1 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. Nathan Binkert 2007-07-25 18:21:11 -07:00
  • c1097d06f7 Can't block on memInhibit packets (now that bus no longer filters them for us). Steve Reinhardt 2007-07-25 07:47:37 -07:00
  • de52eebd3b Integrate snoop loop functions into their respective call sites. Also some additional cleanup of Bus::recvTiming(). Steve Reinhardt 2007-07-24 22:37:41 -07:00
  • d094f9cf27 Don't delete request at target... requester still needs it. Steve Reinhardt 2007-07-24 22:36:10 -07:00
  • 26b1c455e0 Merge with head. Gabe Black 2007-07-24 15:48:40 -07:00
  • 02c39000bf Hook in a bunch of new instructions, fix a few minor bugs, and expand out one of the prefix multiplexed opcode groups. Gabe Black 2007-07-24 15:43:38 -07:00
  • 93365f7d1a Add a tgt_iovec structure to support writev, change the name of X86Linux to X86Linux64, add some syscalls. Gabe Black 2007-07-24 15:42:11 -07:00
  • 4bb1c5ba0c 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. Gabe Black 2007-07-24 15:37:16 -07:00
  • 97c4258383 The groups of instructions hanging off opcode 71h, 72h, and 73h all need a byte immediate Gabe Black 2007-07-24 15:19:02 -07:00
  • 69f4a6dc86 Make the shift and rotate microops mask the shift/rotate amount correctly. Gabe Black 2007-07-24 15:10:53 -07:00
  • 15f57bd7cb Fix immediate shifts. Implement register shifts. Gabe Black 2007-07-24 15:10:20 -07:00
  • 66911a1fab Fix immediate rotates and add register ones. Gabe Black 2007-07-24 15:08:56 -07:00
  • d961846e8c Clean out part of an old comment. Gabe Black 2007-07-24 15:08:09 -07:00
  • 340ce8e680 Implement cmov. Gabe Black 2007-07-24 15:07:35 -07:00
  • 28614addff Implement cdqe and cqo, which are also called cbw and cwde, and cwd and cdq respectively, depending on the operand size. Gabe Black 2007-07-24 15:07:03 -07:00
  • f8f7f994b8 Implement setcc. Gabe Black 2007-07-24 15:05:17 -07:00
  • 1cec0a3249 Get rid of an old comment. Gabe Black 2007-07-24 15:04:53 -07:00
  • 7e52393432 Get rid of an old comment Gabe Black 2007-07-24 15:03:43 -07:00
  • 1f9ea6e122 A couple more minor bug fixes for multilevel coherence. Steve Reinhardt 2007-07-23 22:28:40 -07:00
  • abc76f20cb 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. Nathan Binkert 2007-07-23 21:51:38 -07:00
  • 552097b92e Allow the fixwhite stuff to work when committing from a subdir Nathan Binkert 2007-07-23 20:55:57 -07:00
  • ecf2621f4f Implement pusha, popa, three operand imul, hook them into the decoder, and clean up the decoder a little. Gabe Black 2007-07-23 11:20:57 -07:00
  • 97f7ee2e50 Fix WriteReq/StoreCondReq setting in O3. Steve Reinhardt 2007-07-23 08:18:51 -07:00
  • 82e2a35576 Replace lowerMSHRPending flag with more robust scheme based on following Packet senderState links. Steve Reinhardt 2007-07-22 21:43:38 -07:00
  • 85f9415a67 Make the operand size reflect the size specifier on the operand tags, and implement NEG Gabe Black 2007-07-23 01:07:49 +00:00
  • fe442f67ad Merge from head. Steve Reinhardt 2007-07-22 18:02:40 -04:00
  • 089fce4f59 do proper style checks for merged files Nathan Binkert 2007-07-22 13:45:12 -07:00
  • 78759ad176 fix the style fixing thing Nathan Binkert 2007-07-22 09:08:05 -07:00
  • d5c74657c9 Merge more changes in from head. Steve Reinhardt 2007-07-22 08:10:59 -07:00
  • 1c2d5f5e64 Replace DeferredSnoop flag with LowerMSHRPending flag. Turns out DeferredSnoop isn't quite the right bit of info we needed... see new comment in cache_impl.hh. Steve Reinhardt 2007-07-22 08:09:24 -07:00
  • 03730edc45 Merge Gabe's changes with mine. Steve Reinhardt 2007-07-22 10:40:45 -04:00
  • 1edd143b68 A few minor non-debug compilation issues. Steve Reinhardt 2007-07-22 03:07:26 -04:00
  • 2cd454d102 Add the "open" syscall. Gabe Black 2007-07-22 02:43:03 +00:00
  • 47b0242618 Fixed immediate byte accounting bug. Gabe Black 2007-07-22 02:34:52 +00:00
  • bff4f765f5 Fixed displacement size bug. Gabe Black 2007-07-22 02:23:03 +00:00
  • 6a0b712a1e Merge with head. Gabe Black 2007-07-21 22:49:57 -07:00
  • 4b5ba96d38 Add code to turn the style stuff into a mercurial hook. Nag the user during compile if they have an hg cloned copy of M5, have mercurial installed, but don't have the style hook enabled. Nathan Binkert 2007-07-21 22:33:08 -07:00
  • f7ff068b30 Implemented and hooked in xchg, rotate with carry, and ret instructions Gabe Black 2007-07-21 19:29:39 -07:00
  • ee6fbdc28b Implement rotate with carry microops. Gabe Black 2007-07-21 19:27:38 -07:00
  • 92ce2b5974 Deal with invalidations intersecting outstanding upgrades. If the invalidation beats the upgrade at a lower level then the upgrade must be converted to a read exclusive "in the field". Restructure target list & deferred target list to factor out some common code. Steve Reinhardt 2007-07-21 18:18:42 -07:00
  • 9117860094 Several more fixes for multi-level timing coherence. - Add "deferred snoop" flag to Packet so upper-level caches can distinguish whether lower-level cache request was in-service or not at the time of the original snoop. - Revamp response handling to properly handle deferred snoops on non-cache-fill requests (i.e. upgrades). - Make sure forwarded writebacks are kept in write buffer at lower-level caches so they get snooped properly. Steve Reinhardt 2007-07-21 13:45:17 -07:00
  • fc1b7d62b7 Fixed the distinction between far and near versions of jmp, call and ret. Implemented some shifts, rotates, and pushes. Gabe Black 2007-07-20 23:16:03 -07:00
  • 009df5ff1e Fixed line number accounting Gabe Black 2007-07-20 23:12:26 -07:00
  • 75f6c6a016 Implement UD2 and replace the place holder in the decoder. Gabe Black 2007-07-20 18:27:02 -07:00
  • 8dd93f32e4 Make the "name" function const. Gabe Black 2007-07-20 18:24:46 -07:00
  • 9093cb79a1 Implement adc and sbb instructions and microops. Gabe Black 2007-07-20 17:17:11 -07:00
  • c3669b8925 Implement the rest of the conditional jump instructions and hook them into the decoder. Gabe Black 2007-07-20 17:02:39 -07:00
  • 231cc3effb Make the decoder take advantage of the new "B" operand format which takes a register index from the opcode itself. Gabe Black 2007-07-20 16:48:59 -07:00
  • 1ed6a8ed79 Define and fill out a lot of different instructions and instruction versions. Added two of the shift microops. Gabe Black 2007-07-20 16:39:07 -07:00
  • 705a22b999 Hook in newly implemented instructions. Gabe Black 2007-07-20 15:05:37 -07:00
  • dfcb2ffa46 Comment, implement, fix, and trim the move microassembly. Gabe Black 2007-07-20 15:04:41 -07:00
  • fcc23891bb Implement jnbe. Gabe Black 2007-07-20 15:03:36 -07:00
  • 79b3208aa5 Appended _NEAR to the near version of call and return. Gabe Black 2007-07-20 15:03:03 -07:00
  • f09847c7a6 Make load and store ops use the appropriate sized data access. Gabe Black 2007-07-20 15:02:09 -07:00
  • d926de462a Implement the increment and decrement instructions, and the two operand form of signed multiplication. Gabe Black 2007-07-20 14:59:14 -07:00
  • ec5f66190e Fix code that computes displacement size. Gabe Black 2007-07-20 14:57:34 -07:00
  • 5d882984d1 Add a bitfield to decode based on what prefixes are used. Gabe Black 2007-07-20 14:57:04 -07:00
  • dcfaa348b1 Add a parameter type to read a register index from the opcode itself. Gabe Black 2007-07-20 14:55:16 -07:00
  • ee22bcd609 Fix function which calculates the carry flag. Gabe Black 2007-07-20 14:54:17 -07:00
  • 0baae59c09 Fix carry flag for subtracts, and clean up code slightly. Gabe Black 2007-07-20 14:53:38 -07:00
  • 0781609693 Fixed width parameter and provided a parameter to flip the carry bit on subtract. Gabe Black 2007-07-20 14:52:44 -07:00
  • cfadef74d1 x86 fixes Make the emulation environment consider the rex prefix. Implement and hook in forms of j, jmp, cmp, syscall, movzx Added a format for an instruction to carry a call to the SE mode syscalls system Made memory instructions which refer to the rip do so directly Made the operand size overridable in the microassembly Made the "ext" field of register operations 16 bits to hold a sparse encoding of flags to set or conditions to predicate on Added an explicit "rax" operand for the syscall format Implemented syscall returns. Gabe Black 2007-07-19 15:15:47 -07:00
  • 09f056a1ef Check for the two opcode prefix correctly and add in some instructions. Gabe Black 2007-07-18 17:51:05 -07:00
  • f6d326d6fc Hook near returns into the decoder. Gabe Black 2007-07-18 17:48:16 -07:00
  • dbf361128a Implement near returns. Gabe Black 2007-07-18 17:47:40 -07:00