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

Side by Side Diff: src/x87/macro-assembler-x87.cc

Issue 395633010: X87: Use register parameters in ElementsTransitionGenerator (Closed) Base URL: https://chromium.googlesource.com/external/v8.git@bleeding_edge
Patch Set: Created 6 years, 5 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/x87/macro-assembler-x87.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_X87 7 #if V8_TARGET_ARCH_X87
8 8
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 2912 matching lines...) Expand 10 before | Expand all | Expand 10 after
2923 2923
2924 call(function); 2924 call(function);
2925 if (base::OS::ActivationFrameAlignment() != 0) { 2925 if (base::OS::ActivationFrameAlignment() != 0) {
2926 mov(esp, Operand(esp, num_arguments * kPointerSize)); 2926 mov(esp, Operand(esp, num_arguments * kPointerSize));
2927 } else { 2927 } else {
2928 add(esp, Immediate(num_arguments * kPointerSize)); 2928 add(esp, Immediate(num_arguments * kPointerSize));
2929 } 2929 }
2930 } 2930 }
2931 2931
2932 2932
2933 bool AreAliased(Register r1, Register r2, Register r3, Register r4) { 2933 #ifdef DEBUG
2934 if (r1.is(r2)) return true; 2934 bool AreAliased(Register reg1,
2935 if (r1.is(r3)) return true; 2935 Register reg2,
2936 if (r1.is(r4)) return true; 2936 Register reg3,
2937 if (r2.is(r3)) return true; 2937 Register reg4,
2938 if (r2.is(r4)) return true; 2938 Register reg5,
2939 if (r3.is(r4)) return true; 2939 Register reg6,
2940 return false; 2940 Register reg7,
2941 Register reg8) {
2942 int n_of_valid_regs = reg1.is_valid() + reg2.is_valid() +
2943 reg3.is_valid() + reg4.is_valid() + reg5.is_valid() + reg6.is_valid() +
2944 reg7.is_valid() + reg8.is_valid();
2945
2946 RegList regs = 0;
2947 if (reg1.is_valid()) regs |= reg1.bit();
2948 if (reg2.is_valid()) regs |= reg2.bit();
2949 if (reg3.is_valid()) regs |= reg3.bit();
2950 if (reg4.is_valid()) regs |= reg4.bit();
2951 if (reg5.is_valid()) regs |= reg5.bit();
2952 if (reg6.is_valid()) regs |= reg6.bit();
2953 if (reg7.is_valid()) regs |= reg7.bit();
2954 if (reg8.is_valid()) regs |= reg8.bit();
2955 int n_of_non_aliasing_regs = NumRegs(regs);
2956
2957 return n_of_valid_regs != n_of_non_aliasing_regs;
2941 } 2958 }
2959 #endif
2942 2960
2943 2961
2944 CodePatcher::CodePatcher(byte* address, int size) 2962 CodePatcher::CodePatcher(byte* address, int size)
2945 : address_(address), 2963 : address_(address),
2946 size_(size), 2964 size_(size),
2947 masm_(NULL, address, size + Assembler::kGap) { 2965 masm_(NULL, address, size + Assembler::kGap) {
2948 // Create a new macro assembler pointing to the address of the code to patch. 2966 // Create a new macro assembler pointing to the address of the code to patch.
2949 // The size is adjusted with kGap on order for the assembler to generate size 2967 // The size is adjusted with kGap on order for the assembler to generate size
2950 // bytes of instructions without failing with buffer size constraints. 2968 // bytes of instructions without failing with buffer size constraints.
2951 ASSERT(masm_.reloc_info_writer.pos() == address_ + size_ + Assembler::kGap); 2969 ASSERT(masm_.reloc_info_writer.pos() == address_ + size_ + Assembler::kGap);
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
3296 if (ms.shift() > 0) sar(edx, ms.shift()); 3314 if (ms.shift() > 0) sar(edx, ms.shift());
3297 mov(eax, dividend); 3315 mov(eax, dividend);
3298 shr(eax, 31); 3316 shr(eax, 31);
3299 add(edx, eax); 3317 add(edx, eax);
3300 } 3318 }
3301 3319
3302 3320
3303 } } // namespace v8::internal 3321 } } // namespace v8::internal
3304 3322
3305 #endif // V8_TARGET_ARCH_X87 3323 #endif // V8_TARGET_ARCH_X87
OLDNEW
« no previous file with comments | « src/x87/macro-assembler-x87.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698