Index: src/x64/assembler-x64.cc |
=================================================================== |
--- src/x64/assembler-x64.cc (revision 12237) |
+++ src/x64/assembler-x64.cc (working copy) |
@@ -350,7 +350,8 @@ |
: AssemblerBase(arg_isolate), |
code_targets_(100), |
positions_recorder_(this), |
- emit_debug_code_(FLAG_debug_code) { |
+ emit_debug_code_(FLAG_debug_code), |
+ predictable_code_size_(false) { |
if (buffer == NULL) { |
// Do our own buffer management. |
if (buffer_size <= kMinimalBufferSize) { |
@@ -1234,7 +1235,7 @@ |
const int long_size = 6; |
int offs = L->pos() - pc_offset(); |
ASSERT(offs <= 0); |
- if (is_int8(offs - short_size)) { |
+ if (is_int8(offs - short_size) && !predictable_code_size_) { |
Jakob Kummerow
2012/07/31 14:44:58
A comment would be nice about why we have to disab
|
// 0111 tttn #8-bit disp. |
emit(0x70 | cc); |
emit((offs - short_size) & 0xFF); |
@@ -1291,7 +1292,7 @@ |
if (L->is_bound()) { |
int offs = L->pos() - pc_offset() - 1; |
ASSERT(offs <= 0); |
- if (is_int8(offs - short_size)) { |
+ if (is_int8(offs - short_size) && !predictable_code_size_) { |
// 1110 1011 #8-bit disp. |
emit(0xEB); |
emit((offs - short_size) & 0xFF); |