Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1271)

Side by Side Diff: src/utils.h

Issue 817143002: Contribution of PowerPC port (continuation of 422063005) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Contribution of PowerPC port - rebase and address initial set of comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/simulator.h ('k') | test/cctest/cctest.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_UTILS_H_ 5 #ifndef V8_UTILS_H_
6 #define V8_UTILS_H_ 6 #define V8_UTILS_H_
7 7
8 #include <limits.h> 8 #include <limits.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 #include <string.h> 10 #include <string.h>
(...skipping 1306 matching lines...) Expand 10 before | Expand all | Expand 10 after
1317 INLINE(static void CopyCharsUnsigned(sinkchar* dest, 1317 INLINE(static void CopyCharsUnsigned(sinkchar* dest,
1318 const sourcechar* src, 1318 const sourcechar* src,
1319 int chars)); 1319 int chars));
1320 #if defined(V8_HOST_ARCH_ARM) 1320 #if defined(V8_HOST_ARCH_ARM)
1321 INLINE(void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars)); 1321 INLINE(void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars));
1322 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint8_t* src, int chars)); 1322 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint8_t* src, int chars));
1323 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars)); 1323 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars));
1324 #elif defined(V8_HOST_ARCH_MIPS) 1324 #elif defined(V8_HOST_ARCH_MIPS)
1325 INLINE(void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars)); 1325 INLINE(void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars));
1326 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars)); 1326 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars));
1327 #elif defined(V8_HOST_ARCH_PPC)
1328 INLINE(void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars));
1329 INLINE(void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars));
1327 #endif 1330 #endif
1328 1331
1329 // Copy from 8bit/16bit chars to 8bit/16bit chars. 1332 // Copy from 8bit/16bit chars to 8bit/16bit chars.
1330 template <typename sourcechar, typename sinkchar> 1333 template <typename sourcechar, typename sinkchar>
1331 INLINE(void CopyChars(sinkchar* dest, const sourcechar* src, int chars)); 1334 INLINE(void CopyChars(sinkchar* dest, const sourcechar* src, int chars));
1332 1335
1333 template<typename sourcechar, typename sinkchar> 1336 template<typename sourcechar, typename sinkchar>
1334 void CopyChars(sinkchar* dest, const sourcechar* src, int chars) { 1337 void CopyChars(sinkchar* dest, const sourcechar* src, int chars) {
1335 DCHECK(sizeof(sourcechar) <= 2); 1338 DCHECK(sizeof(sourcechar) <= 2);
1336 DCHECK(sizeof(sinkchar) <= 2); 1339 DCHECK(sizeof(sinkchar) <= 2);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1476 } 1479 }
1477 } 1480 }
1478 1481
1479 void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars) { 1482 void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars) {
1480 if (chars < kMinComplexMemCopy) { 1483 if (chars < kMinComplexMemCopy) {
1481 memcpy(dest, src, chars * sizeof(*dest)); 1484 memcpy(dest, src, chars * sizeof(*dest));
1482 } else { 1485 } else {
1483 MemCopy(dest, src, chars * sizeof(*dest)); 1486 MemCopy(dest, src, chars * sizeof(*dest));
1484 } 1487 }
1485 } 1488 }
1489 #elif defined(V8_HOST_ARCH_PPC)
1490 #define CASE(n) \
1491 case n: \
1492 memcpy(dest, src, n); \
1493 break
1494 void CopyCharsUnsigned(uint8_t* dest, const uint8_t* src, int chars) {
1495 switch (static_cast<unsigned>(chars)) {
1496 case 0:
1497 break;
1498 case 1:
1499 *dest = *src;
1500 break;
1501 CASE(2);
1502 CASE(3);
1503 CASE(4);
1504 CASE(5);
1505 CASE(6);
1506 CASE(7);
1507 CASE(8);
1508 CASE(9);
1509 CASE(10);
1510 CASE(11);
1511 CASE(12);
1512 CASE(13);
1513 CASE(14);
1514 CASE(15);
1515 CASE(16);
1516 CASE(17);
1517 CASE(18);
1518 CASE(19);
1519 CASE(20);
1520 CASE(21);
1521 CASE(22);
1522 CASE(23);
1523 CASE(24);
1524 CASE(25);
1525 CASE(26);
1526 CASE(27);
1527 CASE(28);
1528 CASE(29);
1529 CASE(30);
1530 CASE(31);
1531 CASE(32);
1532 CASE(33);
1533 CASE(34);
1534 CASE(35);
1535 CASE(36);
1536 CASE(37);
1537 CASE(38);
1538 CASE(39);
1539 CASE(40);
1540 CASE(41);
1541 CASE(42);
1542 CASE(43);
1543 CASE(44);
1544 CASE(45);
1545 CASE(46);
1546 CASE(47);
1547 CASE(48);
1548 CASE(49);
1549 CASE(50);
1550 CASE(51);
1551 CASE(52);
1552 CASE(53);
1553 CASE(54);
1554 CASE(55);
1555 CASE(56);
1556 CASE(57);
1557 CASE(58);
1558 CASE(59);
1559 CASE(60);
1560 CASE(61);
1561 CASE(62);
1562 CASE(63);
1563 CASE(64);
1564 default:
1565 memcpy(dest, src, chars);
1566 break;
1567 }
1568 }
1569 #undef CASE
1570
1571 #define CASE(n) \
1572 case n: \
1573 memcpy(dest, src, n * 2); \
1574 break
1575 void CopyCharsUnsigned(uint16_t* dest, const uint16_t* src, int chars) {
1576 switch (static_cast<unsigned>(chars)) {
1577 case 0:
1578 break;
1579 case 1:
1580 *dest = *src;
1581 break;
1582 CASE(2);
1583 CASE(3);
1584 CASE(4);
1585 CASE(5);
1586 CASE(6);
1587 CASE(7);
1588 CASE(8);
1589 CASE(9);
1590 CASE(10);
1591 CASE(11);
1592 CASE(12);
1593 CASE(13);
1594 CASE(14);
1595 CASE(15);
1596 CASE(16);
1597 CASE(17);
1598 CASE(18);
1599 CASE(19);
1600 CASE(20);
1601 CASE(21);
1602 CASE(22);
1603 CASE(23);
1604 CASE(24);
1605 CASE(25);
1606 CASE(26);
1607 CASE(27);
1608 CASE(28);
1609 CASE(29);
1610 CASE(30);
1611 CASE(31);
1612 CASE(32);
1613 default:
1614 memcpy(dest, src, chars * 2);
1615 break;
1616 }
1617 }
1618 #undef CASE
1486 #endif 1619 #endif
1487 1620
1488 1621
1489 class StringBuilder : public SimpleStringBuilder { 1622 class StringBuilder : public SimpleStringBuilder {
1490 public: 1623 public:
1491 explicit StringBuilder(int size) : SimpleStringBuilder(size) { } 1624 explicit StringBuilder(int size) : SimpleStringBuilder(size) { }
1492 StringBuilder(char* buffer, int size) : SimpleStringBuilder(buffer, size) { } 1625 StringBuilder(char* buffer, int size) : SimpleStringBuilder(buffer, size) { }
1493 1626
1494 // Add formatted contents to the builder just like printf(). 1627 // Add formatted contents to the builder just like printf().
1495 void AddFormatted(const char* format, ...); 1628 void AddFormatted(const char* format, ...);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1537 // Takes the address of the limit variable in order to find out where 1670 // Takes the address of the limit variable in order to find out where
1538 // the top of stack is right now. 1671 // the top of stack is right now.
1539 uintptr_t limit = reinterpret_cast<uintptr_t>(&limit); 1672 uintptr_t limit = reinterpret_cast<uintptr_t>(&limit);
1540 return limit; 1673 return limit;
1541 } 1674 }
1542 1675
1543 } // namespace internal 1676 } // namespace internal
1544 } // namespace v8 1677 } // namespace v8
1545 1678
1546 #endif // V8_UTILS_H_ 1679 #endif // V8_UTILS_H_
OLDNEW
« no previous file with comments | « src/simulator.h ('k') | test/cctest/cctest.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698