Home | History | Annotate | Download | only in x64

Lines Matching refs:smi

71   // the elements array represented as a Smi.
79 // The value is known to not be a smi.
82 // the elements array represented as a Smi.
165 // Smi tagging, untagging and operations on tagged smis.
167 // Conversions between tagged smi values and non-tagged integer values.
169 // Tag an integer value. The result must be known to be a valid smi value.
175 // represented as a smi. Only uses the low 32 bit of the src registers.
179 // Adds constant to src and tags the result as a smi.
180 // Result must be a valid smi.
183 // Convert smi to 32-bit integer. I.e., not sign extended into
187 // Convert smi to 64-bit integer (sign extended if necessary).
190 // Multiply a positive smi's integer value by a power of two.
198 void SmiCompare(Register dst, Smi* src);
200 void SmiCompare(const Operand& dst, Smi* src);
201 // Sets sign and zero flags depending on value of smi in register.
204 // Functions performing a check on a known or potential smi. Returns
207 // Is the value a tagged smi.
210 // Is the value a positive tagged smi.
219 // Are either value a tagged smi.
222 // Is the value the minimum smi value (since we are using
224 // a non-smi value).
228 // to a smi.
232 // conversion to a smi.
238 // Jump if the value cannot be represented by a smi.
241 // Jump if the unsigned integer value cannot be represented by a smi.
244 // Jump to label if the value is a tagged smi.
247 // Jump to label if the value is not a tagged smi.
250 // Jump to label if the value is not a positive tagged smi.
253 // Jump to label if the value, which must be a tagged smi, has value equal
255 void JumpIfSmiEqualsConstant(Register src, Smi* constant, Label* on_equals);
257 // Jump if either or both register are not smi values.
260 // Jump if either or both register are not positive smi values.
264 // Operations on tagged smi values.
269 // Optimistically adds an integer constant to a supposed smi.
270 // If the src is not a smi, or the result is not a smi, jump to
274 Smi* constant,
277 // Add an integer constant to a tagged smi, giving a tagged smi as result.
279 void SmiAddConstant(Register dst, Register src, Smi* constant);
281 // Add an integer constant to a tagged smi, giving a tagged smi as result,
282 // or jumping to a label if the result cannot be represented by a smi.
285 Smi* constant,
288 // Subtract an integer constant from a tagged smi, giving a tagged smi as
290 void SmiSubConstant(Register dst, Register src, Smi* constant);
292 // Subtract an integer constant from a tagged smi, giving a tagged smi as
293 // result, or jumping to a label if the result cannot be represented by a smi.
296 Smi* constant,
299 // Negating a smi can give a negative zero or too large positive value.
305 // Adds smi values and return the result as a smi.
313 // Subtracts smi values and return the result as a smi.
321 // Multiplies smi values and return the result as a smi,
330 // Divides one smi by another and returns the quotient.
337 // Divides one smi by another and returns the remainder.
349 void SmiAndConstant(Register dst, Register src1, Smi* constant);
350 void SmiOrConstant(Register dst, Register src1, Smi* constant);
351 void SmiXorConstant(Register dst, Register src1, Smi* constant);
365 // Shifts a smi value to the left, and returns the result if that is a smi.
371 // Shifts a smi value to the right, shifting in zero bits at the top, and
372 // returns the unsigned intepretation of the result if that is a smi.
378 // Shifts a smi value to the right, sign extending the top, and
380 // be a valid smi value, since it's numerically smaller than the
389 // Select the non-smi register of two registers where exactly one is a
390 // smi. If neither are smis, jump to the failure label.
396 // Converts, if necessary, a smi to a combination of number and
398 // The src register contains a *positive* smi value. The shift is the
400 // to index by smi-value * kPointerSize, pass the smi and kPointerSizeLog2).
406 // Converts a positive smi to a negative index.
409 // Basic Smi operations.
410 void Move(Register dst, Smi* source) {
414 void Move(const Operand& dst, Smi* source) {
418 void Push(Smi* smi);
419 void Test(const Operand& dst, Smi* source);
469 // branch to label if not. Skip the smi check if not required