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 1483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1494 void Assembler::jmp(Handle<Code> code, RelocInfo::Mode rmode) { | 1494 void Assembler::jmp(Handle<Code> code, RelocInfo::Mode rmode) { |
1495 EnsureSpace ensure_space(this); | 1495 EnsureSpace ensure_space(this); |
1496 ASSERT(RelocInfo::IsCodeTarget(rmode)); | 1496 ASSERT(RelocInfo::IsCodeTarget(rmode)); |
1497 EMIT(0xE9); | 1497 EMIT(0xE9); |
1498 emit(reinterpret_cast<intptr_t>(code.location()), rmode); | 1498 emit(reinterpret_cast<intptr_t>(code.location()), rmode); |
1499 } | 1499 } |
1500 | 1500 |
1501 | 1501 |
1502 void Assembler::j(Condition cc, Label* L, Label::Distance distance) { | 1502 void Assembler::j(Condition cc, Label* L, Label::Distance distance) { |
1503 EnsureSpace ensure_space(this); | 1503 EnsureSpace ensure_space(this); |
1504 ASSERT(0 <= cc && cc < 16); | 1504 ASSERT(0 <= cc && static_cast<int>(cc) < 16); |
1505 if (L->is_bound()) { | 1505 if (L->is_bound()) { |
1506 const int short_size = 2; | 1506 const int short_size = 2; |
1507 const int long_size = 6; | 1507 const int long_size = 6; |
1508 int offs = L->pos() - pc_offset(); | 1508 int offs = L->pos() - pc_offset(); |
1509 ASSERT(offs <= 0); | 1509 ASSERT(offs <= 0); |
1510 if (is_int8(offs - short_size)) { | 1510 if (is_int8(offs - short_size)) { |
1511 // 0111 tttn #8-bit disp | 1511 // 0111 tttn #8-bit disp |
1512 EMIT(0x70 | cc); | 1512 EMIT(0x70 | cc); |
1513 EMIT((offs - short_size) & 0xFF); | 1513 EMIT((offs - short_size) & 0xFF); |
1514 } else { | 1514 } else { |
(...skipping 11 matching lines...) Expand all Loading... |
1526 // is the same however, seems to be rather unlikely case. | 1526 // is the same however, seems to be rather unlikely case. |
1527 EMIT(0x0F); | 1527 EMIT(0x0F); |
1528 EMIT(0x80 | cc); | 1528 EMIT(0x80 | cc); |
1529 emit_disp(L, Displacement::OTHER); | 1529 emit_disp(L, Displacement::OTHER); |
1530 } | 1530 } |
1531 } | 1531 } |
1532 | 1532 |
1533 | 1533 |
1534 void Assembler::j(Condition cc, byte* entry, RelocInfo::Mode rmode) { | 1534 void Assembler::j(Condition cc, byte* entry, RelocInfo::Mode rmode) { |
1535 EnsureSpace ensure_space(this); | 1535 EnsureSpace ensure_space(this); |
1536 ASSERT((0 <= cc) && (cc < 16)); | 1536 ASSERT((0 <= cc) && (static_cast<int>(cc) < 16)); |
1537 // 0000 1111 1000 tttn #32-bit disp. | 1537 // 0000 1111 1000 tttn #32-bit disp. |
1538 EMIT(0x0F); | 1538 EMIT(0x0F); |
1539 EMIT(0x80 | cc); | 1539 EMIT(0x80 | cc); |
1540 emit(entry - (pc_ + sizeof(int32_t)), rmode); | 1540 emit(entry - (pc_ + sizeof(int32_t)), rmode); |
1541 } | 1541 } |
1542 | 1542 |
1543 | 1543 |
1544 void Assembler::j(Condition cc, Handle<Code> code) { | 1544 void Assembler::j(Condition cc, Handle<Code> code) { |
1545 EnsureSpace ensure_space(this); | 1545 EnsureSpace ensure_space(this); |
1546 // 0000 1111 1000 tttn #32-bit disp | 1546 // 0000 1111 1000 tttn #32-bit disp |
(...skipping 1099 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2646 fprintf(coverage_log, "%s\n", file_line); | 2646 fprintf(coverage_log, "%s\n", file_line); |
2647 fflush(coverage_log); | 2647 fflush(coverage_log); |
2648 } | 2648 } |
2649 } | 2649 } |
2650 | 2650 |
2651 #endif | 2651 #endif |
2652 | 2652 |
2653 } } // namespace v8::internal | 2653 } } // namespace v8::internal |
2654 | 2654 |
2655 #endif // V8_TARGET_ARCH_IA32 | 2655 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |