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 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 // COP1 Encoding of Function Field When rs=PS. | 422 // COP1 Encoding of Function Field When rs=PS. |
423 // COP1X Encoding of Function Field. | 423 // COP1X Encoding of Function Field. |
424 MADD_D = ((4 << 3) + 1), | 424 MADD_D = ((4 << 3) + 1), |
425 | 425 |
426 NULLSF = 0 | 426 NULLSF = 0 |
427 }; | 427 }; |
428 | 428 |
429 | 429 |
430 // ----- Emulated conditions. | 430 // ----- Emulated conditions. |
431 // On MIPS we use this enum to abstract from conditionnal branch instructions. | 431 // On MIPS we use this enum to abstract from conditionnal branch instructions. |
432 // the 'U' prefix is used to specify unsigned comparisons. | 432 // The 'U' prefix is used to specify unsigned comparisons. |
| 433 // Oppposite conditions must be paired as odd/even numbers |
| 434 // because 'NegateCondition' function flips LSB to negate condition. |
433 enum Condition { | 435 enum Condition { |
434 // Any value < 0 is considered no_condition. | 436 // Any value < 0 is considered no_condition. |
435 kNoCondition = -1, | 437 kNoCondition = -1, |
436 | 438 |
437 overflow = 0, | 439 overflow = 0, |
438 no_overflow = 1, | 440 no_overflow = 1, |
439 Uless = 2, | 441 Uless = 2, |
440 Ugreater_equal= 3, | 442 Ugreater_equal= 3, |
441 equal = 4, | 443 equal = 4, |
442 not_equal = 5, | 444 not_equal = 5, |
443 Uless_equal = 6, | 445 Uless_equal = 6, |
444 Ugreater = 7, | 446 Ugreater = 7, |
445 negative = 8, | 447 negative = 8, |
446 positive = 9, | 448 positive = 9, |
447 parity_even = 10, | 449 parity_even = 10, |
448 parity_odd = 11, | 450 parity_odd = 11, |
449 less = 12, | 451 less = 12, |
450 greater_equal = 13, | 452 greater_equal = 13, |
451 less_equal = 14, | 453 less_equal = 14, |
452 greater = 15, | 454 greater = 15, |
| 455 ueq = 16, // Unordered or Equal. |
| 456 nue = 17, // Not (Unordered or Equal). |
453 | 457 |
454 cc_always = 16, | 458 cc_always = 18, |
455 | 459 |
456 // Aliases. | 460 // Aliases. |
457 carry = Uless, | 461 carry = Uless, |
458 not_carry = Ugreater_equal, | 462 not_carry = Ugreater_equal, |
459 zero = equal, | 463 zero = equal, |
460 eq = equal, | 464 eq = equal, |
461 not_zero = not_equal, | 465 not_zero = not_equal, |
462 ne = not_equal, | 466 ne = not_equal, |
463 nz = not_equal, | 467 nz = not_equal, |
464 sign = negative, | 468 sign = negative, |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 // JS argument slots size. | 798 // JS argument slots size. |
795 const int kJSArgsSlotsSize = 0 * Instruction::kInstrSize; | 799 const int kJSArgsSlotsSize = 0 * Instruction::kInstrSize; |
796 // Assembly builtins argument slots size. | 800 // Assembly builtins argument slots size. |
797 const int kBArgsSlotsSize = 0 * Instruction::kInstrSize; | 801 const int kBArgsSlotsSize = 0 * Instruction::kInstrSize; |
798 | 802 |
799 const int kBranchReturnOffset = 2 * Instruction::kInstrSize; | 803 const int kBranchReturnOffset = 2 * Instruction::kInstrSize; |
800 | 804 |
801 } } // namespace v8::internal | 805 } } // namespace v8::internal |
802 | 806 |
803 #endif // #ifndef V8_MIPS_CONSTANTS_H_ | 807 #endif // #ifndef V8_MIPS_CONSTANTS_H_ |
OLD | NEW |