From 4028a6c83a339036864999fdfd2855b012a9f1a7 Mon Sep 17 00:00:00 2001 From: Mark Mendell Date: Wed, 19 Feb 2014 20:06:20 -0800 Subject: Inline x86 String.indexOf Take advantage of the presence of a constant search char or start index to tune the generated code. Change-Id: I0adcf184fb91b899a95aa4d8ef044a14deb51d88 Signed-off-by: Mark Mendell --- disassembler/disassembler_x86.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'disassembler') diff --git a/disassembler/disassembler_x86.cc b/disassembler/disassembler_x86.cc index b6ddc95769..d86ba7b77a 100644 --- a/disassembler/disassembler_x86.cc +++ b/disassembler/disassembler_x86.cc @@ -633,6 +633,9 @@ DISASSEMBLER_ENTRY(cmp, case 0x99: opcode << "cdq"; break; + case 0xAF: + opcode << (prefix[2] == 0x66 ? "scasw" : "scasl"); + break; case 0xB0: case 0xB1: case 0xB2: case 0xB3: case 0xB4: case 0xB5: case 0xB6: case 0xB7: opcode << "mov"; immediate_bytes = 1; @@ -693,6 +696,7 @@ DISASSEMBLER_ENTRY(cmp, has_modrm = true; reg_is_opcode = true; break; + case 0xE3: opcode << "jecxz"; branch_bytes = 1; break; case 0xE8: opcode << "call"; branch_bytes = 4; break; case 0xE9: opcode << "jmp"; branch_bytes = 4; break; case 0xEB: opcode << "jmp"; branch_bytes = 1; break; -- cgit v1.2.3