diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-26 18:07:24 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-09-26 18:07:24 +0000 |
commit | c99657d30329b5c296a5f998f1a05d1d10aa8e31 (patch) | |
tree | 4b3b0da76779242f63cccfea23564edb191ca6b8 | |
parent | b158a785d2f58469b5c78c2484a7c1b22e9dbaaa (diff) |
Implement some UA2007 block ASIs
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5328 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | target-sparc/op_helper.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c index 47b4b87aae..fb24fc8f17 100644 --- a/target-sparc/op_helper.c +++ b/target-sparc/op_helper.c @@ -1499,6 +1499,8 @@ uint64_t helper_ld_asi(target_ulong addr, int asi, int size, int sign) case 0x18: // As if user primary LE case 0x80: // Primary case 0x88: // Primary LE + case 0xe2: // UA2007 Primary block init + case 0xe3: // UA2007 Secondary block init if ((asi & 0x80) && (env->pstate & PS_PRIV)) { if ((env->def->features & CPU_FEATURE_HYPV) && env->hpstate & HS_PRIV) { @@ -1771,6 +1773,8 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size) case 0x18: // As if user primary LE case 0x80: // Primary case 0x88: // Primary LE + case 0xe2: // UA2007 Primary block init + case 0xe3: // UA2007 Secondary block init if ((asi & 0x80) && (env->pstate & PS_PRIV)) { if ((env->def->features & CPU_FEATURE_HYPV) && env->hpstate & HS_PRIV) { @@ -2146,6 +2150,8 @@ void helper_stf_asi(target_ulong addr, int asi, int size, int rd) helper_check_align(addr, 3); switch (asi) { + case 0xe0: // UA2007 Block commit store primary (cache flush) + case 0xe1: // UA2007 Block commit store secondary (cache flush) case 0xf0: // Block store primary case 0xf1: // Block store secondary case 0xf8: // Block store primary LE |