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 are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // 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 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 // The relocation writer's position must be kGap bytes above the end of | 500 // The relocation writer's position must be kGap bytes above the end of |
501 // the generated instructions. This leaves enough space for the | 501 // the generated instructions. This leaves enough space for the |
502 // longest possible x64 instruction, 15 bytes, and the longest possible | 502 // longest possible x64 instruction, 15 bytes, and the longest possible |
503 // relocation information encoding, RelocInfoWriter::kMaxLength == 16. | 503 // relocation information encoding, RelocInfoWriter::kMaxLength == 16. |
504 // (There is a 15 byte limit on x64 instruction length that rules out some | 504 // (There is a 15 byte limit on x64 instruction length that rules out some |
505 // otherwise valid instructions.) | 505 // otherwise valid instructions.) |
506 // This allows for a single, fast space check per instruction. | 506 // This allows for a single, fast space check per instruction. |
507 static const int kGap = 32; | 507 static const int kGap = 32; |
508 | 508 |
509 public: | 509 public: |
| 510 using AssemblerBase::FlushICache; |
| 511 using AssemblerBase::FlushICacheWithoutIsolate; |
| 512 |
510 // Create an assembler. Instructions and relocation information are emitted | 513 // Create an assembler. Instructions and relocation information are emitted |
511 // into a buffer, with the instructions starting from the beginning and the | 514 // into a buffer, with the instructions starting from the beginning and the |
512 // relocation information starting from the end of the buffer. See CodeDesc | 515 // relocation information starting from the end of the buffer. See CodeDesc |
513 // for a detailed comment on the layout (globals.h). | 516 // for a detailed comment on the layout (globals.h). |
514 // | 517 // |
515 // If the provided buffer is NULL, the assembler allocates and grows its own | 518 // If the provided buffer is NULL, the assembler allocates and grows its own |
516 // buffer, and buffer_size determines the initial buffer size. The buffer is | 519 // buffer, and buffer_size determines the initial buffer size. The buffer is |
517 // owned by the assembler and deallocated upon destruction of the assembler. | 520 // owned by the assembler and deallocated upon destruction of the assembler. |
518 // | 521 // |
519 // If the provided buffer is not NULL, the assembler uses the provided buffer | 522 // If the provided buffer is not NULL, the assembler uses the provided buffer |
(...skipping 1624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2144 private: | 2147 private: |
2145 Assembler* assembler_; | 2148 Assembler* assembler_; |
2146 #ifdef DEBUG | 2149 #ifdef DEBUG |
2147 int space_before_; | 2150 int space_before_; |
2148 #endif | 2151 #endif |
2149 }; | 2152 }; |
2150 | 2153 |
2151 } } // namespace v8::internal | 2154 } } // namespace v8::internal |
2152 | 2155 |
2153 #endif // V8_X64_ASSEMBLER_X64_H_ | 2156 #endif // V8_X64_ASSEMBLER_X64_H_ |
OLD | NEW |