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

Side by Side Diff: src/ia32/assembler-ia32.cc

Issue 525115: Add generated code for ascii string comparison... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 11 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/codegen-ia32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 1189 matching lines...) Expand 10 before | Expand all | Expand 10 after
1200 1200
1201 1201
1202 void Assembler::sub(Register dst, const Operand& src) { 1202 void Assembler::sub(Register dst, const Operand& src) {
1203 EnsureSpace ensure_space(this); 1203 EnsureSpace ensure_space(this);
1204 last_pc_ = pc_; 1204 last_pc_ = pc_;
1205 EMIT(0x2B); 1205 EMIT(0x2B);
1206 emit_operand(dst, src); 1206 emit_operand(dst, src);
1207 } 1207 }
1208 1208
1209 1209
1210 void Assembler::subb(Register dst, const Operand& src) {
1211 EnsureSpace ensure_space(this);
1212 last_pc_ = pc_;
1213 EMIT(0x2A);
1214 emit_operand(dst, src);
1215 }
1216
1217
1210 void Assembler::sub(const Operand& dst, Register src) { 1218 void Assembler::sub(const Operand& dst, Register src) {
1211 EnsureSpace ensure_space(this); 1219 EnsureSpace ensure_space(this);
1212 last_pc_ = pc_; 1220 last_pc_ = pc_;
1213 EMIT(0x29); 1221 EMIT(0x29);
1214 emit_operand(src, dst); 1222 emit_operand(src, dst);
1215 } 1223 }
1216 1224
1217 1225
1218 void Assembler::test(Register reg, const Immediate& imm) { 1226 void Assembler::test(Register reg, const Immediate& imm) {
1219 EnsureSpace ensure_space(this); 1227 EnsureSpace ensure_space(this);
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 EnsureSpace ensure_space(this); 1593 EnsureSpace ensure_space(this);
1586 last_pc_ = pc_; 1594 last_pc_ = pc_;
1587 if (FLAG_emit_branch_hints && hint != no_hint) EMIT(hint); 1595 if (FLAG_emit_branch_hints && hint != no_hint) EMIT(hint);
1588 // 0000 1111 1000 tttn #32-bit disp 1596 // 0000 1111 1000 tttn #32-bit disp
1589 EMIT(0x0F); 1597 EMIT(0x0F);
1590 EMIT(0x80 | cc); 1598 EMIT(0x80 | cc);
1591 emit(reinterpret_cast<intptr_t>(code.location()), RelocInfo::CODE_TARGET); 1599 emit(reinterpret_cast<intptr_t>(code.location()), RelocInfo::CODE_TARGET);
1592 } 1600 }
1593 1601
1594 1602
1603 void Assembler::loope(Label* L) {
1604 EnsureSpace ensure_space(this);
1605 last_pc_ = pc_;
1606 // Only short backward jumps.
1607 ASSERT(L->is_bound());
1608 int offs = L->pos() - pc_offset();
1609 const int kLoopInstructionSize = 2;
1610 ASSERT(is_int8(offs - kLoopInstructionSize));
1611 EMIT(0xE1);
1612 EMIT((offs - kLoopInstructionSize) & 0xFF);
1613 }
1614
1595 // FPU instructions 1615 // FPU instructions
1596 1616
1597 1617
1598 void Assembler::fld(int i) { 1618 void Assembler::fld(int i) {
1599 EnsureSpace ensure_space(this); 1619 EnsureSpace ensure_space(this);
1600 last_pc_ = pc_; 1620 last_pc_ = pc_;
1601 emit_farith(0xD9, 0xC0, i); 1621 emit_farith(0xD9, 0xC0, i);
1602 } 1622 }
1603 1623
1604 1624
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
2356 push_insn[1] = 13; // Skip over coverage insns. 2376 push_insn[1] = 13; // Skip over coverage insns.
2357 if (coverage_log != NULL) { 2377 if (coverage_log != NULL) {
2358 fprintf(coverage_log, "%s\n", file_line); 2378 fprintf(coverage_log, "%s\n", file_line);
2359 fflush(coverage_log); 2379 fflush(coverage_log);
2360 } 2380 }
2361 } 2381 }
2362 2382
2363 #endif 2383 #endif
2364 2384
2365 } } // namespace v8::internal 2385 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ia32/assembler-ia32.h ('k') | src/ia32/codegen-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698