952f6b3ed1
This fix is was not included in the icedtea 7 patches, and possibly causes a crash on i686.
42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
diff --git jdk8/hotspot/src/share/vm/opto/output.cpp jdk8/hotspot/src/share/vm/opto/output.cpp
|
|
--- jdk8/hotspot/src/share/vm/opto/output.cpp
|
|
+++ jdk8/hotspot/src/share/vm/opto/output.cpp
|
|
@@ -344,11 +344,6 @@
|
|
uint* jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks);
|
|
uint* jmp_size = NEW_RESOURCE_ARRAY(uint,nblocks);
|
|
int* jmp_nidx = NEW_RESOURCE_ARRAY(int ,nblocks);
|
|
-
|
|
- // Collect worst case block paddings
|
|
- int* block_worst_case_pad = NEW_RESOURCE_ARRAY(int, nblocks);
|
|
- memset(block_worst_case_pad, 0, nblocks * sizeof(int));
|
|
-
|
|
DEBUG_ONLY( uint *jmp_target = NEW_RESOURCE_ARRAY(uint,nblocks); )
|
|
DEBUG_ONLY( uint *jmp_rule = NEW_RESOURCE_ARRAY(uint,nblocks); )
|
|
|
|
@@ -465,7 +460,6 @@
|
|
last_avoid_back_to_back_adr += max_loop_pad;
|
|
}
|
|
blk_size += max_loop_pad;
|
|
- block_worst_case_pad[i + 1] = max_loop_pad;
|
|
}
|
|
}
|
|
|
|
@@ -505,16 +499,9 @@
|
|
if (bnum > i) { // adjust following block's offset
|
|
offset -= adjust_block_start;
|
|
}
|
|
-
|
|
- // This block can be a loop header, account for the padding
|
|
- // in the previous block.
|
|
- int block_padding = block_worst_case_pad[i];
|
|
- assert(i == 0 || block_padding == 0 || br_offs >= block_padding, "Should have at least a padding on top");
|
|
// In the following code a nop could be inserted before
|
|
// the branch which will increase the backward distance.
|
|
- bool needs_padding = ((uint)(br_offs - block_padding) == last_may_be_short_branch_adr);
|
|
- assert(!needs_padding || jmp_offset[i] == 0, "padding only branches at the beginning of block");
|
|
-
|
|
+ bool needs_padding = ((uint)br_offs == last_may_be_short_branch_adr);
|
|
if (needs_padding && offset <= 0)
|
|
offset -= nop_size;
|
|
|