diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2008-06-12 00:48:15 -0400 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2008-06-12 00:48:15 -0400 |
commit | de6eeaaa27543f27386b1d9c6528bd60faf75296 (patch) | |
tree | 60a9d6b1b77d92825e0975eba56bfab4fc3afb36 /src/arch/x86/isa/insts/general_purpose/string/load_string.py | |
parent | 8688ef3fe523bf40a0b90d88fb986c25571b298a (diff) | |
download | gem5-de6eeaaa27543f27386b1d9c6528bd60faf75296.tar.xz |
X86: Make string instructions work when rcx=0.
Diffstat (limited to 'src/arch/x86/isa/insts/general_purpose/string/load_string.py')
-rw-r--r-- | src/arch/x86/isa/insts/general_purpose/string/load_string.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/arch/x86/isa/insts/general_purpose/string/load_string.py b/src/arch/x86/isa/insts/general_purpose/string/load_string.py index 61525c2f2..8cf07fea6 100644 --- a/src/arch/x86/isa/insts/general_purpose/string/load_string.py +++ b/src/arch/x86/isa/insts/general_purpose/string/load_string.py @@ -1,4 +1,4 @@ -# Copyright (c) 2007 The Hewlett-Packard Development Company +# Copyright (c) 2007-2008 The Hewlett-Packard Development Company # All rights reserved. # # Redistribution and use of this software in source and binary forms, @@ -67,6 +67,8 @@ def macroop LODS_M { }; def macroop LODS_E_M { + and t0, rcx, rcx, flags=(EZF,), dataSize=asz + bri t0, label("end"), flags=(CEZF,) # Find the constant we need to either add or subtract from rdi ruflag t0, 10 movi t3, t3, dsz, flags=(CEZF,), dataSize=asz @@ -79,6 +81,7 @@ topOfLoop: subi rcx, rcx, 1, flags=(EZF,), dataSize=asz add rdi, rdi, t3, dataSize=asz bri t0, label("topOfLoop"), flags=(nCEZF,) +end: fault "NoFault" }; ''' |