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

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

Issue 1593713002: MIPS: Refine 'r6 compact branch optimization.' (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add DCHECKs, rebased. Created 4 years, 11 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
« no previous file with comments | « src/mips64/assembler-mips64.h ('k') | no next file » | 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 are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // 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 3252 matching lines...) Expand 10 before | Expand all | Expand 10 after
3263 DCHECK(!trampoline_emitted_); 3263 DCHECK(!trampoline_emitted_);
3264 DCHECK(unbound_labels_count_ >= 0); 3264 DCHECK(unbound_labels_count_ >= 0);
3265 if (unbound_labels_count_ > 0) { 3265 if (unbound_labels_count_ > 0) {
3266 // First we emit jump (2 instructions), then we emit trampoline pool. 3266 // First we emit jump (2 instructions), then we emit trampoline pool.
3267 { BlockTrampolinePoolScope block_trampoline_pool(this); 3267 { BlockTrampolinePoolScope block_trampoline_pool(this);
3268 Label after_pool; 3268 Label after_pool;
3269 if (kArchVariant == kMips64r6) { 3269 if (kArchVariant == kMips64r6) {
3270 bc(&after_pool); 3270 bc(&after_pool);
3271 } else { 3271 } else {
3272 b(&after_pool); 3272 b(&after_pool);
3273 nop();
3274 } 3273 }
3274 nop();
3275 3275
3276 EmitForbiddenSlotInstruction();
3277 int pool_start = pc_offset(); 3276 int pool_start = pc_offset();
3278 for (int i = 0; i < unbound_labels_count_; i++) { 3277 for (int i = 0; i < unbound_labels_count_; i++) {
3279 { BlockGrowBufferScope block_buf_growth(this); 3278 { BlockGrowBufferScope block_buf_growth(this);
3280 // Buffer growth (and relocation) must be blocked for internal 3279 // Buffer growth (and relocation) must be blocked for internal
3281 // references until associated instructions are emitted and available 3280 // references until associated instructions are emitted and available
3282 // to be patched. 3281 // to be patched.
3283 RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE_ENCODED); 3282 RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE_ENCODED);
3284 j(&after_pool); 3283 j(&after_pool);
3285 } 3284 }
3286 nop(); 3285 nop();
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
3384 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { 3383 if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
3385 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize); 3384 Assembler::FlushICache(isolate, pc, 4 * Assembler::kInstrSize);
3386 } 3385 }
3387 } 3386 }
3388 3387
3389 3388
3390 } // namespace internal 3389 } // namespace internal
3391 } // namespace v8 3390 } // namespace v8
3392 3391
3393 #endif // V8_TARGET_ARCH_MIPS64 3392 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « src/mips64/assembler-mips64.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698