equal
deleted
inserted
replaced
3381 */ |
3381 */ |
3382 while (_index < _comLen) { |
3382 while (_index < _comLen) { |
3383 unsigned int _sum; |
3383 unsigned int _sum; |
3384 |
3384 |
3385 _sum = _carry |
3385 _sum = _carry |
3386 + *(unsigned short *)(&(_myDigits[_index - 1])) |
3386 + ((unsigned short *)(&(_myDigits[_index - 1])))[0] |
3387 + *(unsigned short *)(&(_otherDigits[_index - 1])); |
3387 + ((unsigned short *)(&(_otherDigits[_index - 1])))[0]; |
3388 _carry = _sum >> 16; |
3388 _carry = _sum >> 16; |
3389 /* _sum = _sum & 0xFFFF; */ |
3389 /* _sum = _sum & 0xFFFF; */ |
3390 *(unsigned short *)(&(_newDigits[_index - 1])) = _sum; |
3390 *(unsigned short *)(&(_newDigits[_index - 1])) = _sum; |
3391 _index += 2; |
3391 _index += 2; |
3392 } |
3392 } |
|
3393 #else |
|
3394 # ifdef sparc |
|
3395 /* |
|
3396 * add short-wise |
|
3397 * accessing bytes at: [index-1][index] |
|
3398 */ |
|
3399 while (_index < _comLen) { |
|
3400 unsigned int _sum; |
|
3401 unsigned short _v1, _v2; |
|
3402 |
|
3403 _v1 = ((unsigned short *)(&(_myDigits[_index - 1])))[0]; |
|
3404 _v2 = ((unsigned short *)(&(_otherDigits[_index - 1])))[0]; |
|
3405 _sum = _carry + (_v1>>8) + (_v2>>8); |
|
3406 _carry = _sum >> 8; |
|
3407 _newDigits[_index - 1] = _sum; |
|
3408 |
|
3409 _sum = _carry + (_v1 & 0xFF) + (_v2 & 0xFF); |
|
3410 _carry = _sum >> 8; |
|
3411 _newDigits[_index] = _sum; |
|
3412 _index += 2; |
|
3413 } |
|
3414 # endif |
3393 #endif /* __LSBFIRST */ |
3415 #endif /* __LSBFIRST */ |
3394 |
3416 |
3395 /* |
3417 /* |
3396 * add byte-wise |
3418 * add byte-wise |
3397 */ |
3419 */ |
4039 ! ! |
4061 ! ! |
4040 |
4062 |
4041 !LargeInteger class methodsFor:'documentation'! |
4063 !LargeInteger class methodsFor:'documentation'! |
4042 |
4064 |
4043 version |
4065 version |
4044 ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.127 1999-06-06 19:17:28 cg Exp $' |
4066 ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.128 1999-06-06 20:47:21 cg Exp $' |
4045 ! ! |
4067 ! ! |