Lines Matching refs:Smi
810 // Use the KeyedArrayCallStub if the call is of the form array[smi](...),
887 return Smi::FromInt(string->length());
1307 // non-smi keys of keyed loads/stores to a smi or a string.
1314 if (value == int_value && Smi::IsValid(int_value)) {
1315 key = Handle<Smi>(Smi::FromInt(int_value), isolate);
1397 // or is representable as a smi.
1866 index >= Smi::cast(JSArray::cast(*receiver)->length())->value();
1876 Smi* smi_key = NULL;
1961 // or is representable as a smi.
2327 right_kind_ = Smi::IsValid(fixed_right_arg_.value) ? SMI : INT32;
2338 bool sse2 = (Max(result_kind_, Max(left_kind_, right_kind_)) > SMI &&
2380 GENERATE(Token::ADD, INT32, SMI, INT32, NO_OVERWRITE);
2381 GENERATE(Token::ADD, INT32, SMI, INT32, OVERWRITE_LEFT);
2382 GENERATE(Token::ADD, INT32, SMI, INT32, OVERWRITE_RIGHT);
2389 GENERATE(Token::ADD, NUMBER, SMI, NUMBER, NO_OVERWRITE);
2390 GENERATE(Token::ADD, NUMBER, SMI, NUMBER, OVERWRITE_LEFT);
2391 GENERATE(Token::ADD, NUMBER, SMI, NUMBER, OVERWRITE_RIGHT);
2392 GENERATE(Token::ADD, SMI, INT32, INT32, NO_OVERWRITE);
2393 GENERATE(Token::ADD, SMI, INT32, INT32, OVERWRITE_LEFT);
2394 GENERATE(Token::ADD, SMI, INT32, NUMBER, NO_OVERWRITE);
2395 GENERATE(Token::ADD, SMI, NUMBER, NUMBER, NO_OVERWRITE);
2396 GENERATE(Token::ADD, SMI, NUMBER, NUMBER, OVERWRITE_LEFT);
2397 GENERATE(Token::ADD, SMI, NUMBER, NUMBER, OVERWRITE_RIGHT);
2398 GENERATE(Token::ADD, SMI, SMI, INT32, OVERWRITE_LEFT);
2399 GENERATE(Token::ADD, SMI, SMI, SMI, OVERWRITE_RIGHT);
2403 GENERATE(Token::BIT_AND, INT32, INT32, SMI, NO_OVERWRITE);
2404 GENERATE(Token::BIT_AND, INT32, INT32, SMI, OVERWRITE_RIGHT);
2405 GENERATE(Token::BIT_AND, INT32, SMI, INT32, NO_OVERWRITE);
2406 GENERATE(Token::BIT_AND, INT32, SMI, INT32, OVERWRITE_RIGHT);
2407 GENERATE(Token::BIT_AND, INT32, SMI, SMI, NO_OVERWRITE);
2408 GENERATE(Token::BIT_AND, INT32, SMI, SMI, OVERWRITE_LEFT);
2409 GENERATE(Token::BIT_AND, INT32, SMI, SMI, OVERWRITE_RIGHT);
2411 GENERATE(Token::BIT_AND, NUMBER, SMI, SMI, NO_OVERWRITE);
2412 GENERATE(Token::BIT_AND, NUMBER, SMI, SMI, OVERWRITE_RIGHT);
2413 GENERATE(Token::BIT_AND, SMI, INT32, INT32, NO_OVERWRITE);
2414 GENERATE(Token::BIT_AND, SMI, INT32, SMI, OVERWRITE_RIGHT);
2415 GENERATE(Token::BIT_AND, SMI, NUMBER, SMI, OVERWRITE_RIGHT);
2416 GENERATE(Token::BIT_AND, SMI, SMI, SMI, NO_OVERWRITE);
2417 GENERATE(Token::BIT_AND, SMI, SMI, SMI, OVERWRITE_LEFT);
2418 GENERATE(Token::BIT_AND, SMI, SMI, SMI, OVERWRITE_RIGHT);
2421 GENERATE(Token::BIT_OR, INT32, INT32, SMI, OVERWRITE_LEFT);
2422 GENERATE(Token::BIT_OR, INT32, SMI, INT32, NO_OVERWRITE);
2423 GENERATE(Token::BIT_OR, INT32, SMI, INT32, OVERWRITE_LEFT);
2424 GENERATE(Token::BIT_OR, INT32, SMI, INT32, OVERWRITE_RIGHT);
2425 GENERATE(Token::BIT_OR, INT32, SMI, SMI, NO_OVERWRITE);
2426 GENERATE(Token::BIT_OR, INT32, SMI, SMI, OVERWRITE_RIGHT);
2427 GENERATE(Token::BIT_OR, NUMBER, SMI, INT32, NO_OVERWRITE);
2428 GENERATE(Token::BIT_OR, NUMBER, SMI, INT32, OVERWRITE_LEFT);
2429 GENERATE(Token::BIT_OR, NUMBER, SMI, INT32, OVERWRITE_RIGHT);
2430 GENERATE(Token::BIT_OR, NUMBER, SMI, SMI, NO_OVERWRITE);
2431 GENERATE(Token::BIT_OR, NUMBER, SMI, SMI, OVERWRITE_LEFT);
2432 GENERATE(Token::BIT_OR, SMI, INT32, INT32, OVERWRITE_LEFT);
2433 GENERATE(Token::BIT_OR, SMI, INT32, INT32, OVERWRITE_RIGHT);
2434 GENERATE(Token::BIT_OR, SMI, INT32, SMI, OVERWRITE_RIGHT);
2435 GENERATE(Token::BIT_OR, SMI, SMI, SMI, OVERWRITE_LEFT);
2436 GENERATE(Token::BIT_OR, SMI, SMI, SMI, OVERWRITE_RIGHT);
2440 GENERATE(Token::BIT_XOR, INT32, INT32, SMI, NO_OVERWRITE);
2441 GENERATE(Token::BIT_XOR, INT32, INT32, SMI, OVERWRITE_LEFT);
2442 GENERATE(Token::BIT_XOR, INT32, NUMBER, SMI, NO_OVERWRITE);
2443 GENERATE(Token::BIT_XOR, INT32, SMI, INT32, NO_OVERWRITE);
2444 GENERATE(Token::BIT_XOR, INT32, SMI, INT32, OVERWRITE_LEFT);
2445 GENERATE(Token::BIT_XOR, INT32, SMI, INT32, OVERWRITE_RIGHT);
2447 GENERATE(Token::BIT_XOR, NUMBER, SMI, INT32, NO_OVERWRITE);
2448 GENERATE(Token::BIT_XOR, NUMBER, SMI, SMI, NO_OVERWRITE);
2449 GENERATE(Token::BIT_XOR, SMI, INT32, INT32, NO_OVERWRITE);
2450 GENERATE(Token::BIT_XOR, SMI, INT32, INT32, OVERWRITE_LEFT);
2451 GENERATE(Token::BIT_XOR, SMI, INT32, SMI, OVERWRITE_LEFT);
2452 GENERATE(Token::BIT_XOR, SMI, SMI, SMI, NO_OVERWRITE);
2453 GENERATE(Token::BIT_XOR, SMI, SMI, SMI, OVERWRITE_LEFT);
2454 GENERATE(Token::BIT_XOR, SMI, SMI, SMI, OVERWRITE_RIGHT);
2459 GENERATE(Token::DIV, INT32, SMI, INT32, NO_OVERWRITE);
2460 GENERATE(Token::DIV, INT32, SMI, NUMBER, NO_OVERWRITE);
2466 GENERATE(Token::DIV, NUMBER, SMI, NUMBER, NO_OVERWRITE);
2467 GENERATE(Token::DIV, NUMBER, SMI, NUMBER, OVERWRITE_LEFT);
2468 GENERATE(Token::DIV, SMI, INT32, INT32, NO_OVERWRITE);
2469 GENERATE(Token::DIV, SMI, INT32, NUMBER, NO_OVERWRITE);
2470 GENERATE(Token::DIV, SMI, INT32, NUMBER, OVERWRITE_LEFT);
2471 GENERATE(Token::DIV, SMI, NUMBER, NUMBER, NO_OVERWRITE);
2472 GENERATE(Token::DIV, SMI, NUMBER, NUMBER, OVERWRITE_LEFT);
2473 GENERATE(Token::DIV, SMI, NUMBER, NUMBER, OVERWRITE_RIGHT);
2474 GENERATE(Token::DIV, SMI, SMI, NUMBER, NO_OVERWRITE);
2475 GENERATE(Token::DIV, SMI, SMI, NUMBER, OVERWRITE_LEFT);
2476 GENERATE(Token::DIV, SMI, SMI, NUMBER, OVERWRITE_RIGHT);
2477 GENERATE(Token::DIV, SMI, SMI, SMI, NO_OVERWRITE);
2478 GENERATE(Token::DIV, SMI, SMI, SMI, OVERWRITE_LEFT);
2479 GENERATE(Token::DIV, SMI, SMI, SMI, OVERWRITE_RIGHT);
2480 GENERATE(Token::MOD, NUMBER, SMI, NUMBER, OVERWRITE_LEFT);
2481 GENERATE(Token::MOD, SMI, SMI, SMI, NO_OVERWRITE);
2482 GENERATE(Token::MOD, SMI, SMI, SMI, OVERWRITE_LEFT);
2487 GENERATE(Token::MUL, INT32, SMI, INT32, NO_OVERWRITE);
2488 GENERATE(Token::MUL, INT32, SMI, INT32, OVERWRITE_LEFT);
2489 GENERATE(Token::MUL, INT32, SMI, NUMBER, NO_OVERWRITE);
2495 GENERATE(Token::MUL, NUMBER, SMI, NUMBER, NO_OVERWRITE);
2496 GENERATE(Token::MUL, NUMBER, SMI, NUMBER, OVERWRITE_LEFT);
2497 GENERATE(Token::MUL, NUMBER, SMI, NUMBER, OVERWRITE_RIGHT);
2498 GENERATE(Token::MUL, SMI, INT32, INT32, NO_OVERWRITE);
2499 GENERATE(Token::MUL, SMI, INT32, INT32, OVERWRITE_LEFT);
2500 GENERATE(Token::MUL, SMI, INT32, NUMBER, NO_OVERWRITE);
2501 GENERATE(Token::MUL, SMI, NUMBER, NUMBER, NO_OVERWRITE);
2502 GENERATE(Token::MUL, SMI, NUMBER, NUMBER, OVERWRITE_LEFT);
2503 GENERATE(Token::MUL, SMI, NUMBER, NUMBER, OVERWRITE_RIGHT);
2504 GENERATE(Token::MUL, SMI, SMI, INT32, NO_OVERWRITE);
2505 GENERATE(Token::MUL, SMI, SMI, NUMBER, NO_OVERWRITE);
2506 GENERATE(Token::MUL, SMI, SMI, NUMBER, OVERWRITE_LEFT);
2507 GENERATE(Token::MUL, SMI, SMI, SMI, NO_OVERWRITE);
2508 GENERATE(Token::MUL, SMI, SMI, SMI, OVERWRITE_LEFT);
2509 GENERATE(Token::MUL, SMI, SMI, SMI, OVERWRITE_RIGHT);
2510 GENERATE(Token::SAR, INT32, SMI, INT32, OVERWRITE_RIGHT);
2511 GENERATE(Token::SAR, INT32, SMI, SMI, NO_OVERWRITE);
2512 GENERATE(Token::SAR, INT32, SMI, SMI, OVERWRITE_RIGHT);
2513 GENERATE(Token::SAR, NUMBER, SMI, SMI, NO_OVERWRITE);
2514 GENERATE(Token::SAR, NUMBER, SMI, SMI, OVERWRITE_RIGHT);
2515 GENERATE(Token::SAR, SMI, SMI, SMI, OVERWRITE_LEFT);
2516 GENERATE(Token::SAR, SMI, SMI, SMI, OVERWRITE_RIGHT);
2517 GENERATE(Token::SHL, INT32, SMI, INT32, NO_OVERWRITE);
2518 GENERATE(Token::SHL, INT32, SMI, INT32, OVERWRITE_RIGHT);
2519 GENERATE(Token::SHL, INT32, SMI, SMI, NO_OVERWRITE);
2520 GENERATE(Token::SHL, INT32, SMI, SMI, OVERWRITE_RIGHT);
2521 GENERATE(Token::SHL, NUMBER, SMI, SMI, OVERWRITE_RIGHT);
2522 GENERATE(Token::SHL, SMI, SMI, INT32, NO_OVERWRITE);
2523 GENERATE(Token::SHL, SMI, SMI
2524 GENERATE(Token::SHL, SMI, SMI, INT32, OVERWRITE_RIGHT);
2525 GENERATE(Token::SHL, SMI, SMI, SMI, NO_OVERWRITE);
2526 GENERATE(Token::SHL, SMI, SMI, SMI, OVERWRITE_LEFT);
2527 GENERATE(Token::SHL, SMI, SMI, SMI, OVERWRITE_RIGHT);
2528 GENERATE(Token::SHR, INT32, SMI, SMI, NO_OVERWRITE);
2529 GENERATE(Token::SHR, INT32, SMI, SMI, OVERWRITE_LEFT);
2530 GENERATE(Token::SHR, INT32, SMI, SMI, OVERWRITE_RIGHT);
2531 GENERATE(Token::SHR, NUMBER, SMI, SMI, NO_OVERWRITE);
2532 GENERATE(Token::SHR, NUMBER, SMI, SMI, OVERWRITE_LEFT);
2533 GENERATE(Token::SHR, NUMBER, SMI, INT32, OVERWRITE_RIGHT);
2534 GENERATE(Token::SHR, SMI, SMI, SMI, NO_OVERWRITE);
2535 GENERATE(Token::SHR, SMI, SMI, SMI, OVERWRITE_LEFT);
2536 GENERATE(Token::SHR, SMI, SMI, SMI, OVERWRITE_RIGHT);
2541 GENERATE(Token::SUB, INT32, SMI, INT32, OVERWRITE_LEFT);
2542 GENERATE(Token::SUB, INT32, SMI, INT32, OVERWRITE_RIGHT);
2548 GENERATE(Token::SUB, NUMBER, SMI, NUMBER, NO_OVERWRITE);
2549 GENERATE(Token::SUB, NUMBER, SMI, NUMBER, OVERWRITE_LEFT);
2550 GENERATE(Token::SUB, NUMBER, SMI, NUMBER, OVERWRITE_RIGHT);
2551 GENERATE(Token::SUB, SMI, INT32, INT32, NO_OVERWRITE);
2552 GENERATE(Token::SUB, SMI, NUMBER, NUMBER, NO_OVERWRITE);
2553 GENERATE(Token::SUB, SMI, NUMBER, NUMBER, OVERWRITE_LEFT);
2554 GENERATE(Token::SUB, SMI, NUMBER, NUMBER, OVERWRITE_RIGHT);
2555 GENERATE(Token::SUB, SMI, SMI, SMI, NO_OVERWRITE);
2556 GENERATE(Token::SUB, SMI, SMI, SMI, OVERWRITE_LEFT);
2557 GENERATE(Token::SUB, SMI, SMI, SMI, OVERWRITE_RIGHT);
2565 state.right_kind_ = SMI; \
2569 GENERATE(Token::MOD, SMI, 2, SMI, NO_OVERWRITE);
2570 GENERATE(Token::MOD, SMI, 4, SMI, NO_OVERWRITE);
2571 GENERATE(Token::MOD, SMI, 4, SMI, OVERWRITE_LEFT);
2572 GENERATE(Token::MOD, SMI, 8, SMI, NO_OVERWRITE);
2573 GENERATE(Token::MOD, SMI, 16, SMI, OVERWRITE_LEFT);
2574 GENERATE(Token::MOD, SMI, 32, SMI, NO_OVERWRITE);
2575 GENERATE(Token::MOD, SMI, 2048, SMI, NO_OVERWRITE);
2624 (left_kind_ == SMI || left_kind_ == INT32) &&
2674 new_kind = SMI;
2697 case SMI: return "Smi";
2713 case SMI: type = Type::Smi(); break;
2758 // Patch the inlined smi code as necessary.
2795 case SMI: return "SMI";
2816 case CompareIC::SMI:
2817 return handle(Type::Smi(), isolate);
2858 if (value->IsSmi()) return SMI;
2865 case SMI:
2866 if (value->IsSmi()) return SMI;
2904 if (x->IsSmi() && y->IsSmi()) return SMI;
2931 case SMI:
2939 // If the failure was due to one side changing from smi to heap number,
2942 if (old_left == SMI && x->IsHeapNumber()) return NUMBER;
2943 if (old_right == SMI && y->IsHeapNumber()) return NUMBER;
2991 // Activate inlined smi code.
3026 return Smi::FromInt(true);
3028 return Smi::FromInt(object->IsUndetectableObject());
3121 return Smi::FromInt(to_boolean_value ? 1 : 0);