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

Side by Side Diff: src/arm/assembler-arm.cc

Issue 2493173002: [turbofan] Fix more -Wsign-compare warnings. (Closed)
Patch Set: rebase Created 4 years, 1 month 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
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/deoptimizer-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 4262 matching lines...) Expand 10 before | Expand all | Expand 10 after
4273 if ((dist32 >= kMaxDistToIntPool - kCheckPoolInterval) || 4273 if ((dist32 >= kMaxDistToIntPool - kCheckPoolInterval) ||
4274 (!require_jump && (dist32 >= kMaxDistToIntPool / 2))) { 4274 (!require_jump && (dist32 >= kMaxDistToIntPool / 2))) {
4275 need_emit = true; 4275 need_emit = true;
4276 } 4276 }
4277 } 4277 }
4278 if (!need_emit) return; 4278 if (!need_emit) return;
4279 } 4279 }
4280 4280
4281 // Deduplicate constants. 4281 // Deduplicate constants.
4282 int size_after_marker = estimated_size_after_marker; 4282 int size_after_marker = estimated_size_after_marker;
4283 for (int i = 0; i < pending_64_bit_constants_.size(); i++) { 4283 for (size_t i = 0; i < pending_64_bit_constants_.size(); i++) {
4284 ConstantPoolEntry& entry = pending_64_bit_constants_[i]; 4284 ConstantPoolEntry& entry = pending_64_bit_constants_[i];
4285 DCHECK(!entry.is_merged()); 4285 DCHECK(!entry.is_merged());
4286 for (int j = 0; j < i; j++) { 4286 for (size_t j = 0; j < i; j++) {
4287 if (entry.value64() == pending_64_bit_constants_[j].value64()) { 4287 if (entry.value64() == pending_64_bit_constants_[j].value64()) {
4288 DCHECK(!pending_64_bit_constants_[j].is_merged()); 4288 DCHECK(!pending_64_bit_constants_[j].is_merged());
4289 entry.set_merged_index(j); 4289 entry.set_merged_index(j);
4290 size_after_marker -= kDoubleSize; 4290 size_after_marker -= kDoubleSize;
4291 break; 4291 break;
4292 } 4292 }
4293 } 4293 }
4294 } 4294 }
4295 4295
4296 for (int i = 0; i < pending_32_bit_constants_.size(); i++) { 4296 for (size_t i = 0; i < pending_32_bit_constants_.size(); i++) {
4297 ConstantPoolEntry& entry = pending_32_bit_constants_[i]; 4297 ConstantPoolEntry& entry = pending_32_bit_constants_[i];
4298 DCHECK(!entry.is_merged()); 4298 DCHECK(!entry.is_merged());
4299 if (!entry.sharing_ok()) continue; 4299 if (!entry.sharing_ok()) continue;
4300 for (int j = 0; j < i; j++) { 4300 for (size_t j = 0; j < i; j++) {
4301 if (entry.value() == pending_32_bit_constants_[j].value()) { 4301 if (entry.value() == pending_32_bit_constants_[j].value()) {
4302 DCHECK(!pending_32_bit_constants_[j].is_merged()); 4302 DCHECK(!pending_32_bit_constants_[j].is_merged());
4303 entry.set_merged_index(j); 4303 entry.set_merged_index(j);
4304 size_after_marker -= kPointerSize; 4304 size_after_marker -= kPointerSize;
4305 break; 4305 break;
4306 } 4306 }
4307 } 4307 }
4308 } 4308 }
4309 4309
4310 int size = size_up_to_marker + size_after_marker; 4310 int size = size_up_to_marker + size_after_marker;
(...skipping 20 matching lines...) Expand all
4331 // The data size helps disassembly know what to print. 4331 // The data size helps disassembly know what to print.
4332 emit(kConstantPoolMarker | 4332 emit(kConstantPoolMarker |
4333 EncodeConstantPoolLength(size_after_marker / kPointerSize)); 4333 EncodeConstantPoolLength(size_after_marker / kPointerSize));
4334 4334
4335 if (require_64_bit_align) { 4335 if (require_64_bit_align) {
4336 emit(kConstantPoolMarker); 4336 emit(kConstantPoolMarker);
4337 } 4337 }
4338 4338
4339 // Emit 64-bit constant pool entries first: their range is smaller than 4339 // Emit 64-bit constant pool entries first: their range is smaller than
4340 // 32-bit entries. 4340 // 32-bit entries.
4341 for (int i = 0; i < pending_64_bit_constants_.size(); i++) { 4341 for (size_t i = 0; i < pending_64_bit_constants_.size(); i++) {
4342 ConstantPoolEntry& entry = pending_64_bit_constants_[i]; 4342 ConstantPoolEntry& entry = pending_64_bit_constants_[i];
4343 4343
4344 Instr instr = instr_at(entry.position()); 4344 Instr instr = instr_at(entry.position());
4345 // Instruction to patch must be 'vldr rd, [pc, #offset]' with offset == 0. 4345 // Instruction to patch must be 'vldr rd, [pc, #offset]' with offset == 0.
4346 DCHECK((IsVldrDPcImmediateOffset(instr) && 4346 DCHECK((IsVldrDPcImmediateOffset(instr) &&
4347 GetVldrDRegisterImmediateOffset(instr) == 0)); 4347 GetVldrDRegisterImmediateOffset(instr) == 0));
4348 4348
4349 int delta = pc_offset() - entry.position() - kPcLoadDelta; 4349 int delta = pc_offset() - entry.position() - kPcLoadDelta;
4350 DCHECK(is_uint10(delta)); 4350 DCHECK(is_uint10(delta));
4351 4351
4352 if (entry.is_merged()) { 4352 if (entry.is_merged()) {
4353 ConstantPoolEntry& merged = 4353 ConstantPoolEntry& merged =
4354 pending_64_bit_constants_[entry.merged_index()]; 4354 pending_64_bit_constants_[entry.merged_index()];
4355 DCHECK(entry.value64() == merged.value64()); 4355 DCHECK(entry.value64() == merged.value64());
4356 Instr merged_instr = instr_at(merged.position()); 4356 Instr merged_instr = instr_at(merged.position());
4357 DCHECK(IsVldrDPcImmediateOffset(merged_instr)); 4357 DCHECK(IsVldrDPcImmediateOffset(merged_instr));
4358 delta = GetVldrDRegisterImmediateOffset(merged_instr); 4358 delta = GetVldrDRegisterImmediateOffset(merged_instr);
4359 delta += merged.position() - entry.position(); 4359 delta += merged.position() - entry.position();
4360 } 4360 }
4361 instr_at_put(entry.position(), 4361 instr_at_put(entry.position(),
4362 SetVldrDRegisterImmediateOffset(instr, delta)); 4362 SetVldrDRegisterImmediateOffset(instr, delta));
4363 if (!entry.is_merged()) { 4363 if (!entry.is_merged()) {
4364 DCHECK(IsAligned(reinterpret_cast<intptr_t>(pc_), kDoubleAlignment)); 4364 DCHECK(IsAligned(reinterpret_cast<intptr_t>(pc_), kDoubleAlignment));
4365 dq(entry.value64()); 4365 dq(entry.value64());
4366 } 4366 }
4367 } 4367 }
4368 4368
4369 // Emit 32-bit constant pool entries. 4369 // Emit 32-bit constant pool entries.
4370 for (int i = 0; i < pending_32_bit_constants_.size(); i++) { 4370 for (size_t i = 0; i < pending_32_bit_constants_.size(); i++) {
4371 ConstantPoolEntry& entry = pending_32_bit_constants_[i]; 4371 ConstantPoolEntry& entry = pending_32_bit_constants_[i];
4372 Instr instr = instr_at(entry.position()); 4372 Instr instr = instr_at(entry.position());
4373 4373
4374 // 64-bit loads shouldn't get here. 4374 // 64-bit loads shouldn't get here.
4375 DCHECK(!IsVldrDPcImmediateOffset(instr)); 4375 DCHECK(!IsVldrDPcImmediateOffset(instr));
4376 DCHECK(!IsMovW(instr)); 4376 DCHECK(!IsMovW(instr));
4377 DCHECK(IsLdrPcImmediateOffset(instr) && 4377 DCHECK(IsLdrPcImmediateOffset(instr) &&
4378 GetLdrRegisterImmediateOffset(instr) == 0); 4378 GetLdrRegisterImmediateOffset(instr) == 0);
4379 4379
4380 int delta = pc_offset() - entry.position() - kPcLoadDelta; 4380 int delta = pc_offset() - entry.position() - kPcLoadDelta;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
4473 DCHECK(is_uint12(offset)); 4473 DCHECK(is_uint12(offset));
4474 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); 4474 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset));
4475 } 4475 }
4476 } 4476 }
4477 4477
4478 4478
4479 } // namespace internal 4479 } // namespace internal
4480 } // namespace v8 4480 } // namespace v8
4481 4481
4482 #endif // V8_TARGET_ARCH_ARM 4482 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/deoptimizer-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698