summaryrefslogtreecommitdiffstats
path: root/compiler/dex/quick/codegen_util.cc
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-04-30 19:04:27 -0700
committerIan Rogers <irogers@google.com>2014-05-01 08:31:01 -0700
commitff093b31d75658c3404f9b51ee45760f346f06d9 (patch)
tree16a11ff5a78862defcc169b0af2901360a57ab6a /compiler/dex/quick/codegen_util.cc
parentb3016551e5f264264dbb633a1ddf03ac97f9c66c (diff)
downloadandroid_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.cc11
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;
}