Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Unified Diff: src/assembler-ia32.cc

Issue 12807: * Fixes and tweaks to regexp-ia32. (Closed)
Patch Set: Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/assembler-ia32.cc
diff --git a/src/assembler-ia32.cc b/src/assembler-ia32.cc
index 4c5ef16b1c4a98cafbd1a8f2a3f1996a5fa1424c..c7571e31354ccf75801d676364cecf7566aac883 100644
--- a/src/assembler-ia32.cc
+++ b/src/assembler-ia32.cc
@@ -840,6 +840,26 @@ void Assembler::and_(const Operand& dst, Register src) {
}
+void Assembler::cmpb(const Operand& op, int8_t imm8) {
+ EnsureSpace ensure_space(this);
+ last_pc_ = pc_;
+ EMIT(0x80);
+ emit_operand(edi, op); // edi == 7
+ EMIT(imm8);
+}
+
+
+void Assembler::cmpw(const Operand& op, Immediate imm16) {
+ ASSERT(imm16.is_int16());
+ EnsureSpace ensure_space(this);
+ last_pc_ = pc_;
+ EMIT(0x66);
+ EMIT(0x81);
+ emit_operand(edi, op);
+ emit_w(imm16);
+}
+
+
void Assembler::cmp(Register reg, int32_t imm32) {
EnsureSpace ensure_space(this);
last_pc_ = pc_;
@@ -877,12 +897,13 @@ void Assembler::rep_cmpsb() {
EMIT(0xA6); // CMPSB
}
-void Assembler::rep_cmpsl() {
+void Assembler::rep_cmpsw() {
EnsureSpace ensure_space(this);
last_pc_ = pc_;
EMIT(0xFC); // CLD to ensure forward operation
EMIT(0xF3); // REP
- EMIT(0xA7); // CMPSW
+ EMIT(0x66); // Operand size overide.
+ EMIT(0xA7); // CMPS
}
« no previous file with comments | « src/assembler-ia32.h ('k') | src/jsregexp.cc » ('j') | src/regexp-macro-assembler-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698