| OLD | NEW |
| 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 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 | 568 |
| 569 | 569 |
| 570 void Assembler::leave() { | 570 void Assembler::leave() { |
| 571 EnsureSpace ensure_space(this); | 571 EnsureSpace ensure_space(this); |
| 572 last_pc_ = pc_; | 572 last_pc_ = pc_; |
| 573 EMIT(0xC9); | 573 EMIT(0xC9); |
| 574 } | 574 } |
| 575 | 575 |
| 576 | 576 |
| 577 void Assembler::mov_b(Register dst, const Operand& src) { | 577 void Assembler::mov_b(Register dst, const Operand& src) { |
| 578 ASSERT(dst.code() < 4); |
| 578 EnsureSpace ensure_space(this); | 579 EnsureSpace ensure_space(this); |
| 579 last_pc_ = pc_; | 580 last_pc_ = pc_; |
| 580 EMIT(0x8A); | 581 EMIT(0x8A); |
| 581 emit_operand(dst, src); | 582 emit_operand(dst, src); |
| 582 } | 583 } |
| 583 | 584 |
| 584 | 585 |
| 585 void Assembler::mov_b(const Operand& dst, int8_t imm8) { | 586 void Assembler::mov_b(const Operand& dst, int8_t imm8) { |
| 586 EnsureSpace ensure_space(this); | 587 EnsureSpace ensure_space(this); |
| 587 last_pc_ = pc_; | 588 last_pc_ = pc_; |
| 588 EMIT(0xC6); | 589 EMIT(0xC6); |
| 589 emit_operand(eax, dst); | 590 emit_operand(eax, dst); |
| 590 EMIT(imm8); | 591 EMIT(imm8); |
| 591 } | 592 } |
| 592 | 593 |
| 593 | 594 |
| 594 void Assembler::mov_b(const Operand& dst, Register src) { | 595 void Assembler::mov_b(const Operand& dst, Register src) { |
| 596 ASSERT(src.code() < 4); |
| 595 EnsureSpace ensure_space(this); | 597 EnsureSpace ensure_space(this); |
| 596 last_pc_ = pc_; | 598 last_pc_ = pc_; |
| 597 EMIT(0x88); | 599 EMIT(0x88); |
| 598 emit_operand(src, dst); | 600 emit_operand(src, dst); |
| 599 } | 601 } |
| 600 | 602 |
| 601 | 603 |
| 602 void Assembler::mov_w(Register dst, const Operand& src) { | 604 void Assembler::mov_w(Register dst, const Operand& src) { |
| 603 EnsureSpace ensure_space(this); | 605 EnsureSpace ensure_space(this); |
| 604 last_pc_ = pc_; | 606 last_pc_ = pc_; |
| (...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1201 | 1203 |
| 1202 void Assembler::sub(Register dst, const Operand& src) { | 1204 void Assembler::sub(Register dst, const Operand& src) { |
| 1203 EnsureSpace ensure_space(this); | 1205 EnsureSpace ensure_space(this); |
| 1204 last_pc_ = pc_; | 1206 last_pc_ = pc_; |
| 1205 EMIT(0x2B); | 1207 EMIT(0x2B); |
| 1206 emit_operand(dst, src); | 1208 emit_operand(dst, src); |
| 1207 } | 1209 } |
| 1208 | 1210 |
| 1209 | 1211 |
| 1210 void Assembler::subb(Register dst, const Operand& src) { | 1212 void Assembler::subb(Register dst, const Operand& src) { |
| 1213 ASSERT(dst.code() < 4); |
| 1211 EnsureSpace ensure_space(this); | 1214 EnsureSpace ensure_space(this); |
| 1212 last_pc_ = pc_; | 1215 last_pc_ = pc_; |
| 1213 EMIT(0x2A); | 1216 EMIT(0x2A); |
| 1214 emit_operand(dst, src); | 1217 emit_operand(dst, src); |
| 1215 } | 1218 } |
| 1216 | 1219 |
| 1217 | 1220 |
| 1218 void Assembler::sub(const Operand& dst, Register src) { | 1221 void Assembler::sub(const Operand& dst, Register src) { |
| 1219 EnsureSpace ensure_space(this); | 1222 EnsureSpace ensure_space(this); |
| 1220 last_pc_ = pc_; | 1223 last_pc_ = pc_; |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1593 EnsureSpace ensure_space(this); | 1596 EnsureSpace ensure_space(this); |
| 1594 last_pc_ = pc_; | 1597 last_pc_ = pc_; |
| 1595 if (FLAG_emit_branch_hints && hint != no_hint) EMIT(hint); | 1598 if (FLAG_emit_branch_hints && hint != no_hint) EMIT(hint); |
| 1596 // 0000 1111 1000 tttn #32-bit disp | 1599 // 0000 1111 1000 tttn #32-bit disp |
| 1597 EMIT(0x0F); | 1600 EMIT(0x0F); |
| 1598 EMIT(0x80 | cc); | 1601 EMIT(0x80 | cc); |
| 1599 emit(reinterpret_cast<intptr_t>(code.location()), RelocInfo::CODE_TARGET); | 1602 emit(reinterpret_cast<intptr_t>(code.location()), RelocInfo::CODE_TARGET); |
| 1600 } | 1603 } |
| 1601 | 1604 |
| 1602 | 1605 |
| 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 | |
| 1615 // FPU instructions | 1606 // FPU instructions |
| 1616 | 1607 |
| 1617 | |
| 1618 void Assembler::fld(int i) { | 1608 void Assembler::fld(int i) { |
| 1619 EnsureSpace ensure_space(this); | 1609 EnsureSpace ensure_space(this); |
| 1620 last_pc_ = pc_; | 1610 last_pc_ = pc_; |
| 1621 emit_farith(0xD9, 0xC0, i); | 1611 emit_farith(0xD9, 0xC0, i); |
| 1622 } | 1612 } |
| 1623 | 1613 |
| 1624 | 1614 |
| 1625 void Assembler::fld1() { | 1615 void Assembler::fld1() { |
| 1626 EnsureSpace ensure_space(this); | 1616 EnsureSpace ensure_space(this); |
| 1627 last_pc_ = pc_; | 1617 last_pc_ = pc_; |
| (...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2376 push_insn[1] = 13; // Skip over coverage insns. | 2366 push_insn[1] = 13; // Skip over coverage insns. |
| 2377 if (coverage_log != NULL) { | 2367 if (coverage_log != NULL) { |
| 2378 fprintf(coverage_log, "%s\n", file_line); | 2368 fprintf(coverage_log, "%s\n", file_line); |
| 2379 fflush(coverage_log); | 2369 fflush(coverage_log); |
| 2380 } | 2370 } |
| 2381 } | 2371 } |
| 2382 | 2372 |
| 2383 #endif | 2373 #endif |
| 2384 | 2374 |
| 2385 } } // namespace v8::internal | 2375 } } // namespace v8::internal |
| OLD | NEW |