Home | History | Annotate | Download | only in x64

Lines Matching refs:Smi

56 // Value of smi in kSmiConstantRegister.
259 // object being stored. |index| is the array index represented as a non-smi.
262 // value is a smi.
275 // the write barrier if the value is a smi.
380 // Smi tagging, untagging and operations on tagged smis.
384 reinterpret_cast<uint64_t>(Smi::FromInt(kSmiConstantRegisterValue)),
388 // Conversions between tagged smi values and non-tagged integer values.
390 // Tag an integer value. The result must be known to be a valid smi value.
392 smi.
395 // Stores an integer32 value into a memory field that already holds a smi.
398 // Adds constant to src and tags the result as a smi.
399 // Result must be a valid smi.
402 // Convert smi to 32-bit integer. I.e., not sign extended into
407 // Convert smi to 64-bit integer (sign extended if necessary).
411 // Multiply a positive smi's integer value by a power of two.
417 // Divide a positive smi's integer value by a power of two.
423 // Perform the logical or of two smi values and return a smi value.
424 // If either argument is not a smi, jump to on_not_smis and retain
437 void SmiCompare(Register dst, Smi* src);
440 void SmiCompare(const Operand& dst, Smi* src);
441 // Compare the int32 in src register to the value of the smi stored at dst.
443 // Sets sign and zero flags depending on value of smi in register.
446 // Functions performing a check on a known or potential smi. Returns
449 // Is the value a tagged smi.
453 // Is the value a non-negative tagged smi.
462 // Are either value a tagged smi.
467 // Is the value the minimum smi value (since we are using
469 // a non-smi value).
473 // to a smi.
477 // conversion to a smi.
480 // Check whether src is a Smi, and set dst to zero if it is a smi,
488 // Jump if the value cannot be represented by a smi.
492 // Jump if the unsigned integer value cannot be represented by a smi.
496 // Jump to label if the value is a tagged smi.
501 // Jump to label if the value is not a tagged smi.
506 // Jump to label if the value is not a non-negative tagged smi.
511 // Jump to label if the value, which must be a tagged smi, has value equal
514 Smi* constant,
518 // Jump if either or both register are not smi values.
524 // Jump if either or both register are not non-negative smi values.
529 // Operations on tagged smi values.
534 // Optimistically adds an integer constant to a supposed smi.
535 // If the src is not a smi, or the result is not a smi, jump to
539 Smi* constant,
543 // Add an integer constant to a tagged smi, giving a tagged smi as result.
545 void SmiAddConstant(Register dst, Register src, Smi* constant);
547 // Add an integer constant to a tagged smi, giving a tagged smi as result.
549 void SmiAddConstant(const Operand& dst, Smi* constant);
551 // Add an integer constant to a tagged smi, giving a tagged smi as result,
552 // or jumping to a label if the result cannot be represented by a smi.
555 Smi* constant,
559 // Subtract an integer constant from a tagged smi, giving a tagged smi as
562 void SmiSubConstant(Register dst, Register src, Smi* constant);
564 // Subtract an integer constant from a tagged smi, giving a tagged smi as
565 // result, or jumping to a label if the result cannot be represented by a smi.
568 Smi* constant,
572 // Negating a smi can give a negative zero or too large positive value.
579 // Adds smi values and return the result as a smi.
597 // Subtracts smi values and return the result as a smi.
620 // Multiplies smi values and return the result as a smi,
630 // Divides one smi by another and returns the quotient.
638 // Divides one smi by another and returns the remainder.
651 void SmiAndConstant(Register dst, Register src1, Smi* constant);
652 void SmiOrConstant(Register dst, Register src1, Smi* constant);
653 void SmiXorConstant(Register dst, Register src1, Smi* constant);
667 // Shifts a smi value to the left, and returns the result if that is a smi.
672 // Shifts a smi value to the right, shifting in zero bits at the top, and
673 // returns the unsigned intepretation of the result if that is a smi.
680 // Shifts a smi value to the right, sign extending the top, and
682 // be a valid smi value, since it's numerically smaller than the
691 // Select the non-smi register of two registers where exactly one is a
692 // smi. If neither are smis, jump to the failure label.
699 // Converts, if necessary, a smi to a combination of number and
701 // The src register contains a *positive* smi value. The shift is the
703 // to index by smi-value * kPointerSize, pass the smi and kPointerSizeLog2).
709 // Converts a positive smi to a negative index.
712 // Add the value of a smi in memory to an int32 register.
716 // Basic Smi operations.
717 void Move(Register dst, Smi* source) {
721 void Move(const Operand& dst, Smi* source) {
726 void Push(Smi* smi);
727 void Test(const Operand& dst, Smi* source);
783 void Cmp(Register dst, Smi* src);
784 void Cmp(const Operand& dst, Smi* src);
870 // Check if a map for a JSObject indicates that the object can have both smi
876 // Check if a map for a JSObject indicates that the object has fast smi only
885 // index must not be smi-tagged.
902 // label if not. Skip the smi check if not required (object is known to be a
912 // specified target if equal. Skip the smi check if not required (object is
945 // Abort execution if argument is a smi. Used in debug code.
948 // Abort execution if argument is not a smi. Used in debug code.
1319 // Returns a register holding the smi value. The register MUST NOT be
1320 // modified. It may be the "smi 1 constant" register.
1321 Register GetSmiConstant(Smi* value);
1323 // Moves the smi value to the destination register.
1324 void LoadSmiConstant(Register dst, Smi* value);