summaryrefslogtreecommitdiff
path: root/arch/sparc/isa/base.isa
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2006-04-06 14:52:44 -0400
committerGabe Black <gblack@eecs.umich.edu>2006-04-06 14:52:44 -0400
commit6d8d6d15cdf5547740afbd41efe7c0f1d62079f3 (patch)
treead61b78dd531bd4696f00aeda36ff97b145622a2 /arch/sparc/isa/base.isa
parenta4b31e8f6b3c8ea33a5dad3e194c9865b92b0962 (diff)
downloadgem5-6d8d6d15cdf5547740afbd41efe7c0f1d62079f3.tar.xz
Fixed up the isa description. Also added some capability to the isa_parser in the InstObjParams constructor.
arch/isa_parser.py: Expanded the capability of the InstObjParams constructor to allow adding in extra keys for use in templates. These are added as key, value tuples as optional arguements. arch/sparc/isa/base.isa: arch/sparc/isa/formats/mem.isa: arch/sparc/isa/formats/priv.isa: The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor. arch/sparc/isa/decoder.isa: Fixed up alot of instructions, and fixed indentation. arch/sparc/isa/formats/integerop.isa: The genCompositeIop function is no longer needed, as this functionality is now in the InstObjParams constructor. Also changed the immediate values to be signed. base/traceflags.py: Added SPARC traceflag configs/test/hello_sparc: Recompiled without -mflat cpu/cpu_exec_context.cc: Used the regfile clear function rather than memsetting to 0. --HG-- extra : convert_revision : b9da6f264f3ebc4ce1815008dfff7f476b247ee9
Diffstat (limited to 'arch/sparc/isa/base.isa')
-rw-r--r--arch/sparc/isa/base.isa15
1 files changed, 1 insertions, 14 deletions
diff --git a/arch/sparc/isa/base.isa b/arch/sparc/isa/base.isa
index b9347a3d0..434426ffa 100644
--- a/arch/sparc/isa/base.isa
+++ b/arch/sparc/isa/base.isa
@@ -60,7 +60,7 @@ output header {{
inline int64_t sign_ext(uint64_t data, int origWidth)
{
- int shiftAmount = sizeof(uint64_t) - origWidth;
+ int shiftAmount = 64 - origWidth;
return (((int64_t)data) << shiftAmount) >> shiftAmount;
}
}};
@@ -84,19 +84,6 @@ let {{
code = matcher.sub('Rs' + rOrImmMatch.group("rNum"), orig_code)
imm_code = matcher.sub('imm', orig_code)
return (True, code, imm_code, rString, iString)
-
- def genCompositeIop(code, name, Name, parent, opt_flags, **extras):
- origBlock = CodeBlock(code)
- composite = code
- for snippet in extras.values():
- composite += ('\n' + snippet)
- compositeBlock = CodeBlock(composite)
- iop = InstObjParams(name, Name, parent, compositeBlock, opt_flags)
- iop.code = origBlock.code
- iop.orig_code = origBlock.orig_code
- for (name, snippet) in extras.items():
- exec "iop.%s = CodeBlock(snippet).code" % name
- return iop
}};
output decoder {{