From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:41770) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLKj3-00085t-0p for qemu-devel@nongnu.org; Sat, 14 May 2011 15:42:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QLKj1-0003M9-QE for qemu-devel@nongnu.org; Sat, 14 May 2011 15:42:08 -0400 Received: from mail-qw0-f45.google.com ([209.85.216.45]:51094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLKj1-0003M5-Mz for qemu-devel@nongnu.org; Sat, 14 May 2011 15:42:07 -0400 Received: by qwj8 with SMTP id 8so2053878qwj.4 for ; Sat, 14 May 2011 12:42:07 -0700 (PDT) MIME-Version: 1.0 From: Blue Swirl Date: Sat, 14 May 2011 22:41:47 +0300 Message-ID: Content-Type: multipart/mixed; boundary=20cf3005149e14f71004a3419eba Subject: [Qemu-devel] [PATCH 09/11] Don't compile legacy qemu_ld/st functions if target doesn't need them List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --20cf3005149e14f71004a3419eba Content-Type: text/plain; charset=UTF-8 WIP Signed-off-by: Blue Swirl --- tcg/i386/tcg-target.c | 39 ++++++++++++++++++++++----------------- 1 files changed, 22 insertions(+), 17 deletions(-) diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index 0e168ea..8fc80af 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -999,7 +999,8 @@ static void *qemu_st_helpers[4] = { static inline void tcg_out_tlb_load(TCGContext *s, int addrlo_idx, int mem_index, int s_bits, const TCGArg *args, - uint8_t **label_ptr, int which) + uint8_t **label_ptr, int which, + int r_cpustate) { const int addrlo = args[addrlo_idx]; const int r0 = tcg_target_call_iarg_regs[0]; @@ -1023,7 +1024,7 @@ static inline void tcg_out_tlb_load(TCGContext *s, int addrlo_idx, tgen_arithi(s, ARITH_AND + rexw, r1, (CPU_TLB_SIZE - 1) << CPU_TLB_ENTRY_BITS, 0); - tcg_out_modrm_sib_offset(s, OPC_LEA + P_REXW, r1, TCG_AREG0, r1, 0, + tcg_out_modrm_sib_offset(s, OPC_LEA + P_REXW, r1, r_cpustate, r1, 0, offsetof(CPUState, tlb_table[mem_index][0]) + which); @@ -1136,7 +1137,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, int datalo, int datahi, EAX. It will be useful once fixed registers globals are less common. */ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, - int opc) + int opc, int r_cpustate) { int data_reg, data_reg2 = 0; int addrlo_idx; @@ -1157,7 +1158,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, s_bits = opc & 3; tcg_out_tlb_load(s, addrlo_idx, mem_index, s_bits, args, - label_ptr, offsetof(CPUTLBEntry, addr_read)); + label_ptr, offsetof(CPUTLBEntry, addr_read), r_cpustate); /* TLB Hit. */ tcg_out_qemu_ld_direct(s, data_reg, data_reg2, @@ -1310,7 +1311,7 @@ static void tcg_out_qemu_st_direct(TCGContext *s, int datalo, int datahi, } static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, - int opc) + int opc, int r_cpustate) { int data_reg, data_reg2 = 0; int addrlo_idx; @@ -1332,7 +1333,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGArg *args, s_bits = opc; tcg_out_tlb_load(s, addrlo_idx, mem_index, s_bits, args, - label_ptr, offsetof(CPUTLBEntry, addr_write)); + label_ptr, offsetof(CPUTLBEntry, addr_write), r_cpustate); /* TLB Hit. */ tcg_out_qemu_st_direct(s, data_reg, data_reg2, @@ -1639,40 +1640,42 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc, tcg_out_ext16u(s, args[0], args[1]); break; +#ifdef CONFIG_TARGET_NEEDS_AREG0 case INDEX_op_qemu_ld8u: - tcg_out_qemu_ld(s, args, 0); + tcg_out_qemu_ld(s, args, 0, TCG_AREG0); break; case INDEX_op_qemu_ld8s: - tcg_out_qemu_ld(s, args, 0 | 4); + tcg_out_qemu_ld(s, args, 0 | 4, TCG_AREG0); break; case INDEX_op_qemu_ld16u: - tcg_out_qemu_ld(s, args, 1); + tcg_out_qemu_ld(s, args, 1, TCG_AREG0); break; case INDEX_op_qemu_ld16s: - tcg_out_qemu_ld(s, args, 1 | 4); + tcg_out_qemu_ld(s, args, 1 | 4, TCG_AREG0); break; #if TCG_TARGET_REG_BITS == 64 case INDEX_op_qemu_ld32u: #endif case INDEX_op_qemu_ld32: - tcg_out_qemu_ld(s, args, 2); + tcg_out_qemu_ld(s, args, 2, TCG_AREG0); break; case INDEX_op_qemu_ld64: - tcg_out_qemu_ld(s, args, 3); + tcg_out_qemu_ld(s, args, 3, TCG_AREG0); break; case INDEX_op_qemu_st8: - tcg_out_qemu_st(s, args, 0); + tcg_out_qemu_st(s, args, 0, TCG_AREG0); break; case INDEX_op_qemu_st16: - tcg_out_qemu_st(s, args, 1); + tcg_out_qemu_st(s, args, 1, TCG_AREG0); break; case INDEX_op_qemu_st32: - tcg_out_qemu_st(s, args, 2); + tcg_out_qemu_st(s, args, 2, TCG_AREG0); break; case INDEX_op_qemu_st64: - tcg_out_qemu_st(s, args, 3); + tcg_out_qemu_st(s, args, 3, TCG_AREG0); break; +#endif #if TCG_TARGET_REG_BITS == 32 case INDEX_op_brcond2_i32: @@ -1721,9 +1724,11 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc, case INDEX_op_st_i64: tcg_out_st(s, TCG_TYPE_I64, args[0], args[1], args[2]); break; +#ifdef CONFIG_TARGET_NEEDS_AREG0 case INDEX_op_qemu_ld32s: - tcg_out_qemu_ld(s, args, 2 | 4); + tcg_out_qemu_ld(s, args, 2 | 4, TCG_AREG0); break; +#endif case INDEX_op_brcond_i64: tcg_out_brcond64(s, args[2], args[0], args[1], const_args[1], -- 1.6.2.4 --20cf3005149e14f71004a3419eba Content-Type: text/x-diff; charset=US-ASCII; name="0009-Don-t-compile-legacy-qemu_ld-st-functions-if-target-.patch" Content-Disposition: attachment; filename="0009-Don-t-compile-legacy-qemu_ld-st-functions-if-target-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gnoyp4b40 RnJvbSBhMjI5ZmNkZTJiM2FjN2U2NjU5OTVkZTdjNTRkNDJiMWY1NGVlYzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8YTIyOWZjZGUyYjNhYzdlNjY1OTk1ZGU3YzU0ZDQy YjFmNTRlZWM1ZS4xMzA1NDAxNzUwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNvbT4KSW4tUmVwbHkt VG86IDw2ZTIxZGY4ZTM2OTM4OGEzMTUyZGNjN2RhMzA0MzFjNjcyZTFlZTM3LjEzMDU0MDE3NTAu Z2l0LmJsYXV3aXJiZWxAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8NmUyMWRmOGUzNjkzODhhMzE1 MmRjYzdkYTMwNDMxYzY3MmUxZWUzNy4xMzA1NDAxNzUwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNv bT4KRnJvbTogQmx1ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTQg TWF5IDIwMTEgMDc6MDk6NDAgKzAwMDAKU3ViamVjdDogW1BBVENIIDA5LzExXSBEb24ndCBjb21w aWxlIGxlZ2FjeSBxZW11X2xkL3N0IGZ1bmN0aW9ucyBpZiB0YXJnZXQgZG9lc24ndCBuZWVkIHRo ZW0KCldJUAoKU2lnbmVkLW9mZi1ieTogQmx1ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+ Ci0tLQogdGNnL2kzODYvdGNnLXRhcmdldC5jIHwgICAzOSArKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGNnL2kzODYvdGNnLXRhcmdldC5jIGIvdGNnL2kz ODYvdGNnLXRhcmdldC5jCmluZGV4IDBlMTY4ZWEuLjhmYzgwYWYgMTAwNjQ0Ci0tLSBhL3RjZy9p Mzg2L3RjZy10YXJnZXQuYworKysgYi90Y2cvaTM4Ni90Y2ctdGFyZ2V0LmMKQEAgLTk5OSw3ICs5 OTksOCBAQCBzdGF0aWMgdm9pZCAqcWVtdV9zdF9oZWxwZXJzWzRdID0gewogc3RhdGljIGlubGlu ZSB2b2lkIHRjZ19vdXRfdGxiX2xvYWQoVENHQ29udGV4dCAqcywgaW50IGFkZHJsb19pZHgsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWVtX2luZGV4LCBpbnQgc19i aXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVENHQXJnICph cmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqKmxhYmVs X3B0ciwgaW50IHdoaWNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCAqKmxhYmVsX3B0ciwgaW50IHdoaWNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHJfY3B1c3RhdGUpCiB7CiAgICAgY29uc3QgaW50IGFkZHJsbyA9IGFyZ3Nb YWRkcmxvX2lkeF07CiAgICAgY29uc3QgaW50IHIwID0gdGNnX3RhcmdldF9jYWxsX2lhcmdfcmVn c1swXTsKQEAgLTEwMjMsNyArMTAyNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X3Rs Yl9sb2FkKFRDR0NvbnRleHQgKnMsIGludCBhZGRybG9faWR4LAogICAgIHRnZW5fYXJpdGhpKHMs IEFSSVRIX0FORCArIHJleHcsIHIxLAogICAgICAgICAgICAgICAgIChDUFVfVExCX1NJWkUgLSAx KSA8PCBDUFVfVExCX0VOVFJZX0JJVFMsIDApOwogCi0gICAgdGNnX291dF9tb2RybV9zaWJfb2Zm c2V0KHMsIE9QQ19MRUEgKyBQX1JFWFcsIHIxLCBUQ0dfQVJFRzAsIHIxLCAwLAorICAgIHRjZ19v dXRfbW9kcm1fc2liX29mZnNldChzLCBPUENfTEVBICsgUF9SRVhXLCByMSwgcl9jcHVzdGF0ZSwg cjEsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVVN0YXRlLCB0 bGJfdGFibGVbbWVtX2luZGV4XVswXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB3 aGljaCk7CiAKQEAgLTExMzYsNyArMTEzNyw3IEBAIHN0YXRpYyB2b2lkIHRjZ19vdXRfcWVtdV9s ZF9kaXJlY3QoVENHQ29udGV4dCAqcywgaW50IGRhdGFsbywgaW50IGRhdGFoaSwKICAgIEVBWC4g SXQgd2lsbCBiZSB1c2VmdWwgb25jZSBmaXhlZCByZWdpc3RlcnMgZ2xvYmFscyBhcmUgbGVzcwog ICAgY29tbW9uLiAqLwogc3RhdGljIHZvaWQgdGNnX291dF9xZW11X2xkKFRDR0NvbnRleHQgKnMs IGNvbnN0IFRDR0FyZyAqYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3Bj KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcGMsIGludCByX2NwdXN0YXRlKQog ewogICAgIGludCBkYXRhX3JlZywgZGF0YV9yZWcyID0gMDsKICAgICBpbnQgYWRkcmxvX2lkeDsK QEAgLTExNTcsNyArMTE1OCw3IEBAIHN0YXRpYyB2b2lkIHRjZ19vdXRfcWVtdV9sZChUQ0dDb250 ZXh0ICpzLCBjb25zdCBUQ0dBcmcgKmFyZ3MsCiAgICAgc19iaXRzID0gb3BjICYgMzsKIAogICAg IHRjZ19vdXRfdGxiX2xvYWQocywgYWRkcmxvX2lkeCwgbWVtX2luZGV4LCBzX2JpdHMsIGFyZ3Ms Ci0gICAgICAgICAgICAgICAgICAgICBsYWJlbF9wdHIsIG9mZnNldG9mKENQVVRMQkVudHJ5LCBh ZGRyX3JlYWQpKTsKKyAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3B0ciwgb2Zmc2V0b2YoQ1BV VExCRW50cnksIGFkZHJfcmVhZCksIHJfY3B1c3RhdGUpOwogCiAgICAgLyogVExCIEhpdC4gICov CiAgICAgdGNnX291dF9xZW11X2xkX2RpcmVjdChzLCBkYXRhX3JlZywgZGF0YV9yZWcyLApAQCAt MTMxMCw3ICsxMzExLDcgQEAgc3RhdGljIHZvaWQgdGNnX291dF9xZW11X3N0X2RpcmVjdChUQ0dD b250ZXh0ICpzLCBpbnQgZGF0YWxvLCBpbnQgZGF0YWhpLAogfQogCiBzdGF0aWMgdm9pZCB0Y2df b3V0X3FlbXVfc3QoVENHQ29udGV4dCAqcywgY29uc3QgVENHQXJnICphcmdzLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBvcGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IG9wYywgaW50IHJfY3B1c3RhdGUpCiB7CiAgICAgaW50IGRhdGFfcmVnLCBkYXRhX3JlZzIg PSAwOwogICAgIGludCBhZGRybG9faWR4OwpAQCAtMTMzMiw3ICsxMzMzLDcgQEAgc3RhdGljIHZv aWQgdGNnX291dF9xZW11X3N0KFRDR0NvbnRleHQgKnMsIGNvbnN0IFRDR0FyZyAqYXJncywKICAg ICBzX2JpdHMgPSBvcGM7CiAKICAgICB0Y2dfb3V0X3RsYl9sb2FkKHMsIGFkZHJsb19pZHgsIG1l bV9pbmRleCwgc19iaXRzLCBhcmdzLAotICAgICAgICAgICAgICAgICAgICAgbGFiZWxfcHRyLCBv ZmZzZXRvZihDUFVUTEJFbnRyeSwgYWRkcl93cml0ZSkpOworICAgICAgICAgICAgICAgICAgICAg bGFiZWxfcHRyLCBvZmZzZXRvZihDUFVUTEJFbnRyeSwgYWRkcl93cml0ZSksIHJfY3B1c3RhdGUp OwogCiAgICAgLyogVExCIEhpdC4gICovCiAgICAgdGNnX291dF9xZW11X3N0X2RpcmVjdChzLCBk YXRhX3JlZywgZGF0YV9yZWcyLApAQCAtMTYzOSw0MCArMTY0MCw0MiBAQCBzdGF0aWMgaW5saW5l IHZvaWQgdGNnX291dF9vcChUQ0dDb250ZXh0ICpzLCBUQ0dPcGNvZGUgb3BjLAogICAgICAgICB0 Y2dfb3V0X2V4dDE2dShzLCBhcmdzWzBdLCBhcmdzWzFdKTsKICAgICAgICAgYnJlYWs7CiAKKyNp ZmRlZiBDT05GSUdfVEFSR0VUX05FRURTX0FSRUcwCiAgICAgY2FzZSBJTkRFWF9vcF9xZW11X2xk OHU6Ci0gICAgICAgIHRjZ19vdXRfcWVtdV9sZChzLCBhcmdzLCAwKTsKKyAgICAgICAgdGNnX291 dF9xZW11X2xkKHMsIGFyZ3MsIDAsIFRDR19BUkVHMCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh c2UgSU5ERVhfb3BfcWVtdV9sZDhzOgotICAgICAgICB0Y2dfb3V0X3FlbXVfbGQocywgYXJncywg MCB8IDQpOworICAgICAgICB0Y2dfb3V0X3FlbXVfbGQocywgYXJncywgMCB8IDQsIFRDR19BUkVH MCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSU5ERVhfb3BfcWVtdV9sZDE2dToKLSAgICAg ICAgdGNnX291dF9xZW11X2xkKHMsIGFyZ3MsIDEpOworICAgICAgICB0Y2dfb3V0X3FlbXVfbGQo cywgYXJncywgMSwgVENHX0FSRUcwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJTkRFWF9v cF9xZW11X2xkMTZzOgotICAgICAgICB0Y2dfb3V0X3FlbXVfbGQocywgYXJncywgMSB8IDQpOwor ICAgICAgICB0Y2dfb3V0X3FlbXVfbGQocywgYXJncywgMSB8IDQsIFRDR19BUkVHMCk7CiAgICAg ICAgIGJyZWFrOwogI2lmIFRDR19UQVJHRVRfUkVHX0JJVFMgPT0gNjQKICAgICBjYXNlIElOREVY X29wX3FlbXVfbGQzMnU6CiAjZW5kaWYKICAgICBjYXNlIElOREVYX29wX3FlbXVfbGQzMjoKLSAg ICAgICAgdGNnX291dF9xZW11X2xkKHMsIGFyZ3MsIDIpOworICAgICAgICB0Y2dfb3V0X3FlbXVf bGQocywgYXJncywgMiwgVENHX0FSRUcwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJTkRF WF9vcF9xZW11X2xkNjQ6Ci0gICAgICAgIHRjZ19vdXRfcWVtdV9sZChzLCBhcmdzLCAzKTsKKyAg ICAgICAgdGNnX291dF9xZW11X2xkKHMsIGFyZ3MsIDMsIFRDR19BUkVHMCk7CiAgICAgICAgIGJy ZWFrOwogCiAgICAgY2FzZSBJTkRFWF9vcF9xZW11X3N0ODoKLSAgICAgICAgdGNnX291dF9xZW11 X3N0KHMsIGFyZ3MsIDApOworICAgICAgICB0Y2dfb3V0X3FlbXVfc3QocywgYXJncywgMCwgVENH X0FSRUcwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJTkRFWF9vcF9xZW11X3N0MTY6Ci0g ICAgICAgIHRjZ19vdXRfcWVtdV9zdChzLCBhcmdzLCAxKTsKKyAgICAgICAgdGNnX291dF9xZW11 X3N0KHMsIGFyZ3MsIDEsIFRDR19BUkVHMCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSU5E RVhfb3BfcWVtdV9zdDMyOgotICAgICAgICB0Y2dfb3V0X3FlbXVfc3QocywgYXJncywgMik7Cisg ICAgICAgIHRjZ19vdXRfcWVtdV9zdChzLCBhcmdzLCAyLCBUQ0dfQVJFRzApOwogICAgICAgICBi cmVhazsKICAgICBjYXNlIElOREVYX29wX3FlbXVfc3Q2NDoKLSAgICAgICAgdGNnX291dF9xZW11 X3N0KHMsIGFyZ3MsIDMpOworICAgICAgICB0Y2dfb3V0X3FlbXVfc3QocywgYXJncywgMywgVENH X0FSRUcwKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKIAogI2lmIFRDR19UQVJHRVRfUkVHX0JJ VFMgPT0gMzIKICAgICBjYXNlIElOREVYX29wX2JyY29uZDJfaTMyOgpAQCAtMTcyMSw5ICsxNzI0 LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0Y2dfb3V0X29wKFRDR0NvbnRleHQgKnMsIFRDR09w Y29kZSBvcGMsCiAgICAgY2FzZSBJTkRFWF9vcF9zdF9pNjQ6CiAgICAgICAgIHRjZ19vdXRfc3Qo cywgVENHX1RZUEVfSTY0LCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgYnJl YWs7CisjaWZkZWYgQ09ORklHX1RBUkdFVF9ORUVEU19BUkVHMAogICAgIGNhc2UgSU5ERVhfb3Bf cWVtdV9sZDMyczoKLSAgICAgICAgdGNnX291dF9xZW11X2xkKHMsIGFyZ3MsIDIgfCA0KTsKKyAg ICAgICAgdGNnX291dF9xZW11X2xkKHMsIGFyZ3MsIDIgfCA0LCBUQ0dfQVJFRzApOwogICAgICAg ICBicmVhazsKKyNlbmRpZgogCiAgICAgY2FzZSBJTkRFWF9vcF9icmNvbmRfaTY0OgogICAgICAg ICB0Y2dfb3V0X2JyY29uZDY0KHMsIGFyZ3NbMl0sIGFyZ3NbMF0sIGFyZ3NbMV0sIGNvbnN0X2Fy Z3NbMV0sCi0tIAoxLjcuMi41Cgo= --20cf3005149e14f71004a3419eba--