Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(825)

Side by Side Diff: src/arm/full-codegen-arm.cc

Issue 6682026: Fix SmiCompare on 64 bit to distinguish between comparisons where... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3113 matching lines...) Expand 10 before | Expand all | Expand 10 after
3124 Register index1 = r1; 3124 Register index1 = r1;
3125 Register index2 = r2; 3125 Register index2 = r2;
3126 Register elements = r3; 3126 Register elements = r3;
3127 Register scratch1 = r4; 3127 Register scratch1 = r4;
3128 Register scratch2 = r5; 3128 Register scratch2 = r5;
3129 3129
3130 __ ldr(object, MemOperand(sp, 2 * kPointerSize)); 3130 __ ldr(object, MemOperand(sp, 2 * kPointerSize));
3131 // Fetch the map and check if array is in fast case. 3131 // Fetch the map and check if array is in fast case.
3132 // Check that object doesn't require security checks and 3132 // Check that object doesn't require security checks and
3133 // has no indexed interceptor. 3133 // has no indexed interceptor.
3134 __ CompareObjectType(object, scratch1, scratch2, FIRST_JS_OBJECT_TYPE); 3134 __ CompareObjectType(object, scratch1, scratch2, JS_ARRAY_TYPE);
3135 __ b(lt, &slow_case); 3135 __ b(ne, &slow_case);
3136 // Map is now in scratch1. 3136 // Map is now in scratch1.
3137 3137
3138 __ ldrb(scratch2, FieldMemOperand(scratch1, Map::kBitFieldOffset)); 3138 __ ldrb(scratch2, FieldMemOperand(scratch1, Map::kBitFieldOffset));
3139 __ tst(scratch2, Operand(KeyedLoadIC::kSlowCaseBitFieldMask)); 3139 __ tst(scratch2, Operand(KeyedLoadIC::kSlowCaseBitFieldMask));
3140 __ b(ne, &slow_case); 3140 __ b(ne, &slow_case);
3141 3141
3142 // Check the object's elements are in fast case and writable. 3142 // Check the object's elements are in fast case and writable.
3143 __ ldr(elements, FieldMemOperand(object, JSObject::kElementsOffset)); 3143 __ ldr(elements, FieldMemOperand(object, JSObject::kElementsOffset));
3144 __ ldr(scratch1, FieldMemOperand(elements, HeapObject::kMapOffset)); 3144 __ ldr(scratch1, FieldMemOperand(elements, HeapObject::kMapOffset));
3145 __ LoadRoot(ip, Heap::kFixedArrayMapRootIndex); 3145 __ LoadRoot(ip, Heap::kFixedArrayMapRootIndex);
(...skipping 1136 matching lines...) Expand 10 before | Expand all | Expand 10 after
4282 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value. 4282 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value.
4283 __ add(pc, r1, Operand(masm_->CodeObject())); 4283 __ add(pc, r1, Operand(masm_->CodeObject()));
4284 } 4284 }
4285 4285
4286 4286
4287 #undef __ 4287 #undef __
4288 4288
4289 } } // namespace v8::internal 4289 } } // namespace v8::internal
4290 4290
4291 #endif // V8_TARGET_ARCH_ARM 4291 #endif // V8_TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698