| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 Register input, | 146 Register input, |
| 147 Register temporary, | 147 Register temporary, |
| 148 Register scratch); | 148 Register scratch); |
| 149 | 149 |
| 150 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } | 150 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } |
| 151 | 151 |
| 152 void Abort(BailoutReason reason); | 152 void Abort(BailoutReason reason); |
| 153 | 153 |
| 154 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } | 154 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } |
| 155 | 155 |
| 156 |
| 157 void SaveCallerDoubles(); |
| 158 void RestoreCallerDoubles(); |
| 159 |
| 156 // Code generation passes. Returns true if code generation should | 160 // Code generation passes. Returns true if code generation should |
| 157 // continue. | 161 // continue. |
| 158 bool GeneratePrologue(); | 162 bool GeneratePrologue(); |
| 159 bool GenerateDeferredCode(); | 163 bool GenerateDeferredCode(); |
| 160 bool GenerateJumpTable(); | 164 bool GenerateJumpTable(); |
| 161 bool GenerateSafepointTable(); | 165 bool GenerateSafepointTable(); |
| 162 | 166 |
| 163 // Generates the custom OSR entrypoint and sets the osr_pc_offset. | 167 // Generates the custom OSR entrypoint and sets the osr_pc_offset. |
| 164 void GenerateOsrPrologue(); | 168 void GenerateOsrPrologue(); |
| 165 | 169 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 Register input, | 284 Register input, |
| 281 XMMRegister result, | 285 XMMRegister result, |
| 282 bool allow_undefined_as_nan, | 286 bool allow_undefined_as_nan, |
| 283 bool deoptimize_on_minus_zero, | 287 bool deoptimize_on_minus_zero, |
| 284 LEnvironment* env, | 288 LEnvironment* env, |
| 285 NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED); | 289 NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED); |
| 286 | 290 |
| 287 // Emits optimized code for typeof x == "y". Modifies input register. | 291 // Emits optimized code for typeof x == "y". Modifies input register. |
| 288 // Returns the condition on which a final split to | 292 // Returns the condition on which a final split to |
| 289 // true and false label should be made, to optimize fallthrough. | 293 // true and false label should be made, to optimize fallthrough. |
| 290 Condition EmitTypeofIs(Label* true_label, | 294 Condition EmitTypeofIs(LTypeofIsAndBranch* instr, Register input); |
| 291 Label* false_label, | |
| 292 Register input, | |
| 293 Handle<String> type_name); | |
| 294 | 295 |
| 295 // Emits optimized code for %_IsObject(x). Preserves input register. | 296 // Emits optimized code for %_IsObject(x). Preserves input register. |
| 296 // Returns the condition on which a final split to | 297 // Returns the condition on which a final split to |
| 297 // true and false label should be made, to optimize fallthrough. | 298 // true and false label should be made, to optimize fallthrough. |
| 298 Condition EmitIsObject(Register input, | 299 Condition EmitIsObject(Register input, |
| 299 Label* is_not_object, | 300 Label* is_not_object, |
| 300 Label* is_object); | 301 Label* is_object); |
| 301 | 302 |
| 302 // Emits optimized code for %_IsString(x). Preserves input register. | 303 // Emits optimized code for %_IsString(x). Preserves input register. |
| 303 // Returns the condition on which a final split to | 304 // Returns the condition on which a final split to |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 Label entry_; | 413 Label entry_; |
| 413 Label exit_; | 414 Label exit_; |
| 414 Label done_; | 415 Label done_; |
| 415 Label* external_exit_; | 416 Label* external_exit_; |
| 416 int instruction_index_; | 417 int instruction_index_; |
| 417 }; | 418 }; |
| 418 | 419 |
| 419 } } // namespace v8::internal | 420 } } // namespace v8::internal |
| 420 | 421 |
| 421 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ | 422 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ |
| OLD | NEW |