Commit c99657d30329b5c296a5f998f1a05d1d10aa8e31
1 parent
b158a785
Implement some UA2007 block ASIs
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5328 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
6 additions
and
0 deletions
target-sparc/op_helper.c
| @@ -1499,6 +1499,8 @@ uint64_t helper_ld_asi(target_ulong addr, int asi, int size, int sign) | @@ -1499,6 +1499,8 @@ uint64_t helper_ld_asi(target_ulong addr, int asi, int size, int sign) | ||
| 1499 | case 0x18: // As if user primary LE | 1499 | case 0x18: // As if user primary LE |
| 1500 | case 0x80: // Primary | 1500 | case 0x80: // Primary |
| 1501 | case 0x88: // Primary LE | 1501 | case 0x88: // Primary LE |
| 1502 | + case 0xe2: // UA2007 Primary block init | ||
| 1503 | + case 0xe3: // UA2007 Secondary block init | ||
| 1502 | if ((asi & 0x80) && (env->pstate & PS_PRIV)) { | 1504 | if ((asi & 0x80) && (env->pstate & PS_PRIV)) { |
| 1503 | if ((env->def->features & CPU_FEATURE_HYPV) | 1505 | if ((env->def->features & CPU_FEATURE_HYPV) |
| 1504 | && env->hpstate & HS_PRIV) { | 1506 | && env->hpstate & HS_PRIV) { |
| @@ -1771,6 +1773,8 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size) | @@ -1771,6 +1773,8 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size) | ||
| 1771 | case 0x18: // As if user primary LE | 1773 | case 0x18: // As if user primary LE |
| 1772 | case 0x80: // Primary | 1774 | case 0x80: // Primary |
| 1773 | case 0x88: // Primary LE | 1775 | case 0x88: // Primary LE |
| 1776 | + case 0xe2: // UA2007 Primary block init | ||
| 1777 | + case 0xe3: // UA2007 Secondary block init | ||
| 1774 | if ((asi & 0x80) && (env->pstate & PS_PRIV)) { | 1778 | if ((asi & 0x80) && (env->pstate & PS_PRIV)) { |
| 1775 | if ((env->def->features & CPU_FEATURE_HYPV) | 1779 | if ((env->def->features & CPU_FEATURE_HYPV) |
| 1776 | && env->hpstate & HS_PRIV) { | 1780 | && env->hpstate & HS_PRIV) { |
| @@ -2146,6 +2150,8 @@ void helper_stf_asi(target_ulong addr, int asi, int size, int rd) | @@ -2146,6 +2150,8 @@ void helper_stf_asi(target_ulong addr, int asi, int size, int rd) | ||
| 2146 | 2150 | ||
| 2147 | helper_check_align(addr, 3); | 2151 | helper_check_align(addr, 3); |
| 2148 | switch (asi) { | 2152 | switch (asi) { |
| 2153 | + case 0xe0: // UA2007 Block commit store primary (cache flush) | ||
| 2154 | + case 0xe1: // UA2007 Block commit store secondary (cache flush) | ||
| 2149 | case 0xf0: // Block store primary | 2155 | case 0xf0: // Block store primary |
| 2150 | case 0xf1: // Block store secondary | 2156 | case 0xf1: // Block store secondary |
| 2151 | case 0xf8: // Block store primary LE | 2157 | case 0xf8: // Block store primary LE |