OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 | 358 |
359 // Fast support for Math.random(). | 359 // Fast support for Math.random(). |
360 void GenerateRandomPositiveSmi(ZoneList<Expression*>* args); | 360 void GenerateRandomPositiveSmi(ZoneList<Expression*>* args); |
361 | 361 |
362 // Fast support for Math.sin and Math.cos. | 362 // Fast support for Math.sin and Math.cos. |
363 enum MathOp { SIN, COS }; | 363 enum MathOp { SIN, COS }; |
364 void GenerateFastMathOp(MathOp op, ZoneList<Expression*>* args); | 364 void GenerateFastMathOp(MathOp op, ZoneList<Expression*>* args); |
365 inline void GenerateMathSin(ZoneList<Expression*>* args); | 365 inline void GenerateMathSin(ZoneList<Expression*>* args); |
366 inline void GenerateMathCos(ZoneList<Expression*>* args); | 366 inline void GenerateMathCos(ZoneList<Expression*>* args); |
367 | 367 |
| 368 // Simple condition analysis. |
| 369 enum ConditionAnalysis { |
| 370 ALWAYS_TRUE, |
| 371 ALWAYS_FALSE, |
| 372 DONT_KNOW |
| 373 }; |
| 374 ConditionAnalysis AnalyzeCondition(Expression* cond); |
| 375 |
368 // Methods used to indicate which source code is generated for. Source | 376 // Methods used to indicate which source code is generated for. Source |
369 // positions are collected by the assembler and emitted with the relocation | 377 // positions are collected by the assembler and emitted with the relocation |
370 // information. | 378 // information. |
371 void CodeForFunctionPosition(FunctionLiteral* fun); | 379 void CodeForFunctionPosition(FunctionLiteral* fun); |
372 void CodeForReturnPosition(FunctionLiteral* fun); | 380 void CodeForReturnPosition(FunctionLiteral* fun); |
373 void CodeForStatementPosition(Statement* node); | 381 void CodeForStatementPosition(Statement* node); |
374 void CodeForSourcePosition(int pos); | 382 void CodeForSourcePosition(int pos); |
375 | 383 |
376 #ifdef DEBUG | 384 #ifdef DEBUG |
377 // True if the registers are valid for entry to a block. | 385 // True if the registers are valid for entry to a block. |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 constant_rhs_); | 505 constant_rhs_); |
498 } | 506 } |
499 } | 507 } |
500 #endif | 508 #endif |
501 }; | 509 }; |
502 | 510 |
503 | 511 |
504 } } // namespace v8::internal | 512 } } // namespace v8::internal |
505 | 513 |
506 #endif // V8_ARM_CODEGEN_ARM_H_ | 514 #endif // V8_ARM_CODEGEN_ARM_H_ |
OLD | NEW |