28 #ifndef V8_X64_CODEGEN_X64_H_
29 #define V8_X64_CODEGEN_X64_H_
41 class StringCharLoadGenerator :
public AllStatic {
46 static void Generate(MacroAssembler* masm,
53 DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
57 class MathExpGenerator :
public AllStatic {
62 XMMRegister double_scratch,
67 DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
81 int argument_count_immediate,
84 int extra_displacement_to_last_argument = 0)
85 : base_reg_(base_reg),
86 argument_count_reg_(
no_reg),
87 argument_count_immediate_(argument_count_immediate),
88 receiver_mode_(receiver_mode),
89 extra_displacement_to_last_argument_(
90 extra_displacement_to_last_argument) { }
97 int extra_displacement_to_last_argument = 0)
98 : base_reg_(base_reg),
99 argument_count_reg_(argument_count_reg),
100 argument_count_immediate_(0),
101 receiver_mode_(receiver_mode),
102 extra_displacement_to_last_argument_(
103 extra_displacement_to_last_argument) { }
107 const ParameterCount& parameter_count,
110 int extra_displacement_to_last_argument = 0)
111 : base_reg_(base_reg),
112 argument_count_reg_(parameter_count.is_reg() ?
113 parameter_count.reg() :
no_reg),
114 argument_count_immediate_(parameter_count.is_immediate() ?
115 parameter_count.immediate() : 0),
116 receiver_mode_(receiver_mode),
117 extra_displacement_to_last_argument_(
118 extra_displacement_to_last_argument) { }
120 Operand GetArgumentOperand(
int index);
123 return GetArgumentOperand(0);
129 const int argument_count_immediate_;
131 const int extra_displacement_to_last_argument_;
139 #endif // V8_X64_CODEGEN_X64_H_
StackArgumentsAccessor(Register base_reg, Register argument_count_reg, StackArgumentsAccessorReceiverMode receiver_mode=ARGUMENTS_CONTAIN_RECEIVER, int extra_displacement_to_last_argument=0)
#define ASSERT(condition)
#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName)
StackArgumentsAccessor(Register base_reg, const ParameterCount ¶meter_count, StackArgumentsAccessorReceiverMode receiver_mode=ARGUMENTS_CONTAIN_RECEIVER, int extra_displacement_to_last_argument=0)
static void Generate(MacroAssembler *masm, Register string, Register index, Register result, Label *call_runtime)
Operand GetReceiverOperand()
StackArgumentsAccessorReceiverMode
StackArgumentsAccessor(Register base_reg, int argument_count_immediate, StackArgumentsAccessorReceiverMode receiver_mode=ARGUMENTS_CONTAIN_RECEIVER, int extra_displacement_to_last_argument=0)
static void EmitMathExp(MacroAssembler *masm, DwVfpRegister input, DwVfpRegister result, DwVfpRegister double_scratch1, DwVfpRegister double_scratch2, Register temp1, Register temp2, Register temp3)