Commit c99657d30329b5c296a5f998f1a05d1d10aa8e31

Authored by blueswir1
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 1499 case 0x18: // As if user primary LE
1500 1500 case 0x80: // Primary
1501 1501 case 0x88: // Primary LE
  1502 + case 0xe2: // UA2007 Primary block init
  1503 + case 0xe3: // UA2007 Secondary block init
1502 1504 if ((asi & 0x80) && (env->pstate & PS_PRIV)) {
1503 1505 if ((env->def->features & CPU_FEATURE_HYPV)
1504 1506 && env->hpstate & HS_PRIV) {
... ... @@ -1771,6 +1773,8 @@ void helper_st_asi(target_ulong addr, target_ulong val, int asi, int size)
1771 1773 case 0x18: // As if user primary LE
1772 1774 case 0x80: // Primary
1773 1775 case 0x88: // Primary LE
  1776 + case 0xe2: // UA2007 Primary block init
  1777 + case 0xe3: // UA2007 Secondary block init
1774 1778 if ((asi & 0x80) && (env->pstate & PS_PRIV)) {
1775 1779 if ((env->def->features & CPU_FEATURE_HYPV)
1776 1780 && env->hpstate & HS_PRIV) {
... ... @@ -2146,6 +2150,8 @@ void helper_stf_asi(target_ulong addr, int asi, int size, int rd)
2146 2150  
2147 2151 helper_check_align(addr, 3);
2148 2152 switch (asi) {
  2153 + case 0xe0: // UA2007 Block commit store primary (cache flush)
  2154 + case 0xe1: // UA2007 Block commit store secondary (cache flush)
2149 2155 case 0xf0: // Block store primary
2150 2156 case 0xf1: // Block store secondary
2151 2157 case 0xf8: // Block store primary LE
... ...