diff options
author | Alexander Graf <agraf@suse.de> | 2011-11-18 16:45:54 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2012-01-04 02:48:14 +0100 |
commit | 7d77793d6bf5ecb784040aef946ff7b4d52f2d2a (patch) | |
tree | f9a1f7409a2e26a0b842dbbdf501c156a625ad39 | |
parent | 971ca4d906958fc09c8c69edde6f3caa4a843766 (diff) | |
download | qemu-7d77793d6bf5ecb784040aef946ff7b4d52f2d2a.zip |
s390x: add TR function for EXECUTE
Newer gcc versions (or glibc?) also generate code that tries to EXECUTE
the TR opcode. Implement it so that we don't break valid guests.
Reported-by: Andreas Faerber <afaerber@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | target-s390x/op_helper.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/target-s390x/op_helper.c b/target-s390x/op_helper.c index b8a1a8a54f..cf26b29ee9 100644 --- a/target-s390x/op_helper.c +++ b/target-s390x/op_helper.c @@ -636,6 +636,9 @@ uint32_t HELPER(ex)(uint32_t cc, uint64_t v1, uint64_t addr, uint64_t ret) case 0x700: cc = helper_xc(l, get_address(0, b1, d1), get_address(0, b2, d2)); break; + case 0xc00: + helper_tr(l, get_address(0, b1, d1), get_address(0, b2, d2)); + break; default: goto abort; break; |