diff options
Diffstat (limited to 'deps/v8/src/arm/codegen-arm.h')
-rw-r--r-- | deps/v8/src/arm/codegen-arm.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/deps/v8/src/arm/codegen-arm.h b/deps/v8/src/arm/codegen-arm.h index 2bc482ed5e..bea98b6693 100644 --- a/deps/v8/src/arm/codegen-arm.h +++ b/deps/v8/src/arm/codegen-arm.h @@ -370,6 +370,9 @@ class CodeGenerator: public AstVisitor { // Fast support for charCodeAt(n). void GenerateFastCharCodeAt(ZoneList<Expression*>* args); + // Fast support for string.charAt(n) and string[n]. + void GenerateCharFromCode(ZoneList<Expression*>* args); + // Fast support for object equality testing. void GenerateObjectEquals(ZoneList<Expression*>* args); @@ -393,6 +396,16 @@ class CodeGenerator: public AstVisitor { // Fast support for number to string. void GenerateNumberToString(ZoneList<Expression*>* args); + // Fast support for Math.pow(). + void GenerateMathPow(ZoneList<Expression*>* args); + + // Fast call to sine function. + void GenerateMathSin(ZoneList<Expression*>* args); + void GenerateMathCos(ZoneList<Expression*>* args); + + // Fast support for Math.pow(). + void GenerateMathSqrt(ZoneList<Expression*>* args); + // Simple condition analysis. enum ConditionAnalysis { ALWAYS_TRUE, @@ -554,6 +567,36 @@ class StringStubBase: public CodeStub { Register scratch4, Register scratch5, int flags); + + + // Probe the symbol table for a two character string. If the string is + // not found by probing a jump to the label not_found is performed. This jump + // does not guarantee that the string is not in the symbol table. If the + // string is found the code falls through with the string in register r0. + // Contents of both c1 and c2 registers are modified. At the exit c1 is + // guaranteed to contain halfword with low and high bytes equal to + // initial contents of c1 and c2 respectively. + void GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, + Register c1, + Register c2, + Register scratch1, + Register scratch2, + Register scratch3, + Register scratch4, + Register scratch5, + Label* not_found); + + // Generate string hash. + void GenerateHashInit(MacroAssembler* masm, + Register hash, + Register character); + + void GenerateHashAddCharacter(MacroAssembler* masm, + Register hash, + Register character); + + void GenerateHashGetHash(MacroAssembler* masm, + Register hash); }; |