| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 // the label. | 299 // the label. |
| 300 void SmiTryAddConstant(Register dst, | 300 void SmiTryAddConstant(Register dst, |
| 301 Register src, | 301 Register src, |
| 302 Smi* constant, | 302 Smi* constant, |
| 303 Label* on_not_smi_result); | 303 Label* on_not_smi_result); |
| 304 | 304 |
| 305 // Add an integer constant to a tagged smi, giving a tagged smi as result. | 305 // Add an integer constant to a tagged smi, giving a tagged smi as result. |
| 306 // No overflow testing on the result is done. | 306 // No overflow testing on the result is done. |
| 307 void SmiAddConstant(Register dst, Register src, Smi* constant); | 307 void SmiAddConstant(Register dst, Register src, Smi* constant); |
| 308 | 308 |
| 309 // Add an integer constant to a tagged smi, giving a tagged smi as result. |
| 310 // No overflow testing on the result is done. |
| 311 void SmiAddConstant(const Operand& dst, Smi* constant); |
| 312 |
| 309 // Add an integer constant to a tagged smi, giving a tagged smi as result, | 313 // Add an integer constant to a tagged smi, giving a tagged smi as result, |
| 310 // or jumping to a label if the result cannot be represented by a smi. | 314 // or jumping to a label if the result cannot be represented by a smi. |
| 311 void SmiAddConstant(Register dst, | 315 void SmiAddConstant(Register dst, |
| 312 Register src, | 316 Register src, |
| 313 Smi* constant, | 317 Smi* constant, |
| 314 Label* on_not_smi_result); | 318 Label* on_not_smi_result); |
| 315 | 319 |
| 316 // Subtract an integer constant from a tagged smi, giving a tagged smi as | 320 // Subtract an integer constant from a tagged smi, giving a tagged smi as |
| 317 // result. No testing on the result is done. Sets the N and Z flags | 321 // result. No testing on the result is done. Sets the N and Z flags |
| 318 // based on the value of the resulting integer. | 322 // based on the value of the resulting integer. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 342 // Subtracts smi values and return the result as a smi. | 346 // Subtracts smi values and return the result as a smi. |
| 343 // If dst is src1, then src1 will be destroyed, even if | 347 // If dst is src1, then src1 will be destroyed, even if |
| 344 // the operation is unsuccessful. | 348 // the operation is unsuccessful. |
| 345 void SmiSub(Register dst, | 349 void SmiSub(Register dst, |
| 346 Register src1, | 350 Register src1, |
| 347 Register src2, | 351 Register src2, |
| 348 Label* on_not_smi_result); | 352 Label* on_not_smi_result); |
| 349 | 353 |
| 350 void SmiSub(Register dst, | 354 void SmiSub(Register dst, |
| 351 Register src1, | 355 Register src1, |
| 352 Operand const& src2, | 356 const Operand& src2, |
| 353 Label* on_not_smi_result); | 357 Label* on_not_smi_result); |
| 354 | 358 |
| 355 // Multiplies smi values and return the result as a smi, | 359 // Multiplies smi values and return the result as a smi, |
| 356 // if possible. | 360 // if possible. |
| 357 // If dst is src1, then src1 will be destroyed, even if | 361 // If dst is src1, then src1 will be destroyed, even if |
| 358 // the operation is unsuccessful. | 362 // the operation is unsuccessful. |
| 359 void SmiMul(Register dst, | 363 void SmiMul(Register dst, |
| 360 Register src1, | 364 Register src1, |
| 361 Register src2, | 365 Register src2, |
| 362 Label* on_not_smi_result); | 366 Label* on_not_smi_result); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 526 // registers map and instance_type can be the same as heap_object. | 530 // registers map and instance_type can be the same as heap_object. |
| 527 Condition IsObjectStringType(Register heap_object, | 531 Condition IsObjectStringType(Register heap_object, |
| 528 Register map, | 532 Register map, |
| 529 Register instance_type); | 533 Register instance_type); |
| 530 | 534 |
| 531 // FCmp is similar to integer cmp, but requires unsigned | 535 // FCmp is similar to integer cmp, but requires unsigned |
| 532 // jcc instructions (je, ja, jae, jb, jbe, je, and jz). | 536 // jcc instructions (je, ja, jae, jb, jbe, je, and jz). |
| 533 void FCmp(); | 537 void FCmp(); |
| 534 | 538 |
| 535 // Abort execution if argument is not a number. Used in debug code. | 539 // Abort execution if argument is not a number. Used in debug code. |
| 536 void AbortIfNotNumber(Register object, const char* msg); | 540 void AbortIfNotNumber(Register object); |
| 537 | 541 |
| 538 // Abort execution if argument is not a smi. Used in debug code. | 542 // Abort execution if argument is not a smi. Used in debug code. |
| 539 void AbortIfNotSmi(Register object, const char* msg); | 543 void AbortIfNotSmi(Register object); |
| 540 | 544 |
| 541 // --------------------------------------------------------------------------- | 545 // --------------------------------------------------------------------------- |
| 542 // Exception handling | 546 // Exception handling |
| 543 | 547 |
| 544 // Push a new try handler and link into try handler chain. The return | 548 // Push a new try handler and link into try handler chain. The return |
| 545 // address must be pushed before calling this helper. | 549 // address must be pushed before calling this helper. |
| 546 void PushTryHandler(CodeLocation try_location, HandlerType type); | 550 void PushTryHandler(CodeLocation try_location, HandlerType type); |
| 547 | 551 |
| 548 // Unlink the stack handler on top of the stack from the try handler chain. | 552 // Unlink the stack handler on top of the stack from the try handler chain. |
| 549 void PopTryHandler(); | 553 void PopTryHandler(); |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 872 } \ | 876 } \ |
| 873 masm-> | 877 masm-> |
| 874 #else | 878 #else |
| 875 #define ACCESS_MASM(masm) masm-> | 879 #define ACCESS_MASM(masm) masm-> |
| 876 #endif | 880 #endif |
| 877 | 881 |
| 878 | 882 |
| 879 } } // namespace v8::internal | 883 } } // namespace v8::internal |
| 880 | 884 |
| 881 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ | 885 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ |
| OLD | NEW |