gem5.git
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 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

17 years agofix the style fixing thing
Nathan Binkert [Sun, 22 Jul 2007 16:08:05 +0000 (09:08 -0700)]
fix the style fixing thing

--HG--
extra : convert_revision : 65ffc14e7b78b49df9a67ef0d3521551dd44d1cd

17 years agoMerge Gabe's changes with mine.
Steve Reinhardt [Sun, 22 Jul 2007 14:40:45 +0000 (10:40 -0400)]
Merge Gabe's changes with mine.

--HG--
extra : convert_revision : f50ed42e7acb3f11e610fd6976eaa8df0c6ba2ab

17 years agoAdd the "open" syscall.
Gabe Black [Sun, 22 Jul 2007 02:43:03 +0000 (02:43 +0000)]
Add the "open" syscall.

--HG--
extra : convert_revision : d405ed5d3738639809dd2887955db9253138ccbb

17 years agoFixed immediate byte accounting bug.
Gabe Black [Sun, 22 Jul 2007 02:34:52 +0000 (02:34 +0000)]
Fixed immediate byte accounting bug.

--HG--
extra : convert_revision : ee5275da14a2923b9a525ae5b5c582c15df4608a

17 years agoFixed displacement size bug.
Gabe Black [Sun, 22 Jul 2007 02:23:03 +0000 (02:23 +0000)]
Fixed displacement size bug.

--HG--
extra : convert_revision : c39249ef598c1bd555098d688381dc62541a07c0

17 years agoMerge with head.
Gabe Black [Sun, 22 Jul 2007 05:49:57 +0000 (22:49 -0700)]
Merge with head.

--HG--
extra : convert_revision : 9b82ba062a14032ef24b960b92d48de754463284

17 years agoAdd code to turn the style stuff into a mercurial hook.
Nathan Binkert [Sun, 22 Jul 2007 05:33:08 +0000 (22:33 -0700)]
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.

--HG--
extra : convert_revision : 6bcbb67f1a3fcd36db7d3ef16a9ff19680f126f2

17 years agoImplemented and hooked in xchg, rotate with carry, and ret instructions
Gabe Black [Sun, 22 Jul 2007 02:29:39 +0000 (19:29 -0700)]
Implemented and hooked in xchg, rotate with carry, and ret instructions

--HG--
extra : convert_revision : a8e67b0ab4072308f01e0df7f7ee05b31f605a35

17 years agoImplement rotate with carry microops.
Gabe Black [Sun, 22 Jul 2007 02:27:38 +0000 (19:27 -0700)]
Implement rotate with carry microops.

--HG--
extra : convert_revision : 1d7ff6611e5b4766a5257c1e73681fabbe5f6d76

17 years agoFixed the distinction between far and near versions of jmp, call and ret. Implemented...
Gabe Black [Sat, 21 Jul 2007 06:16:03 +0000 (23:16 -0700)]
Fixed the distinction between far and near versions of jmp, call and ret. Implemented some shifts, rotates, and pushes.

--HG--
extra : convert_revision : fcb06189ff213e82da16ac43231feb308cb3a285

17 years agoFixed line number accounting
Gabe Black [Sat, 21 Jul 2007 06:12:26 +0000 (23:12 -0700)]
Fixed line number accounting

--HG--
extra : convert_revision : 4c046493b98ce4a766c2121710d70650cb6a801e

17 years agoImplement UD2 and replace the place holder in the decoder.
Gabe Black [Sat, 21 Jul 2007 01:27:02 +0000 (18:27 -0700)]
Implement UD2 and replace the place holder in the decoder.

--HG--
extra : convert_revision : 16d0d2b2ddad8759698fa4aa668c22063307c72b

17 years agoMake the "name" function const.
Gabe Black [Sat, 21 Jul 2007 01:24:46 +0000 (18:24 -0700)]
Make the "name" function const.

--HG--
extra : convert_revision : eb71bc3edd92a544a5333786635fce550aaef233

17 years agoImplement adc and sbb instructions and microops.
Gabe Black [Sat, 21 Jul 2007 00:17:11 +0000 (17:17 -0700)]
Implement adc and sbb instructions and microops.

--HG--
extra : convert_revision : a2d3068c5b487f4fa7bf5c9cebba7753bc390bfa

17 years agoImplement the rest of the conditional jump instructions and hook them into the decoder.
Gabe Black [Sat, 21 Jul 2007 00:02:39 +0000 (17:02 -0700)]
Implement the rest of the conditional jump instructions and hook them into the decoder.

--HG--
extra : convert_revision : 8d1d6abce29371def560e1c3f31dabb4de01366f

17 years agoMake the decoder take advantage of the new "B" operand format which takes a register...
Gabe Black [Fri, 20 Jul 2007 23:48:59 +0000 (16:48 -0700)]
Make the decoder take advantage of the new "B" operand format which takes a register index from the opcode itself.

--HG--
extra : convert_revision : 35f9be6559ee9833049eda1817982efdde7082be

17 years agoDefine and fill out a lot of different instructions and instruction versions. Added...
Gabe Black [Fri, 20 Jul 2007 23:39:07 +0000 (16:39 -0700)]
Define and fill out a lot of different instructions and instruction versions. Added two of the shift microops.

--HG--
extra : convert_revision : 0b76953dbb1dc3366242d4d209cccebde86bbe4e

17 years agoHook in newly implemented instructions.
Gabe Black [Fri, 20 Jul 2007 22:05:37 +0000 (15:05 -0700)]
Hook in newly implemented instructions.

--HG--
extra : convert_revision : 53319d2363211af407dabaa2b63ad8a4df09c369

17 years agoComment, implement, fix, and trim the move microassembly.
Gabe Black [Fri, 20 Jul 2007 22:04:41 +0000 (15:04 -0700)]
Comment, implement, fix, and trim the move microassembly.

--HG--
extra : convert_revision : aa5ee7270e740bfbe42e70c4dfccc4c91ecacb33

17 years agoImplement jnbe.
Gabe Black [Fri, 20 Jul 2007 22:03:36 +0000 (15:03 -0700)]
Implement jnbe.

--HG--
extra : convert_revision : cdbf1ff5ed3a63787cbd2187a8a3455a41cc5085

17 years agoAppended _NEAR to the near version of call and return.
Gabe Black [Fri, 20 Jul 2007 22:03:03 +0000 (15:03 -0700)]
Appended _NEAR to the near version of call and return.

--HG--
extra : convert_revision : 70adb38d59ff7b5d103e58a9f0773dfb911fec6d

17 years agoMake load and store ops use the appropriate sized data access.
Gabe Black [Fri, 20 Jul 2007 22:02:09 +0000 (15:02 -0700)]
Make load and store ops use the appropriate sized data access.

--HG--
extra : convert_revision : 6b808586fab10ca433ef04b062bf701b906634b9

17 years agoImplement the increment and decrement instructions, and the two operand form of signe...
Gabe Black [Fri, 20 Jul 2007 21:59:14 +0000 (14:59 -0700)]
Implement the increment and decrement instructions, and the two operand form of signed multiplication.

--HG--
extra : convert_revision : d87df4b1b5470bed1d963dfe8e2ffa1403718342

17 years agoFix code that computes displacement size.
Gabe Black [Fri, 20 Jul 2007 21:57:34 +0000 (14:57 -0700)]
Fix code that computes displacement size.

--HG--
extra : convert_revision : a9be3eb2b90b88086936aeb4dcf87ec7b58a48cb

17 years agoAdd a bitfield to decode based on what prefixes are used.
Gabe Black [Fri, 20 Jul 2007 21:57:04 +0000 (14:57 -0700)]
Add a bitfield to decode based on what prefixes are used.

--HG--
extra : convert_revision : 7ff4998b3249ccfe86ae9cbcc63fb910683707f5

17 years agoAdd a parameter type to read a register index from the opcode itself.
Gabe Black [Fri, 20 Jul 2007 21:55:16 +0000 (14:55 -0700)]
Add a parameter type to read a register index from the opcode itself.

--HG--
extra : convert_revision : d2b5468ebf5df5a6ccadb57a30c52c8d16417b9a

17 years agoFix function which calculates the carry flag.
Gabe Black [Fri, 20 Jul 2007 21:54:17 +0000 (14:54 -0700)]
Fix function which calculates the carry flag.

--HG--
extra : convert_revision : aeb4f2d4c3936089421dbe80647f28ae36178283

17 years agoFix carry flag for subtracts, and clean up code slightly.
Gabe Black [Fri, 20 Jul 2007 21:53:38 +0000 (14:53 -0700)]
Fix carry flag for subtracts, and clean up code slightly.

--HG--
extra : convert_revision : 668f5d5aeba888488b41284de6c72a0d055c4ef4

17 years agoFixed width parameter and provided a parameter to flip the carry bit on subtract.
Gabe Black [Fri, 20 Jul 2007 21:52:44 +0000 (14:52 -0700)]
Fixed width parameter and provided a parameter to flip the carry bit on subtract.

--HG--
extra : convert_revision : d01bb791b000a2fdfc8600f8fb2f8aadd52b0b63

17 years agox86 fixes
Gabe Black [Thu, 19 Jul 2007 22:15:47 +0000 (15:15 -0700)]
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.

--HG--
extra : convert_revision : ae84bd8c6a1d400906e17e8b8c4185f2ebd4c5f2

17 years agoCheck for the two opcode prefix correctly and add in some instructions.
Gabe Black [Thu, 19 Jul 2007 00:51:05 +0000 (17:51 -0700)]
Check for the two opcode prefix correctly and add in some instructions.

--HG--
extra : convert_revision : 751e54843f5c81b81529050a1ae9d46d07c36e97

17 years agoHook near returns into the decoder.
Gabe Black [Thu, 19 Jul 2007 00:48:16 +0000 (17:48 -0700)]
Hook near returns into the decoder.

--HG--
extra : convert_revision : b38d4417552991e44f5d1de1f35d5d1ad8f32340

17 years agoImplement near returns.
Gabe Black [Thu, 19 Jul 2007 00:47:40 +0000 (17:47 -0700)]
Implement near returns.

--HG--
extra : convert_revision : 3d6e8a976d31cb016a4b78200716b0ece155137a

17 years agoMake instructions that conditionally set registers set them to their old value if...
Gabe Black [Thu, 19 Jul 2007 00:46:38 +0000 (17:46 -0700)]
Make instructions that conditionally set registers set them to their old value if they don't actually execute.

--HG--
extra : convert_revision : 36e63dd0c6ac1a3e1133c7985cf5507b83e9ee45

17 years agoFix the overload which prints ExtMachInst in X86.
Gabe Black [Thu, 19 Jul 2007 00:45:43 +0000 (17:45 -0700)]
Fix the overload which prints ExtMachInst in X86.

--HG--
extra : convert_revision : 2ef8ee71999f36b09270ba9526c2846beda65051

17 years agoMake store microops actually store instead of load.
Gabe Black [Thu, 19 Jul 2007 00:45:06 +0000 (17:45 -0700)]
Make store microops actually store instead of load.

--HG--
extra : convert_revision : fe90f8adc96dd0e680cfa45e4c510a906046ae3d

17 years agoFix a comment to refer to the right type of instruction.
Gabe Black [Thu, 19 Jul 2007 00:44:12 +0000 (17:44 -0700)]
Fix a comment to refer to the right type of instruction.

--HG--
extra : convert_revision : dd441d8fbaed1ed8b2b66e3ad0275009bd4dcef4

17 years agoFix the panic in the "error" format for x86,
Gabe Black [Thu, 19 Jul 2007 00:43:30 +0000 (17:43 -0700)]
Fix the panic in the "error" format for x86,

--HG--
extra : convert_revision : bd0715b5b63665f9160082d67c5b5d90d2405c5c

17 years agoImplement some forms of add.
Gabe Black [Wed, 18 Jul 2007 23:33:56 +0000 (16:33 -0700)]
Implement some forms of add.

--HG--
extra : convert_revision : adbff2e9b9952ec09853cc43d40243e7262410a7

17 years agoFix the operand types in a section of the decoder.
Gabe Black [Wed, 18 Jul 2007 23:26:52 +0000 (16:26 -0700)]
Fix the operand types in a section of the decoder.

--HG--
extra : convert_revision : c37600fd65b44817eed2ba653f9d4f08a9869874

17 years agoMake the data size used by regops overridable in the microassembly.
Gabe Black [Wed, 18 Jul 2007 23:26:17 +0000 (16:26 -0700)]
Make the data size used by regops overridable in the microassembly.

--HG--
extra : convert_revision : 84d850aa5340c9d02d03502704b063215f6e2140

17 years agoFill out the miscreg file and add types to miscregs.hh
Gabe Black [Wed, 18 Jul 2007 23:12:39 +0000 (16:12 -0700)]
Fill out the miscreg file and add types to miscregs.hh

--HG--
extra : convert_revision : 865432256518c4340d9f319bdd9b7d160dc656a0

17 years agoHook x86 nop into the decoder.
Gabe Black [Wed, 18 Jul 2007 23:11:52 +0000 (16:11 -0700)]
Hook x86 nop into the decoder.

--HG--
extra : convert_revision : 26f765ecf74a0bb6a1ec89816f1d630a1a8e4553

17 years agoFix a compilation error for SubBitUnions,
Gabe Black [Wed, 18 Jul 2007 23:11:16 +0000 (16:11 -0700)]
Fix a compilation error for SubBitUnions,

--HG--
extra : convert_revision : aad9388afe81ba6541d0b18fa9777e6ffcfd871c

17 years agoImplement the x86 nop to be a "fault" microop which returns "NoFault".
Gabe Black [Wed, 18 Jul 2007 23:10:44 +0000 (16:10 -0700)]
Implement the x86 nop to be a "fault" microop which returns "NoFault".

--HG--
extra : convert_revision : 1b446def756f1d0f80631db944d1cc41be95efbd

17 years agoAdd a generateDisassembly function to the MicroFault StaticInst.
Gabe Black [Wed, 18 Jul 2007 23:09:35 +0000 (16:09 -0700)]
Add a generateDisassembly function to the MicroFault StaticInst.

--HG--
extra : convert_revision : 73811bf99b26fad413c9b84a54f44e3763ff1835

17 years agoMake name, isMachineCheckFault, and isAlignmentFault const.
Gabe Black [Wed, 18 Jul 2007 23:09:00 +0000 (16:09 -0700)]
Make name, isMachineCheckFault, and isAlignmentFault const.

--HG--
extra : convert_revision : a27e0cbdfcb2a5fdc5979686f887cec7d106542b

17 years agoCalculate the correct address size.
Gabe Black [Wed, 18 Jul 2007 03:54:55 +0000 (20:54 -0700)]
Calculate the correct address size.

--HG--
extra : convert_revision : 6bd9d5a01ba6600781e3678e0403dca524fb2cba

17 years agoMake disassembled x86 register indices reflect their size.
Gabe Black [Wed, 18 Jul 2007 01:12:33 +0000 (18:12 -0700)]
Make disassembled x86 register indices reflect their size.
This doesn't handle high byte register accesses. It also highlights the fact that address size isn't actually being calculated, and that the size a microop uses needs to be overridable from the microassembly.

--HG--
extra : convert_revision : d495ac4f5756dc55a5f71953ff6963b3c030e6cb

17 years agoImplemented jnz.
Gabe Black [Tue, 17 Jul 2007 23:55:33 +0000 (16:55 -0700)]
Implemented jnz.

--HG--
extra : convert_revision : ea169ad68acbb3383443586b783b831b3a9eecf9

17 years agoUse limm to set up immediate value for subtract instruction.
Gabe Black [Tue, 17 Jul 2007 23:50:13 +0000 (16:50 -0700)]
Use limm to set up immediate value for subtract instruction.

--HG--
extra : convert_revision : f94e391e36a47c2f5222f30d7e28f48f7875db58

17 years agoImplement the jz instruction.
Gabe Black [Tue, 17 Jul 2007 22:36:45 +0000 (15:36 -0700)]
Implement the jz instruction.

--HG--
extra : convert_revision : 7c0bd7ce244f724ac03bbb5fdf770c7a3eba78b4

17 years agoMake "test" set some condition codes.
Gabe Black [Tue, 17 Jul 2007 22:35:34 +0000 (15:35 -0700)]
Make "test" set some condition codes.
It still needs to zero the overflow and carry flags to be correct.

--HG--
extra : convert_revision : 73cb3a55f7b4234389d9355f5ad45da6aaaa6c60

17 years agoAdd in support for condition code flags.
Gabe Black [Tue, 17 Jul 2007 22:33:18 +0000 (15:33 -0700)]
Add in support for condition code flags.
Some microops can set the condition codes, and some of them can be predicated on them. Some of the codes aren't implemented because it was unclear from the AMD patent what they actually did. They are used with string instructions, but they use variables IP, DTF, and SSTF which don't appear to be documented.

--HG--
extra : convert_revision : 2236cccd07d0091762b50148975f301bb1d2da3f

17 years agoAdd in operand which holds the condition code bits of the flag register.
Gabe Black [Tue, 17 Jul 2007 22:28:48 +0000 (15:28 -0700)]
Add in operand which holds the condition code bits of the flag register.

--HG--
extra : convert_revision : 416052f41fccc8286b3bdbe8d559512a761224f2

17 years agoAdd symbols for each of the flags a microop could set and each condition it could...
Gabe Black [Tue, 17 Jul 2007 22:27:28 +0000 (15:27 -0700)]
Add symbols for each of the flags a microop could set and each condition it could check.

--HG--
extra : convert_revision : 1f542b8aadfd5146539cadef631b49d77f578472

17 years agoActually include miscregs.hh
Gabe Black [Tue, 17 Jul 2007 20:30:23 +0000 (13:30 -0700)]
Actually include miscregs.hh

--HG--
extra : convert_revision : 6ebf906d2211b94f28c173f0d2da91bd446fcb2c

17 years agoCreate a file to describe misc registers.
Gabe Black [Tue, 17 Jul 2007 20:29:40 +0000 (13:29 -0700)]
Create a file to describe misc registers.
Define bitfields, indices, etc.

--HG--
extra : convert_revision : 8fffdc4cf796d304b12b317d8bddf5685bd50cf4

17 years agoCreate a file of functions for computing condition codes.
Gabe Black [Tue, 17 Jul 2007 20:28:03 +0000 (13:28 -0700)]
Create a file of functions for computing condition codes.
These haven't been very thuroughly tested, so use at your own risk.

--HG--
extra : convert_revision : 938885d36fea4a99f8228cdf195a0e0a38dd9031

17 years agoAdd a spot for the condition code portion of the flag register.
Gabe Black [Tue, 17 Jul 2007 20:26:06 +0000 (13:26 -0700)]
Add a spot for the condition code portion of the flag register.
This is stored in the integer register file so that it can be renamed, but it should be a misc reg.

--HG--
extra : convert_revision : eee48f24dd80b145f14427482047c4d8af2521ab

17 years agoAdd a conversion constructor so a bitunion can be initialized to a value.
Gabe Black [Tue, 17 Jul 2007 20:23:42 +0000 (13:23 -0700)]
Add a conversion constructor so a bitunion can be initialized to a value.
Previously, the bitunion would need to be declared and then assigned to separately.

--HG--
extra : convert_revision : d229bd83bc7baeca2259d4e7b080f359915015f3

17 years agoHandle broken swig version that prints version info on stderr.
Steve Reinhardt [Sun, 15 Jul 2007 01:35:26 +0000 (21:35 -0400)]
Handle broken swig version that prints version info on stderr.

--HG--
extra : convert_revision : 83021779c40972fa56893d21713c6115cd481bc4

17 years agoMove bitunion code into it's own file.
Gabe Black [Sun, 15 Jul 2007 00:28:26 +0000 (17:28 -0700)]
Move bitunion code into it's own file.

--HG--
extra : convert_revision : 8d55ca9645ee4e357b7f4595435542eb72490331

17 years agoPull some hard coded base classes out of the isa description.
Gabe Black [Sun, 15 Jul 2007 00:14:19 +0000 (17:14 -0700)]
Pull some hard coded base classes out of the isa description.

--HG--
rename : src/arch/x86/isa/base.isa => src/arch/x86/isa/outputblock.isa
extra : convert_revision : 7954e7d5eea3b5966c9e273a08bcd169a39f380c