diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-07-20 17:02:39 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-07-20 17:02:39 -0700 |
commit | c3669b892548ed3e1e8f4016f1e18202c5e7f484 (patch) | |
tree | edd13ce8500df1846dbc179b7d3d4fd36a8a6e0c /src/arch/x86/isa/insts | |
parent | 231cc3effb193c27ae10009444c5ee7cf2509a06 (diff) | |
download | gem5-c3669b892548ed3e1e8f4016f1e18202c5e7f484.tar.xz |
Implement the rest of the conditional jump instructions and hook them into the decoder.
--HG--
extra : convert_revision : 8d1d6abce29371def560e1c3f31dabb4de01366f
Diffstat (limited to 'src/arch/x86/isa/insts')
-rw-r--r-- | src/arch/x86/isa/insts/control_transfer/jump.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/arch/x86/isa/insts/control_transfer/jump.py b/src/arch/x86/isa/insts/control_transfer/jump.py index 3d69643ae..489eb9e39 100644 --- a/src/arch/x86/isa/insts/control_transfer/jump.py +++ b/src/arch/x86/isa/insts/control_transfer/jump.py @@ -74,6 +74,16 @@ def macroop JNZ_I wrip t1, t2, flags=(nCZF,) }; +def macroop JB_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(CCF,) +}; + def macroop JNB_I { # Make the default data size of jumps 64 bits in 64 bit mode @@ -104,6 +114,76 @@ def macroop JNBE_I wrip t1, t2, flags=(nCCvZF,) }; +def macroop JS_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(CSF,) +}; + +def macroop JNS_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(nCSF,) +}; + +def macroop JP_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(CPF,) +}; + +def macroop JNP_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(nCPF,) +}; + +def macroop JL_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(CSxOF,) +}; + +def macroop JNL_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(nCSxOF,) +}; + +def macroop JLE_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(CSxOvZF,) +}; + def macroop JNLE_I { # Make the default data size of jumps 64 bits in 64 bit mode @@ -114,6 +194,26 @@ def macroop JNLE_I wrip t1, t2, flags=(nCSxOvZF,) }; +def macroop JO_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(COF,) +}; + +def macroop JNO_I +{ + # Make the default data size of jumps 64 bits in 64 bit mode + .adjust_env oszIn64Override + + rdip t1 + limm t2, imm + wrip t1, t2, flags=(nCOF,) +}; + def macroop JMP_I { # Make the default data size of jumps 64 bits in 64 bit mode |