From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JVQUw-0003Pt-Vn for qemu-devel@nongnu.org; Sat, 01 Mar 2008 07:07:27 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JVQUv-0003PX-Ie for qemu-devel@nongnu.org; Sat, 01 Mar 2008 07:07:26 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JVQUv-0003PS-F6 for qemu-devel@nongnu.org; Sat, 01 Mar 2008 07:07:25 -0500 Received: from ug-out-1314.google.com ([66.249.92.170]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JVQUu-00074F-Qt for qemu-devel@nongnu.org; Sat, 01 Mar 2008 07:07:25 -0500 Received: by ug-out-1314.google.com with SMTP id m2so838109uge.4 for ; Sat, 01 Mar 2008 04:07:24 -0800 (PST) Message-ID: Date: Sat, 1 Mar 2008 14:07:23 +0200 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_6071_18174300.1204373243678" Subject: [Qemu-devel] TCG: register survival outside basic block Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fabrice Bellard Cc: qemu-devel ------=_Part_6071_18174300.1204373243678 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I'd like to use TCG for the remaining Sparc ops, the attached patch converts addcc for Sparc32. But I have a problem with register handling. I'd like to use some registers across basic blocks, but currently they get eliminated like tmp0 and tmp3 below. Is it possible to add some kind of register locking to prevent this? Or would you have other suggestions? IN: 0xffd0ea84: addcc %i1, %g3, %i1 OP: ld_i64 tmp1,env,$0x20 ld_i32 T0,tmp1,$0x44 ld_i32 T1,env,$0xc mov_i32 tmp0,T0 add_i32 T0,T0,T1 movi_i32 tmp2,$0x0 mov_i32 tmp3,tmp2 brcond_i32 T0,tmp2,$0x1,$0x0 movi_i32 tmp3,$0x400000 set_label $0x0 brcond_i32 T0,tmp2,$0x3,$0x1 or_i32 tmp3,tmp3,$0x800000 set_label $0x1 st_i32 tmp3,env,$0xb4 brcond_i32 T0,tmp0,$0x7,$0x2 ld_i32 tmp5,env,$0xb4 or_i32 tmp5,tmp5,$0x100000 st_i32 tmp5,env,$0xb4 set_label $0x2 xor_i32 tmp7,tmp0,T1 xor_i32 tmp7,tmp7,$0xffffffffffffffff xor_i32 tmp8,tmp0,T0 and_i32 tmp7,tmp7,tmp8 and_i32 tmp7,tmp7,$0xffffffff80000000 movi_i32 tmp9,$0x0 brcond_i32 tmp7,tmp9,$0x0,$0x3 ld_i32 tmp12,env,$0xb4 or_i32 tmp12,tmp12,$0x200000 st_i32 tmp12,env,$0xb4 set_label $0x3 ld_i64 tmp1,env,$0x20 st_i32 T0,tmp1,$0x44 movi_i32 tmp0,$0xffffffffffd0ea88 st_i32 tmp0,env,$0xa8 movi_i32 tmp0,$0xffffffffffd0ea8c st_i32 tmp0,env,$0xac call $0x48b7e0,$0x0,$0x4 exit_tb $0x0 OP after la: ld_i64 tmp1,env,$0x20 ld_i32 T0,tmp1,$0x44 ld_i32 T1,env,$0xc nopn $0x2,$0x2 add_i32 T0,T0,T1 movi_i32 tmp2,$0x0 nopn $0x2,$0x2 brcond_i32 T0,tmp2,$0x1,$0x0 nopn $0x2,$0x2 set_label $0x0 brcond_i32 T0,tmp2,$0x3,$0x1 nopn $0x3,$0x7,$0x3 set_label $0x1 st_i32 tmp3,env,$0xb4 brcond_i32 T0,tmp0,$0x7,$0x2 ld_i32 tmp5,env,$0xb4 or_i32 tmp5,tmp5,$0x100000 st_i32 tmp5,env,$0xb4 set_label $0x2 xor_i32 tmp7,tmp0,T1 xor_i32 tmp7,tmp7,$0xffffffffffffffff xor_i32 tmp8,tmp0,T0 and_i32 tmp7,tmp7,tmp8 and_i32 tmp7,tmp7,$0xffffffff80000000 movi_i32 tmp9,$0x0 brcond_i32 tmp7,tmp9,$0x0,$0x3 ld_i32 tmp12,env,$0xb4 or_i32 tmp12,tmp12,$0x200000 st_i32 tmp12,env,$0xb4 set_label $0x3 ld_i64 tmp1,env,$0x20 st_i32 T0,tmp1,$0x44 movi_i32 tmp0,$0xffffffffffd0ea88 st_i32 tmp0,env,$0xa8 movi_i32 tmp0,$0xffffffffffd0ea8c st_i32 tmp0,env,$0xac call $0x48b7e0,$0x0,$0x4 exit_tb $0x0 end ------=_Part_6071_18174300.1204373243678 Content-Type: plain/text; name=tcg_addcc.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fda48gy8 Content-Disposition: attachment; filename=tcg_addcc.diff SW5kZXg6IHFlbXUvdGFyZ2V0LXNwYXJjL3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy90YXJnZXQtc3BhcmMvdHJhbnNsYXRlLmMJMjAwOC0wMy0wMSAwODozMzoxMC4wMDAwMDAw MDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LXNwYXJjL3RyYW5zbGF0ZS5jCTIwMDgtMDMtMDEgMTE6 MDM6NDIuMDAwMDAwMDAwICswMDAwCkBAIC05OTEsNiArOTkxLDgwIEBACiB9CiAjZW5kaWYKIAor Lyogb2xkIG9wOgorICAgIGlmICghVDApCisgICAgICAgIGVudi0+cHNyIHw9IFBTUl9aRVJPOwor ICAgIGlmICgoaW50MzJfdCkgVDAgPCAwKQorICAgICAgICBlbnYtPnBzciB8PSBQU1JfTkVHOwor Ki8KK3ZvaWQgZ2VuX2NjX05aKFRDR3YgcmVnKQoreworICAgIFRDR3Ygcl96ZXJvLCByX2ZsYWc7 CisgICAgaW50IGwxLCBsMjsKKworICAgIGwxID0gZ2VuX25ld19sYWJlbCgpOworICAgIGwyID0g Z2VuX25ld19sYWJlbCgpOworCisgICAgcl96ZXJvID0gdGNnX3RlbXBfbmV3KFRDR19UWVBFX0kz Mik7CisgICAgcl9mbGFnID0gdGNnX3RlbXBfbmV3KFRDR19UWVBFX0kzMik7CisgICAgdGNnX2dl bl9tb3ZpX2kzMihyX3plcm8sIDApOworICAgIHRjZ19nZW5fbW92X2kzMihyX2ZsYWcsIHJfemVy byk7CisgICAgdGNnX2dlbl9icmNvbmRfaTMyKFRDR19DT05EX05FLCByZWcsIHJfemVybywgbDEp OworICAgIHRjZ19nZW5fbW92aV9pMzIocl9mbGFnLCBQU1JfWkVSTyk7CisgICAgZ2VuX3NldF9s YWJlbChsMSk7CisgICAgdGNnX2dlbl9icmNvbmRfaTMyKFRDR19DT05EX0dFLCByZWcsIHJfemVy bywgbDIpOworICAgIHRjZ19nZW5fb3JpX2kzMihyX2ZsYWcsIHJfZmxhZywgUFNSX05FRyk7Cisg ICAgZ2VuX3NldF9sYWJlbChsMik7CisgICAgdGNnX2dlbl9zdF9pMzIocl9mbGFnLCBjcHVfZW52 LCBvZmZzZXRvZihDUFVTUEFSQ1N0YXRlLCBwc3IpKTsKK30KKworLyogb2xkIG9wOgorICAgIGlm IChUMCA8IHNyYzEpCisgICAgICAgIGVudi0+cHNyIHw9IFBTUl9DQVJSWTsKKyovCit2b2lkIGdl bl9jY19DX2FkZChUQ0d2IHJlZywgVENHdiBvbGRyZWcpCit7CisgICAgVENHdiByX2ZsYWc7Cisg ICAgaW50IGwxOworCisgICAgbDEgPSBnZW5fbmV3X2xhYmVsKCk7CisKKyAgICB0Y2dfZ2VuX2Jy Y29uZF9pMzIoVENHX0NPTkRfR0VVLCByZWcsIG9sZHJlZywgbDEpOworICAgIHJfZmxhZyA9IHRj Z190ZW1wX25ldyhUQ0dfVFlQRV9JMzIpOworICAgIHRjZ19nZW5fbGRfaTMyKHJfZmxhZywgY3B1 X2Vudiwgb2Zmc2V0b2YoQ1BVU1BBUkNTdGF0ZSwgcHNyKSk7CisgICAgdGNnX2dlbl9vcmlfaTMy KHJfZmxhZywgcl9mbGFnLCBQU1JfQ0FSUlkpOworICAgIHRjZ19nZW5fc3RfaTMyKHJfZmxhZywg Y3B1X2Vudiwgb2Zmc2V0b2YoQ1BVU1BBUkNTdGF0ZSwgcHNyKSk7CisgICAgZ2VuX3NldF9sYWJl bChsMSk7Cit9CisKKy8qIG9sZCBvcDoKKyAgICBpZiAoKChzcmMxIF4gVDEgXiAtMSkgJiAoc3Jj MSBeIFQwKSkgJiAoMSA8PCAzMSkpCisgICAgICAgIGVudi0+cHNyIHw9IFBTUl9PVkY7CisqLwor dm9pZCBnZW5fY2NfVl9hZGQoVENHdiByZWcsIFRDR3YgcmVnMiwgVENHdiBvbGRyZWcpCit7Cisg ICAgVENHdiByX2ZsYWcsIHJfdGVtcCwgcl90ZW1wMiwgcl96ZXJvOworICAgIGludCBsMTsKKwor ICAgIGwxID0gZ2VuX25ld19sYWJlbCgpOworCisgICAgcl90ZW1wID0gdGNnX3RlbXBfbmV3KFRD R19UWVBFX0kzMik7CisgICAgcl90ZW1wMiA9IHRjZ190ZW1wX25ldyhUQ0dfVFlQRV9JMzIpOwor ICAgIHJfemVybyA9IHRjZ190ZW1wX25ldyhUQ0dfVFlQRV9JMzIpOworICAgIHRjZ19nZW5feG9y X2kzMihyX3RlbXAsIG9sZHJlZywgcmVnMik7CisgICAgdGNnX2dlbl94b3JpX2kzMihyX3RlbXAs IHJfdGVtcCwgLTEpOworICAgIHRjZ19nZW5feG9yX2kzMihyX3RlbXAyLCBvbGRyZWcsIHJlZyk7 CisgICAgdGNnX2dlbl9hbmRfaTMyKHJfdGVtcCwgcl90ZW1wLCByX3RlbXAyKTsKKyAgICB0Y2df Z2VuX2FuZGlfaTMyKHJfdGVtcCwgcl90ZW1wLCAoMSA8PCAzMSkpOworICAgIHRjZ19nZW5fbW92 aV9pMzIocl96ZXJvLCAwKTsKKyAgICB0Y2dfZ2VuX2JyY29uZF9pMzIoVENHX0NPTkRfRVEsIHJf dGVtcCwgcl96ZXJvLCBsMSk7CisgICAgcl9mbGFnID0gdGNnX3RlbXBfbmV3KFRDR19UWVBFX0kz Mik7CisgICAgdGNnX2dlbl9sZF9pMzIocl9mbGFnLCBjcHVfZW52LCBvZmZzZXRvZihDUFVTUEFS Q1N0YXRlLCBwc3IpKTsKKyAgICB0Y2dfZ2VuX29yaV9pMzIocl9mbGFnLCByX2ZsYWcsIFBTUl9P VkYpOworICAgIHRjZ19nZW5fc3RfaTMyKHJfZmxhZywgY3B1X2Vudiwgb2Zmc2V0b2YoQ1BVU1BB UkNTdGF0ZSwgcHNyKSk7CisgICAgZ2VuX3NldF9sYWJlbChsMSk7Cit9CisKIC8qIGJlZm9yZSBh biBpbnN0cnVjdGlvbiwgZGMtPnBjIG11c3QgYmUgc3RhdGljICovCiBzdGF0aWMgdm9pZCBkaXNh c19zcGFyY19pbnNuKERpc2FzQ29udGV4dCAqIGRjKQogewpAQCAtMjA2Nyw5ICsyMTQxLDE3IEBA CiAgICAgICAgICAgICAgICAgaWYgKHhvcCA8IDB4MjApIHsKICAgICAgICAgICAgICAgICAgICAg c3dpdGNoICh4b3AgJiB+MHgxMCkgewogICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDoKLSAg ICAgICAgICAgICAgICAgICAgICAgIGlmICh4b3AgJiAweDEwKQorICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHhvcCAmIDB4MTApIHsKKyNpZmRlZiBUQVJHRVRfU1BBUkM2NAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdlbl9vcF9hZGRfVDFfVDBfY2MoKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgIGVsc2UKKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNnX2dl bl9tb3ZfdGwoY3B1X3RtcDAsIGNwdV9UWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0Y2dfZ2VuX2FkZF90bChjcHVfVFswXSwgY3B1X1RbMF0sIGNwdV9UWzFdKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZW5fY2NfTlooY3B1X1RbMF0pOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdlbl9jY19DX2FkZChjcHVfVFswXSwgY3B1X3RtcDApOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdlbl9jY19WX2FkZChjcHVfVFswXSwgY3B1X1RbMV0sIGNwdV90 bXAwKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2VuX29wX2FkZF9UMV9UMCgpOwogICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxOgpJbmRleDogcWVtdS90 YXJnZXQtc3BhcmMvb3AuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LXNwYXJjL29w LmMJMjAwOC0wMy0wMSAxMDozMjoxOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LXNw YXJjL29wLmMJMjAwOC0wMy0wMSAxMDozMjo1Ni4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3NSw2ICsx NzUsNyBAQAogCiAjZGVmaW5lIEZMQUdfU0VUKHgpICgoZW52LT5wc3ImeCk/MTowKQogCisjaWZk ZWYgVEFSR0VUX1NQQVJDNjQKIHZvaWQgT1BQUk9UTyBvcF9hZGRfVDFfVDBfY2Modm9pZCkKIHsK ICAgICB0YXJnZXRfdWxvbmcgc3JjMTsKQEAgLTE4Miw3ICsxODMsNiBAQAogICAgIHNyYzEgPSBU MDsKICAgICBUMCArPSBUMTsKICAgICBlbnYtPnBzciA9IDA7Ci0jaWZkZWYgVEFSR0VUX1NQQVJD NjQKICAgICBpZiAoIShUMCAmIDB4ZmZmZmZmZmYpKQogICAgICAgICBlbnYtPnBzciB8PSBQU1Jf WkVSTzsKICAgICBpZiAoKGludDMyX3QpIFQwIDwgMCkKQEAgLTIwMiwxOCArMjAyLDkgQEAKICAg ICAgICAgZW52LT54Y2MgfD0gUFNSX0NBUlJZOwogICAgIGlmICgoKHNyYzEgXiBUMSBeIC0xKSAm IChzcmMxIF4gVDApKSAmICgxVUxMIDw8IDYzKSkKICAgICAgICAgZW52LT54Y2MgfD0gUFNSX09W RjsKLSNlbHNlCi0gICAgaWYgKCFUMCkKLSAgICAgICAgZW52LT5wc3IgfD0gUFNSX1pFUk87Ci0g ICAgaWYgKChpbnQzMl90KSBUMCA8IDApCi0gICAgICAgIGVudi0+cHNyIHw9IFBTUl9ORUc7Ci0g ICAgaWYgKFQwIDwgc3JjMSkKLSAgICAgICAgZW52LT5wc3IgfD0gUFNSX0NBUlJZOwotICAgIGlm ICgoKHNyYzEgXiBUMSBeIC0xKSAmIChzcmMxIF4gVDApKSAmICgxIDw8IDMxKSkKLSAgICAgICAg ZW52LT5wc3IgfD0gUFNSX09WRjsKLSNlbmRpZgogICAgIEZPUkNFX1JFVCgpOwogfQorI2VuZGlm CiAKIHZvaWQgT1BQUk9UTyBvcF9hZGR4X1QxX1QwKHZvaWQpCiB7Cg== ------=_Part_6071_18174300.1204373243678--