summaryrefslogtreecommitdiff
path: root/target-sparc/op_helper.c
diff options
context:
space:
mode:
authorTsuneo Saito <tsnsaito@gmail.com>2011-07-14 18:41:40 +0900
committerBlue Swirl <blauwirbel@gmail.com>2011-07-14 15:36:30 +0000
commitfdc0966bca8c2f9c2d87f381f6c5b8e2b11c9e4e (patch)
tree98609df88ac6d8e24eae12934cd2e8af1b634903 /target-sparc/op_helper.c
parent79c5d33525cb8584e08bb92442be0b9f1a172f02 (diff)
downloadqemu-fdc0966bca8c2f9c2d87f381f6c5b8e2b11c9e4e.tar.gz
qemu-fdc0966bca8c2f9c2d87f381f6c5b8e2b11c9e4e.tar.bz2
qemu-fdc0966bca8c2f9c2d87f381f6c5b8e2b11c9e4e.zip
SPARC64: Add UA2007 ASI_BLK_AIU[PS]L? ASIs for ldfa
Support UA2007 block load ASIs for ldfa instructions. Signed-off-by: Tsuneo Saito <tsnsaito@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'target-sparc/op_helper.c')
-rw-r--r--target-sparc/op_helper.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/target-sparc/op_helper.c b/target-sparc/op_helper.c
index fe71829ecc..b76ffb6ff0 100644
--- a/target-sparc/op_helper.c
+++ b/target-sparc/op_helper.c
@@ -3353,6 +3353,10 @@ void helper_ldf_asi(target_ulong addr, int asi, int size, int rd)
}
return;
+ case 0x16: /* UA2007 Block load primary, user privilege */
+ case 0x17: /* UA2007 Block load secondary, user privilege */
+ case 0x1e: /* UA2007 Block load primary LE, user privilege */
+ case 0x1f: /* UA2007 Block load secondary LE, user privilege */
case 0x70: // Block load primary, user privilege
case 0x71: // Block load secondary, user privilege
if (rd & 7) {
@@ -3361,7 +3365,7 @@ void helper_ldf_asi(target_ulong addr, int asi, int size, int rd)
}
helper_check_align(addr, 0x3f);
for (i = 0; i < 16; i++) {
- *(uint32_t *)&env->fpr[rd++] = helper_ld_asi(addr, asi & 0x1f, 4,
+ *(uint32_t *)&env->fpr[rd++] = helper_ld_asi(addr, asi & 0x19, 4,
0);
addr += 4;
}