Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1217554 > unrolled thread
| Started by | Adrian Hunter <adrian.hunter@intel.com> |
|---|---|
| First post | 2015-09-02 14:20 +0200 |
| Last post | 2015-09-03 18:10 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions Adrian Hunter <adrian.hunter@intel.com> - 2015-09-02 14:20 +0200
RE: [PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions 平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com> - 2015-09-03 18:10 +0200
| From | Adrian Hunter <adrian.hunter@intel.com> |
|---|---|
| Date | 2015-09-02 14:20 +0200 |
| Subject | [PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions |
| Message-ID | <q4fbc-4Me-19@gated-at.bofh.it> |
The MPX instructions are presently not described in the SDM opcode maps, and there are not encoding characters for bnd registers, address method or operand type. So the kernel opcode map is using 'Gv' for bnd registers and 'Ev' for everything else. That is fine because the instruction decoder does not use that information anyway, except as an indication that there is a ModR/M byte. Nevertheless, in some cases the 'Gv' and 'Ev' are the wrong way around, BNDLDX and BNDSTX have 2 operands not 3, and it wouldn't hurt to identify the mandatory prefixes. This has no effect on the decoding of valid instructions, but the addition of the mandatory prefixes will cause some invalid instructions to error out that wouldn't have previously. Note that perf tools has a copy of the instruction decoder and provides a test for new instructions which includes MPX instructions e.g. $ perf test "x86 ins" 39: Test x86 instruction decoder - new instructions : Ok Or to see the details: $ perf test -v "x86 ins" Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- arch/x86/lib/x86-opcode-map.txt | 8 ++++++-- tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt index 816488c0b97e..a02a195d219c 100644 --- a/arch/x86/lib/x86-opcode-map.txt +++ b/arch/x86/lib/x86-opcode-map.txt @@ -353,8 +353,12 @@ AVXcode: 1 17: vmovhps Mq,Vq (v1) | vmovhpd Mq,Vq (66),(v1) 18: Grp16 (1A) 19: -1a: BNDCL Ev,Gv | BNDCU Ev,Gv | BNDMOV Gv,Ev | BNDLDX Gv,Ev,Gv -1b: BNDCN Ev,Gv | BNDMOV Ev,Gv | BNDMK Gv,Ev | BNDSTX Ev,GV,Gv +# Intel SDM opcode map does not list MPX instructions. For now using Gv for +# bnd registers and Ev for everything else is OK because the instruction +# decoder does not use the information except as an indication that there is +# a ModR/M byte. +1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev +1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv 1c: 1d: 1e: diff --git a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt index 816488c0b97e..a02a195d219c 100644 --- a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt +++ b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt @@ -353,8 +353,12 @@ AVXcode: 1 17: vmovhps Mq,Vq (v1) | vmovhpd Mq,Vq (66),(v1) 18: Grp16 (1A) 19: -1a: BNDCL Ev,Gv | BNDCU Ev,Gv | BNDMOV Gv,Ev | BNDLDX Gv,Ev,Gv -1b: BNDCN Ev,Gv | BNDMOV Ev,Gv | BNDMK Gv,Ev | BNDSTX Ev,GV,Gv +# Intel SDM opcode map does not list MPX instructions. For now using Gv for +# bnd registers and Ev for everything else is OK because the instruction +# decoder does not use the information except as an indication that there is +# a ModR/M byte. +1a: BNDCL Gv,Ev (F3) | BNDCU Gv,Ev (F2) | BNDMOV Gv,Ev (66) | BNDLDX Gv,Ev +1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv 1c: 1d: 1e: -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | 平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com> |
|---|---|
| Date | 2015-09-03 18:10 +0200 |
| Subject | RE: [PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions |
| Message-ID | <q4Ffl-8tV-37@gated-at.bofh.it> |
| In reply to | #1217554 |
PiBGcm9tOiBBZHJpYW4gSHVudGVyIFttYWlsdG86YWRyaWFuLmh1bnRlckBpbnRlbC5jb21dDQo+ IA0KPiBUaGUgTVBYIGluc3RydWN0aW9ucyBhcmUgcHJlc2VudGx5IG5vdCBkZXNjcmliZWQgaW4g dGhlIFNETQ0KPiBvcGNvZGUgbWFwcywgYW5kIHRoZXJlIGFyZSBub3QgZW5jb2RpbmcgY2hhcmFj dGVycyBmb3IgYm5kDQo+IHJlZ2lzdGVycywgYWRkcmVzcyBtZXRob2Qgb3Igb3BlcmFuZCB0eXBl LiAgU28gdGhlIGtlcm5lbA0KPiBvcGNvZGUgbWFwIGlzIHVzaW5nICdHdicgZm9yIGJuZCByZWdp c3RlcnMgYW5kICdFdicgZm9yDQo+IGV2ZXJ5dGhpbmcgZWxzZS4gIFRoYXQgaXMgZmluZSBiZWNh dXNlIHRoZSBpbnN0cnVjdGlvbg0KPiBkZWNvZGVyIGRvZXMgbm90IHVzZSB0aGF0IGluZm9ybWF0 aW9uIGFueXdheSwgZXhjZXB0IGFzDQo+IGFuIGluZGljYXRpb24gdGhhdCB0aGVyZSBpcyBhIE1v ZFIvTSBieXRlLg0KPiANCj4gTmV2ZXJ0aGVsZXNzLCBpbiBzb21lIGNhc2VzIHRoZSAnR3YnIGFu ZCAnRXYnIGFyZSB0aGUgd3JvbmcNCj4gd2F5IGFyb3VuZCwgQk5ETERYIGFuZCBCTkRTVFggaGF2 ZSAyIG9wZXJhbmRzIG5vdCAzLCBhbmQgaXQNCj4gd291bGRuJ3QgaHVydCB0byBpZGVudGlmeSB0 aGUgbWFuZGF0b3J5IHByZWZpeGVzLg0KPiANCj4gVGhpcyBoYXMgbm8gZWZmZWN0IG9uIHRoZSBk ZWNvZGluZyBvZiB2YWxpZCBpbnN0cnVjdGlvbnMsDQo+IGJ1dCB0aGUgYWRkaXRpb24gb2YgdGhl IG1hbmRhdG9yeSBwcmVmaXhlcyB3aWxsIGNhdXNlIHNvbWUNCj4gaW52YWxpZCBpbnN0cnVjdGlv bnMgdG8gZXJyb3Igb3V0IHRoYXQgd291bGRuJ3QgaGF2ZQ0KPiBwcmV2aW91c2x5Lg0KPiANCj4g Tm90ZSB0aGF0IHBlcmYgdG9vbHMgaGFzIGEgY29weSBvZiB0aGUgaW5zdHJ1Y3Rpb24gZGVjb2Rl cg0KPiBhbmQgcHJvdmlkZXMgYSB0ZXN0IGZvciBuZXcgaW5zdHJ1Y3Rpb25zIHdoaWNoIGluY2x1 ZGVzIE1QWA0KPiBpbnN0cnVjdGlvbnMgZS5nLg0KPiANCj4gCSQgcGVyZiB0ZXN0ICJ4ODYgaW5z Ig0KPiAJMzk6IFRlc3QgeDg2IGluc3RydWN0aW9uIGRlY29kZXIgLSBuZXcgaW5zdHJ1Y3Rpb25z ICAgICAgICAgIDogT2sNCj4gDQo+IE9yIHRvIHNlZSB0aGUgZGV0YWlsczoNCj4gDQo+IAkkIHBl cmYgdGVzdCAtdiAieDg2IGlucyINCg0KVGhhbmtzIGZvciBmaXhpbmcgaXQgOikNCg0KQWNrZWQt Ynk6IE1hc2FtaSBIaXJhbWF0c3UgPG1hc2FtaS5oaXJhbWF0c3UucHRAaGl0YWNoaS5jb20+DQoN Cg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQWRyaWFuIEh1bnRlciA8YWRyaWFuLmh1bnRlckBpbnRl bC5jb20+DQo+IC0tLQ0KPiAgYXJjaC94ODYvbGliL3g4Ni1vcGNvZGUtbWFwLnR4dCAgICAgICAg ICAgICAgICAgICAgIHwgOCArKysrKystLQ0KPiAgdG9vbHMvcGVyZi91dGlsL2ludGVsLXB0LWRl Y29kZXIveDg2LW9wY29kZS1tYXAudHh0IHwgOCArKysrKystLQ0KPiAgMiBmaWxlcyBjaGFuZ2Vk LCAxMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2xpYi94ODYtb3Bjb2RlLW1hcC50eHQgYi9hcmNoL3g4Ni9saWIveDg2LW9wY29kZS1t YXAudHh0DQo+IGluZGV4IDgxNjQ4OGMwYjk3ZS4uYTAyYTE5NWQyMTljIDEwMDY0NA0KPiAtLS0g YS9hcmNoL3g4Ni9saWIveDg2LW9wY29kZS1tYXAudHh0DQo+ICsrKyBiL2FyY2gveDg2L2xpYi94 ODYtb3Bjb2RlLW1hcC50eHQNCj4gQEAgLTM1Myw4ICszNTMsMTIgQEAgQVZYY29kZTogMQ0KPiAg MTc6IHZtb3ZocHMgTXEsVnEgKHYxKSB8IHZtb3ZocGQgTXEsVnEgKDY2KSwodjEpDQo+ICAxODog R3JwMTYgKDFBKQ0KPiAgMTk6DQo+IC0xYTogQk5EQ0wgRXYsR3YgfCBCTkRDVSBFdixHdiB8IEJO RE1PViBHdixFdiB8IEJORExEWCBHdixFdixHdg0KPiAtMWI6IEJORENOIEV2LEd2IHwgQk5ETU9W IEV2LEd2IHwgQk5ETUsgR3YsRXYgfCBCTkRTVFggRXYsR1YsR3YNCj4gKyMgSW50ZWwgU0RNIG9w Y29kZSBtYXAgZG9lcyBub3QgbGlzdCBNUFggaW5zdHJ1Y3Rpb25zLiBGb3Igbm93IHVzaW5nIEd2 IGZvcg0KPiArIyBibmQgcmVnaXN0ZXJzIGFuZCBFdiBmb3IgZXZlcnl0aGluZyBlbHNlIGlzIE9L IGJlY2F1c2UgdGhlIGluc3RydWN0aW9uDQo+ICsjIGRlY29kZXIgZG9lcyBub3QgdXNlIHRoZSBp bmZvcm1hdGlvbiBleGNlcHQgYXMgYW4gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGlzDQo+ICsjIGEg TW9kUi9NIGJ5dGUuDQo+ICsxYTogQk5EQ0wgR3YsRXYgKEYzKSB8IEJORENVIEd2LEV2IChGMikg fCBCTkRNT1YgR3YsRXYgKDY2KSB8IEJORExEWCBHdixFdg0KPiArMWI6IEJORENOIEd2LEV2IChG MikgfCBCTkRNT1YgRXYsR3YgKDY2KSB8IEJORE1LIEd2LEV2IChGMykgfCBCTkRTVFggRXYsR3YN Cj4gIDFjOg0KPiAgMWQ6DQo+ICAxZToNCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9p bnRlbC1wdC1kZWNvZGVyL3g4Ni1vcGNvZGUtbWFwLnR4dCBiL3Rvb2xzL3BlcmYvdXRpbC9pbnRl bC1wdC1kZWNvZGVyL3g4Ni1vcGNvZGUtbWFwLnR4dA0KPiBpbmRleCA4MTY0ODhjMGI5N2UuLmEw MmExOTVkMjE5YyAxMDA2NDQNCj4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL2ludGVsLXB0LWRlY29k ZXIveDg2LW9wY29kZS1tYXAudHh0DQo+ICsrKyBiL3Rvb2xzL3BlcmYvdXRpbC9pbnRlbC1wdC1k ZWNvZGVyL3g4Ni1vcGNvZGUtbWFwLnR4dA0KPiBAQCAtMzUzLDggKzM1MywxMiBAQCBBVlhjb2Rl OiAxDQo+ICAxNzogdm1vdmhwcyBNcSxWcSAodjEpIHwgdm1vdmhwZCBNcSxWcSAoNjYpLCh2MSkN Cj4gIDE4OiBHcnAxNiAoMUEpDQo+ICAxOToNCj4gLTFhOiBCTkRDTCBFdixHdiB8IEJORENVIEV2 LEd2IHwgQk5ETU9WIEd2LEV2IHwgQk5ETERYIEd2LEV2LEd2DQo+IC0xYjogQk5EQ04gRXYsR3Yg fCBCTkRNT1YgRXYsR3YgfCBCTkRNSyBHdixFdiB8IEJORFNUWCBFdixHVixHdg0KPiArIyBJbnRl bCBTRE0gb3Bjb2RlIG1hcCBkb2VzIG5vdCBsaXN0IE1QWCBpbnN0cnVjdGlvbnMuIEZvciBub3cg dXNpbmcgR3YgZm9yDQo+ICsjIGJuZCByZWdpc3RlcnMgYW5kIEV2IGZvciBldmVyeXRoaW5nIGVs c2UgaXMgT0sgYmVjYXVzZSB0aGUgaW5zdHJ1Y3Rpb24NCj4gKyMgZGVjb2RlciBkb2VzIG5vdCB1 c2UgdGhlIGluZm9ybWF0aW9uIGV4Y2VwdCBhcyBhbiBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgaXMN Cj4gKyMgYSBNb2RSL00gYnl0ZS4NCj4gKzFhOiBCTkRDTCBHdixFdiAoRjMpIHwgQk5EQ1UgR3Ys RXYgKEYyKSB8IEJORE1PViBHdixFdiAoNjYpIHwgQk5ETERYIEd2LEV2DQo+ICsxYjogQk5EQ04g R3YsRXYgKEYyKSB8IEJORE1PViBFdixHdiAoNjYpIHwgQk5ETUsgR3YsRXYgKEYzKSB8IEJORFNU WCBFdixHdg0KPiAgMWM6DQo+ICAxZDoNCj4gIDFlOg0KPiAtLQ0KPiAxLjkuMQ0KDQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web