Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1217554 > unrolled thread

[PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions

Started byAdrian Hunter <adrian.hunter@intel.com>
First post2015-09-02 14:20 +0200
Last post2015-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.


Contents

  [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

#1217554 — [PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions

FromAdrian Hunter <adrian.hunter@intel.com>
Date2015-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]


#1218413 — RE: [PATCH V2 3/7] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-03 18:10 +0200
SubjectRE: [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