|
|
1.1 ! root 1: ! 2: ! 3: #if defined(USE_WIN32_ASSEMBLER) ! 4: ! 5: ! 6: ! 7: #include "mpilib.h" ! 8: ! 9: ! 10: ! 11: #if defined(SMITH) ! 12: ! 13: ! 14: ! 15: extern unit reciph,recipl; ! 16: ! 17: extern int mshift; ! 18: ! 19: ! 20: ! 21: #if !defined(_MSC_VER) ! 22: ! 23: #error "This code needs a Microsoft compiler" ! 24: ! 25: #endif ! 26: ! 27: ! 28: ! 29: #if defined(_M_IX86) ! 30: ! 31: ! 32: ! 33: #pragma warning(disable:4035) ! 34: ! 35: ! 36: ! 37: ! 38: ! 39: unit P_QUO_DIGIT (unitptr dividend) ! 40: ! 41: { ! 42: ! 43: __asm{ ! 44: ! 45: mov esi,DWORD PTR [dividend] ! 46: ! 47: push ebp ! 48: ! 49: mov eax, DWORD PTR [esi-8] ! 50: ! 51: not eax ! 52: ! 53: mul DWORD PTR [reciph] ! 54: ! 55: add eax,DWORD PTR [reciph] ! 56: ! 57: adc edx,0 ! 58: ! 59: mov ebx,eax ! 60: ! 61: mov edi,edx ! 62: ! 63: mov eax,DWORD PTR [esi-4] ! 64: ! 65: not eax ! 66: ! 67: mul DWORD PTR [recipl] ! 68: ! 69: inc edx ! 70: ! 71: mov ebp,edx ! 72: ! 73: and ebp,edi ! 74: ! 75: and ebp,1 ! 76: ! 77: ! 78: ! 79: add eax,ebx ! 80: ! 81: adc edi,edx ! 82: ! 83: rcr edi,1 ! 84: ! 85: mov eax,DWORD PTR [esi-4] ! 86: ! 87: not eax ! 88: ! 89: mul DWORD PTR [reciph] ! 90: ! 91: mov ebx,eax ! 92: ! 93: mov ecx,edx ! 94: ! 95: mov eax, DWORD PTR [esi] ! 96: ! 97: not eax ! 98: ! 99: mul DWORD PTR [recipl] ! 100: ! 101: xor eax,ebx ! 102: ! 103: and ebp,eax ! 104: ! 105: xor eax,ebx ! 106: ! 107: add eax,ebx ! 108: ! 109: adc edx,ecx ! 110: ! 111: rcr edx,1 ! 112: ! 113: rcr eax,1 ! 114: ! 115: add eax,edi ! 116: ! 117: adc edx,0 ! 118: ! 119: add eax,ebp ! 120: ! 121: adc edx,0 ! 122: ! 123: shl eax,1 ! 124: ! 125: rcl edx,1 ! 126: ! 127: rcl eax,1 ! 128: ! 129: rcl edx,1 ! 130: ! 131: rcl eax,1 ! 132: ! 133: and eax,3 ! 134: ! 135: mov ecx,eax ! 136: ! 137: mov ebx,edx ! 138: ! 139: mov eax,DWORD PTR [esi] ! 140: ! 141: not eax ! 142: ! 143: mul DWORD PTR [reciph] ! 144: ! 145: shl eax,1 ! 146: ! 147: rcl edx,1 ! 148: ! 149: add eax,ebx ! 150: ! 151: adc edx,ecx ! 152: ! 153: mov ecx, DWORD PTR [mshift] ! 154: ! 155: cmp DWORD PTR [mshift],32 ! 156: ! 157: je L2 ! 158: ! 159: shrd eax,edx,cl ! 160: ! 161: shr edx,cl ! 162: ! 163: or edx,edx ! 164: ! 165: je L1 ! 166: ! 167: mov eax,-1 ! 168: ! 169: jmp L1 ! 170: ! 171: L2: ! 172: ! 173: xchg eax,edx ! 174: ! 175: L1: ! 176: ! 177: pop ebp ! 178: ! 179: } ! 180: ! 181: } ! 182: ! 183: ! 184: ! 185: #pragma warning(default:4035) ! 186: ! 187: ! 188: ! 189: #endif /* X86 */ ! 190: ! 191: ! 192: ! 193: #if defined(_M_PPC) ! 194: ! 195: #error "We've not written the PowerPC Code Yet!" ! 196: ! 197: #endif /* _M_PPC */ ! 198: ! 199: ! 200: ! 201: #if defined(_M_ALPHA) ! 202: ! 203: #error "We've not written the Alpha Code Yet!" ! 204: ! 205: #endif /* _M_ALPHA */ ! 206: ! 207: ! 208: ! 209: #if defined(_M_MRX000) ! 210: ! 211: #error "We've not written the MIPS Code Yet!" ! 212: ! 213: #endif /* _M_MRX000 */ ! 214: ! 215: ! 216: ! 217: #endif /*#defined(SMITH) */ ! 218: ! 219: ! 220: ! 221: #endif /* USE_WIN32_ASSEMBLER */ ! 222:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.