[aarch64-port-dev ] C1: Fix overrun in object initialization.
Andrew Haley
aph at redhat.com
Mon Dec 2 04:44:21 PST 2013
In a couple of places object initialization writes beyond the end of
an object. Fixed thusly.
Andrew.
# HG changeset patch
# User aph
# Date 1385984660 0
# Node ID ba11701840f75b9a6d27cc2076c59c8b6cfa1733
# Parent c730cfab0d9a387c0f16512ab8b863a9fa9c6364
C1: Fix overrun in object initialization.
diff -r c730cfab0d9a -r ba11701840f7 src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp Thu Nov 28 18:46:18 2013 +0000
+++ b/src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp Mon Dec 02 11:44:20 2013 +0000
@@ -319,7 +319,7 @@
} else if (con_size_in_bytes <= threshold) {
// use explicit null stores
int i = hdr_size_in_bytes;
- if (i < con_size_in_bytes && i % (2 * BytesPerWord)) {
+ if (i < con_size_in_bytes && (con_size_in_bytes % (2 * BytesPerWord))) {
str(zr, Address(obj, i));
i += BytesPerWord;
}
diff -r c730cfab0d9a -r ba11701840f7 src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Thu Nov 28 18:46:18 2013 +0000
+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp Mon Dec 02 11:44:20 2013 +0000
@@ -1941,7 +1941,7 @@
void MacroAssembler::store_klass_gap(Register dst, Register src) {
if (UseCompressedClassPointers) {
// Store to klass gap in destination
- str(src, Address(dst, oopDesc::klass_gap_offset_in_bytes()));
+ strw(src, Address(dst, oopDesc::klass_gap_offset_in_bytes()));
}
}
More information about the aarch64-port-dev
mailing list