diff options
author | Ian Rogers <irogers@google.com> | 2014-04-30 19:04:27 -0700 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-05-01 08:31:01 -0700 |
commit | ff093b31d75658c3404f9b51ee45760f346f06d9 (patch) | |
tree | 16a11ff5a78862defcc169b0af2901360a57ab6a /compiler/dex/quick/codegen_util.cc | |
parent | b3016551e5f264264dbb633a1ddf03ac97f9c66c (diff) | |
download | android_art-ff093b31d75658c3404f9b51ee45760f346f06d9.tar.gz android_art-ff093b31d75658c3404f9b51ee45760f346f06d9.tar.bz2 android_art-ff093b31d75658c3404f9b51ee45760f346f06d9.zip |
Fix a few 64-bit compilation of 32-bit code issues.
Bug: 13423943
Change-Id: I939389413af0a68c0d95b23cd598b7c42afa4383
Diffstat (limited to 'compiler/dex/quick/codegen_util.cc')
-rw-r--r-- | compiler/dex/quick/codegen_util.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/dex/quick/codegen_util.cc b/compiler/dex/quick/codegen_util.cc index c3f9b673d2..b030bb4ec8 100644 --- a/compiler/dex/quick/codegen_util.cc +++ b/compiler/dex/quick/codegen_util.cc @@ -555,8 +555,8 @@ static int AssignLiteralOffsetCommon(LIR* lir, CodeOffset offset) { return offset; } -static int AssignLiteralPointerOffsetCommon(LIR* lir, CodeOffset offset) { - unsigned int element_size = sizeof(void*); +static int AssignLiteralPointerOffsetCommon(LIR* lir, CodeOffset offset, + unsigned int element_size) { // Align to natural pointer size. offset = (offset + (element_size - 1)) & ~(element_size - 1); for (; lir != NULL; lir = lir->next) { @@ -726,9 +726,10 @@ void Mir2Lir::CreateNativeGcMap() { /* Determine the offset of each literal field */ int Mir2Lir::AssignLiteralOffset(CodeOffset offset) { offset = AssignLiteralOffsetCommon(literal_list_, offset); - offset = AssignLiteralPointerOffsetCommon(code_literal_list_, offset); - offset = AssignLiteralPointerOffsetCommon(method_literal_list_, offset); - offset = AssignLiteralPointerOffsetCommon(class_literal_list_, offset); + unsigned int ptr_size = GetInstructionSetPointerSize(cu_->instruction_set); + offset = AssignLiteralPointerOffsetCommon(code_literal_list_, offset, ptr_size); + offset = AssignLiteralPointerOffsetCommon(method_literal_list_, offset, ptr_size); + offset = AssignLiteralPointerOffsetCommon(class_literal_list_, offset, ptr_size); return offset; } |