Annotation of OpenXM_contrib2/asir2000/asm/gf2m_mul_w.c, Revision 1.1
1.1 ! noro 1: /* $OpenXM: OpenXM/src/asir99/asm/gf2m_mul_w.c,v 1.1.1.1 1999/11/10 08:12:25 noro Exp $ */
! 2: unsigned int NNgf2m_mul_11(unsigned int *h, unsigned int a, unsigned int b)
! 3: {
! 4: __asm
! 5: {
! 6: push ebx
! 7: mov ecx,a
! 8: mov edx,b
! 9: GF2ML0:
! 10: xor ebx,ebx
! 11: xor eax,eax
! 12: add edx,edx
! 13: jnc GF2ML1
! 14: xor eax,ecx
! 15: GF2ML1:
! 16: add eax,eax
! 17: adc ebx,ebx
! 18: add edx,edx
! 19: jnc GF2ML2
! 20: xor eax,ecx
! 21: GF2ML2:
! 22: add eax,eax
! 23: adc ebx,ebx
! 24: add edx,edx
! 25: jnc GF2ML3
! 26: xor eax,ecx
! 27: GF2ML3:
! 28: add eax,eax
! 29: adc ebx,ebx
! 30: add edx,edx
! 31: jnc GF2ML4
! 32: xor eax,ecx
! 33: GF2ML4:
! 34: add eax,eax
! 35: adc ebx,ebx
! 36: add edx,edx
! 37: jnc GF2ML5
! 38: xor eax,ecx
! 39: GF2ML5:
! 40: add eax,eax
! 41: adc ebx,ebx
! 42: add edx,edx
! 43: jnc GF2ML6
! 44: xor eax,ecx
! 45: GF2ML6:
! 46: add eax,eax
! 47: adc ebx,ebx
! 48: add edx,edx
! 49: jnc GF2ML7
! 50: xor eax,ecx
! 51: GF2ML7:
! 52: add eax,eax
! 53: adc ebx,ebx
! 54: add edx,edx
! 55: jnc GF2ML8
! 56: xor eax,ecx
! 57: GF2ML8:
! 58: add eax,eax
! 59: adc ebx,ebx
! 60: add edx,edx
! 61: jnc GF2ML9
! 62: xor eax,ecx
! 63: GF2ML9:
! 64: add eax,eax
! 65: adc ebx,ebx
! 66: add edx,edx
! 67: jnc GF2ML10
! 68: xor eax,ecx
! 69: GF2ML10:
! 70: add eax,eax
! 71: adc ebx,ebx
! 72: add edx,edx
! 73: jnc GF2ML11
! 74: xor eax,ecx
! 75: GF2ML11:
! 76: add eax,eax
! 77: adc ebx,ebx
! 78: add edx,edx
! 79: jnc GF2ML12
! 80: xor eax,ecx
! 81: GF2ML12:
! 82: add eax,eax
! 83: adc ebx,ebx
! 84: add edx,edx
! 85: jnc GF2ML13
! 86: xor eax,ecx
! 87: GF2ML13:
! 88: add eax,eax
! 89: adc ebx,ebx
! 90: add edx,edx
! 91: jnc GF2ML14
! 92: xor eax,ecx
! 93: GF2ML14:
! 94: add eax,eax
! 95: adc ebx,ebx
! 96: add edx,edx
! 97: jnc GF2ML15
! 98: xor eax,ecx
! 99: GF2ML15:
! 100: add eax,eax
! 101: adc ebx,ebx
! 102: add edx,edx
! 103: jnc GF2ML16
! 104: xor eax,ecx
! 105: GF2ML16:
! 106: add eax,eax
! 107: adc ebx,ebx
! 108: add edx,edx
! 109: jnc GF2ML17
! 110: xor eax,ecx
! 111: GF2ML17:
! 112: add eax,eax
! 113: adc ebx,ebx
! 114: add edx,edx
! 115: jnc GF2ML18
! 116: xor eax,ecx
! 117: GF2ML18:
! 118: add eax,eax
! 119: adc ebx,ebx
! 120: add edx,edx
! 121: jnc GF2ML19
! 122: xor eax,ecx
! 123: GF2ML19:
! 124: add eax,eax
! 125: adc ebx,ebx
! 126: add edx,edx
! 127: jnc GF2ML20
! 128: xor eax,ecx
! 129: GF2ML20:
! 130: add eax,eax
! 131: adc ebx,ebx
! 132: add edx,edx
! 133: jnc GF2ML21
! 134: xor eax,ecx
! 135: GF2ML21:
! 136: add eax,eax
! 137: adc ebx,ebx
! 138: add edx,edx
! 139: jnc GF2ML22
! 140: xor eax,ecx
! 141: GF2ML22:
! 142: add eax,eax
! 143: adc ebx,ebx
! 144: add edx,edx
! 145: jnc GF2ML23
! 146: xor eax,ecx
! 147: GF2ML23:
! 148: add eax,eax
! 149: adc ebx,ebx
! 150: add edx,edx
! 151: jnc GF2ML24
! 152: xor eax,ecx
! 153: GF2ML24:
! 154: add eax,eax
! 155: adc ebx,ebx
! 156: add edx,edx
! 157: jnc GF2ML25
! 158: xor eax,ecx
! 159: GF2ML25:
! 160: add eax,eax
! 161: adc ebx,ebx
! 162: add edx,edx
! 163: jnc GF2ML26
! 164: xor eax,ecx
! 165: GF2ML26:
! 166: add eax,eax
! 167: adc ebx,ebx
! 168: add edx,edx
! 169: jnc GF2ML27
! 170: xor eax,ecx
! 171: GF2ML27:
! 172: add eax,eax
! 173: adc ebx,ebx
! 174: add edx,edx
! 175: jnc GF2ML28
! 176: xor eax,ecx
! 177: GF2ML28:
! 178: add eax,eax
! 179: adc ebx,ebx
! 180: add edx,edx
! 181: jnc GF2ML29
! 182: xor eax,ecx
! 183: GF2ML29:
! 184: add eax,eax
! 185: adc ebx,ebx
! 186: add edx,edx
! 187: jnc GF2ML30
! 188: xor eax,ecx
! 189: GF2ML30:
! 190: add eax,eax
! 191: adc ebx,ebx
! 192: add edx,edx
! 193: jnc GF2ML31
! 194: xor eax,ecx
! 195: GF2ML31:
! 196: add eax,eax
! 197: adc ebx,ebx
! 198: add edx,edx
! 199: jnc GF2ML32
! 200: xor eax,ecx
! 201: GF2ML32:
! 202: mov ecx,h
! 203: mov DWORD PTR [ecx], ebx
! 204: pop ebx
! 205: }
! 206: }
! 207:
! 208: unsigned int NNgf2m_mul_1h(unsigned int *h, unsigned int a, unsigned int b)
! 209: {
! 210: __asm
! 211: {
! 212: push ebx
! 213: mov ecx,a
! 214: mov edx,b
! 215: shl edx,0x10
! 216: GF2MLL0:
! 217: xor ebx,ebx
! 218: xor eax,eax
! 219: add edx,edx
! 220: jnc GF2MLL1
! 221: xor eax,ecx
! 222: GF2MLL1:
! 223: add eax,eax
! 224: adc ebx,ebx
! 225: add edx,edx
! 226: jnc GF2MLL2
! 227: xor eax,ecx
! 228: GF2MLL2:
! 229: add eax,eax
! 230: adc ebx,ebx
! 231: add edx,edx
! 232: jnc GF2MLL3
! 233: xor eax,ecx
! 234: GF2MLL3:
! 235: add eax,eax
! 236: adc ebx,ebx
! 237: add edx,edx
! 238: jnc GF2MLL4
! 239: xor eax,ecx
! 240: GF2MLL4:
! 241: add eax,eax
! 242: adc ebx,ebx
! 243: add edx,edx
! 244: jnc GF2MLL5
! 245: xor eax,ecx
! 246: GF2MLL5:
! 247: add eax,eax
! 248: adc ebx,ebx
! 249: add edx,edx
! 250: jnc GF2MLL6
! 251: xor eax,ecx
! 252: GF2MLL6:
! 253: add eax,eax
! 254: adc ebx,ebx
! 255: add edx,edx
! 256: jnc GF2MLL7
! 257: xor eax,ecx
! 258: GF2MLL7:
! 259: add eax,eax
! 260: adc ebx,ebx
! 261: add edx,edx
! 262: jnc GF2MLL8
! 263: xor eax,ecx
! 264: GF2MLL8:
! 265: add eax,eax
! 266: adc ebx,ebx
! 267: add edx,edx
! 268: jnc GF2MLL9
! 269: xor eax,ecx
! 270: GF2MLL9:
! 271: add eax,eax
! 272: adc ebx,ebx
! 273: add edx,edx
! 274: jnc GF2MLL10
! 275: xor eax,ecx
! 276: GF2MLL10:
! 277: add eax,eax
! 278: adc ebx,ebx
! 279: add edx,edx
! 280: jnc GF2MLL11
! 281: xor eax,ecx
! 282: GF2MLL11:
! 283: add eax,eax
! 284: adc ebx,ebx
! 285: add edx,edx
! 286: jnc GF2MLL12
! 287: xor eax,ecx
! 288: GF2MLL12:
! 289: add eax,eax
! 290: adc ebx,ebx
! 291: add edx,edx
! 292: jnc GF2MLL13
! 293: xor eax,ecx
! 294: GF2MLL13:
! 295: add eax,eax
! 296: adc ebx,ebx
! 297: add edx,edx
! 298: jnc GF2MLL14
! 299: xor eax,ecx
! 300: GF2MLL14:
! 301: add eax,eax
! 302: adc ebx,ebx
! 303: add edx,edx
! 304: jnc GF2MLL15
! 305: xor eax,ecx
! 306: GF2MLL15:
! 307: add eax,eax
! 308: adc ebx,ebx
! 309: add edx,edx
! 310: jnc GF2MLL16
! 311: xor eax,ecx
! 312: GF2MLL16:
! 313: mov ecx,h
! 314: mov DWORD PTR [ecx],ebx;
! 315: pop ebx
! 316: }
! 317: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>