Changeset 75131 in vbox for trunk/include/iprt/asm-watcom-x86-16.h
- Timestamp:
- Oct 28, 2018 5:33:38 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/asm-watcom-x86-16.h
r69105 r75131 39 39 * the mangling, because the symbol in #pragma aux [symbol] statements 40 40 * doesn't get subjected to preprocessing. This is also why we include 41 * the watcom header at the top rather than at the bottom of the 42 * asm-amd64-x86.h file. 41 * the watcom header at both the top and the bottom of asm.h file. 43 42 */ 44 43 45 44 #undef ASMCompilerBarrier 46 #if 0 /* overkill version. */ 47 # pragma aux ASMCompilerBarrier = \ 45 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 46 # if 0 /* overkill version. */ 47 # pragma aux ASMCompilerBarrier = \ 48 48 "nop" \ 49 49 parm [] \ 50 50 modify exact [ax bx cx dx es ds]; 51 # else52 # pragma aux ASMCompilerBarrier = \51 # else 52 # pragma aux ASMCompilerBarrier = \ 53 53 "" \ 54 54 parm [] \ 55 55 modify exact []; 56 # endif 56 57 #endif 57 58 58 59 #undef ASMNopPause 60 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 59 61 #pragma aux ASMNopPause = \ 60 62 ".686p" \ … … 63 65 parm [] nomemory \ 64 66 modify exact [] nomemory; 67 #endif 65 68 66 69 #undef ASMAtomicXchgU8 70 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 67 71 #pragma aux ASMAtomicXchgU8 = \ 68 72 "xchg es:[bx], al" \ … … 70 74 value [al] \ 71 75 modify exact [al]; 76 #endif 72 77 73 78 #undef ASMAtomicXchgU16 79 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 74 80 #pragma aux ASMAtomicXchgU16 = \ 75 81 "xchg es:[bx], ax" \ … … 77 83 value [ax] \ 78 84 modify exact [ax]; 85 #endif 79 86 80 87 #undef ASMAtomicXchgU32 88 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 81 89 #pragma aux ASMAtomicXchgU32 = \ 82 90 ".386" \ … … 89 97 value [ax cx] \ 90 98 modify exact [ax cx]; 99 #endif 91 100 92 101 #undef ASMAtomicXchgU64 102 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 93 103 #pragma aux ASMAtomicXchgU64 = \ 94 104 ".586" \ … … 110 120 value [dx cx bx ax] \ 111 121 modify exact [dx cx bx ax]; 122 #endif 112 123 113 124 #undef ASMAtomicCmpXchgU8 125 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 114 126 #pragma aux ASMAtomicCmpXchgU8 = \ 115 127 ".486" \ … … 119 131 value [al] \ 120 132 modify exact [al]; 133 #endif 121 134 122 135 #undef ASMAtomicCmpXchgU16 136 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 123 137 #pragma aux ASMAtomicCmpXchgU16 = \ 124 138 ".486" \ … … 128 142 value [al] \ 129 143 modify exact [ax]; 144 #endif 130 145 131 146 #undef ASMAtomicCmpXchgU32 147 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 132 148 #pragma aux ASMAtomicCmpXchgU32 = \ 133 149 ".486" \ … … 142 158 value [al] \ 143 159 modify exact [ax cx]; 160 #endif 144 161 145 162 /* ASMAtomicCmpXchgU64: External assembly implementation, too few registers for parameters. */ … … 148 165 149 166 #undef ASMSerializeInstructionCpuId 167 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 150 168 #pragma aux ASMSerializeInstructionCpuId = \ 151 169 ".586" \ … … 154 172 parm [] \ 155 173 modify exact [ax bx cx dx]; 174 #endif 156 175 157 176 #undef ASMSerializeInstructionIRet 177 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 158 178 #pragma aux ASMSerializeInstructionIRet = \ 159 179 "pushf" \ … … 166 186 parm [] \ 167 187 modify exact []; 188 #endif 168 189 169 190 #undef ASMSerializeInstructionRdTscp 191 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 170 192 #pragma aux ASMSerializeInstructionRdTscp = \ 171 193 0x0f 0x01 0xf9 \ 172 194 parm [] \ 173 195 modify exact [ax dx cx]; 196 #endif 174 197 175 198 #undef ASMAtomicReadU64 199 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 176 200 #pragma aux ASMAtomicReadU64 = \ 177 201 ".586" \ … … 189 213 value [dx cx bx ax] \ 190 214 modify exact [dx cx bx ax]; 215 #endif 191 216 192 217 #undef ASMAtomicUoReadU64 218 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 193 219 #pragma aux ASMAtomicUoReadU64 = \ 194 220 ".586" \ … … 206 232 value [dx cx bx ax] \ 207 233 modify exact [dx cx bx ax]; 234 #endif 208 235 209 236 #undef ASMAtomicAddU16 237 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 210 238 #pragma aux ASMAtomicAddU16 = \ 211 239 ".486" \ … … 214 242 value [ax] \ 215 243 modify exact [ax]; 244 #endif 216 245 217 246 #undef ASMAtomicAddU32 247 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 218 248 #pragma aux ASMAtomicAddU32 = \ 219 249 ".486" \ … … 226 256 value [ax dx] \ 227 257 modify exact [ax dx]; 258 #endif 228 259 229 260 #undef ASMAtomicIncU16 261 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 230 262 #pragma aux ASMAtomicIncU16 = \ 231 263 ".486" \ … … 236 268 value [ax] \ 237 269 modify exact [ax]; 270 #endif 238 271 239 272 #undef ASMAtomicIncU32 273 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 240 274 #pragma aux ASMAtomicIncU32 = \ 241 275 ".486" \ … … 248 282 value [ax dx] \ 249 283 modify exact [ax dx]; 284 #endif 250 285 251 286 /* ASMAtomicIncU64: Should be done by C inline or in external file. */ 252 287 253 288 #undef ASMAtomicDecU16 289 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 254 290 #pragma aux ASMAtomicDecU16 = \ 255 291 ".486" \ … … 260 296 value [ax] \ 261 297 modify exact [ax]; 298 #endif 262 299 263 300 #undef ASMAtomicDecU32 301 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 264 302 #pragma aux ASMAtomicDecU32 = \ 265 303 ".486" \ … … 272 310 value [ax dx] \ 273 311 modify exact [ax dx]; 312 #endif 274 313 275 314 /* ASMAtomicDecU64: Should be done by C inline or in external file. */ 276 315 277 316 #undef ASMAtomicOrU32 317 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 278 318 #pragma aux ASMAtomicOrU32 = \ 279 319 ".386" \ … … 283 323 parm [es bx] [ax dx] \ 284 324 modify exact [dx]; 325 #endif 285 326 286 327 /* ASMAtomicOrU64: Should be done by C inline or in external file. */ 287 328 288 329 #undef ASMAtomicAndU32 330 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 289 331 #pragma aux ASMAtomicAndU32 = \ 290 332 ".386" \ … … 294 336 parm [es bx] [ax dx] \ 295 337 modify exact [dx]; 338 #endif 296 339 297 340 /* ASMAtomicAndU64: Should be done by C inline or in external file. */ 298 341 299 342 #undef ASMAtomicUoOrU32 343 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 300 344 #pragma aux ASMAtomicUoOrU32 = \ 301 345 ".386" \ … … 305 349 parm [es bx] [ax dx] \ 306 350 modify exact [dx]; 351 #endif 307 352 308 353 /* ASMAtomicUoOrU64: Should be done by C inline or in external file. */ 309 354 310 355 #undef ASMAtomicUoAndU32 356 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 311 357 #pragma aux ASMAtomicUoAndU32 = \ 312 358 ".386" \ … … 316 362 parm [es bx] [ax dx] \ 317 363 modify exact [dx]; 364 #endif 318 365 319 366 /* ASMAtomicUoAndU64: Should be done by C inline or in external file. */ 320 367 321 368 #undef ASMAtomicUoIncU32 369 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 322 370 #pragma aux ASMAtomicUoIncU32 = \ 323 371 ".486" \ … … 330 378 value [ax dx] \ 331 379 modify exact [ax dx]; 380 #endif 332 381 333 382 #undef ASMAtomicUoDecU32 383 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 334 384 #pragma aux ASMAtomicUoDecU32 = \ 335 385 ".486" \ … … 342 392 value [ax dx] \ 343 393 modify exact [ax dx]; 394 #endif 344 395 345 396 #undef ASMMemZeroPage 346 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 347 # pragma aux ASMMemZeroPage = \ 397 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 398 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 399 # pragma aux ASMMemZeroPage = \ 348 400 "mov cx, 2048" \ 349 401 "xor ax, ax" \ … … 351 403 parm [es di] \ 352 404 modify exact [ax cx di]; 353 # else354 # pragma aux ASMMemZeroPage = \405 # else 406 # pragma aux ASMMemZeroPage = \ 355 407 "mov ecx, 1024" \ 356 408 "xor eax, eax" \ … … 358 410 parm [es di] \ 359 411 modify exact [ax cx di]; 412 # endif 360 413 #endif 361 414 362 415 #undef ASMMemZero32 363 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 364 # pragma aux ASMMemZero32 = \ 416 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 417 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 418 # pragma aux ASMMemZero32 = \ 365 419 "xor ax, ax" \ 366 420 "shr cx, 1" \ … … 369 423 parm [es di] [cx] \ 370 424 modify exact [ax dx cx di]; 371 # else372 # pragma aux ASMMemZero32 = \425 # else 426 # pragma aux ASMMemZero32 = \ 373 427 "and ecx, 0ffffh" /* probably not necessary, lazy bird should check... */ \ 374 428 "shr ecx, 2" \ … … 377 431 parm [es di] [cx] \ 378 432 modify exact [ax cx di]; 433 # endif 379 434 #endif 380 435 381 436 #undef ASMMemFill32 382 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 383 # pragma aux ASMMemFill32 = \ 437 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 438 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 439 # pragma aux ASMMemFill32 = \ 384 440 " shr cx, 1" \ 385 441 " shr cx, 1" \ … … 395 451 parm [es di] [cx] [ax dx]\ 396 452 modify exact [cx di]; 397 # else398 # pragma aux ASMMemFill32 = \453 # else 454 # pragma aux ASMMemFill32 = \ 399 455 "and ecx, 0ffffh" /* probably not necessary, lazy bird should check... */ \ 400 456 "shr ecx, 2" \ … … 405 461 parm [es di] [cx] [ax dx]\ 406 462 modify exact [ax cx di]; 463 # endif 407 464 #endif 408 465 409 466 #undef ASMProbeReadByte 467 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 410 468 #pragma aux ASMProbeReadByte = \ 411 469 "mov al, es:[bx]" \ … … 413 471 value [al] \ 414 472 modify exact [al]; 473 #endif 415 474 416 475 #undef ASMBitSet 417 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 418 # pragma aux ASMBitSet = \ 476 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 477 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 478 # pragma aux ASMBitSet = \ 419 479 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 420 480 " mov cl, 5" \ … … 432 492 parm [es bx] [ax cx] \ 433 493 modify exact [ax bx cx]; 434 # else435 # pragma aux ASMBitSet = \494 # else 495 # pragma aux ASMBitSet = \ 436 496 "shl edx, 16" \ 437 497 "mov dx, ax" \ … … 439 499 parm [es bx] [ax dx] \ 440 500 modify exact [dx]; 501 # endif 441 502 #endif 442 503 443 504 #undef ASMAtomicBitSet 505 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 444 506 #pragma aux ASMAtomicBitSet = \ 445 507 ".386" \ … … 449 511 parm [es bx] [ax dx] \ 450 512 modify exact [dx]; 513 #endif 451 514 452 515 #undef ASMBitClear 453 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 454 # pragma aux ASMBitClear = \ 516 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 517 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 518 # pragma aux ASMBitClear = \ 455 519 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 456 520 " mov cl, 5" \ … … 469 533 parm [es bx] [ax cx] \ 470 534 modify exact [ax bx cx]; 471 # else472 # pragma aux ASMBitClear = \535 # else 536 # pragma aux ASMBitClear = \ 473 537 "shl edx, 16" \ 474 538 "mov dx, ax" \ … … 476 540 parm [es bx] [ax dx] \ 477 541 modify exact [dx]; 542 # endif 478 543 #endif 479 544 480 545 #undef ASMAtomicBitClear 546 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 481 547 #pragma aux ASMAtomicBitClear = \ 482 548 ".386" \ … … 486 552 parm [es bx] [ax dx] \ 487 553 modify exact [dx]; 554 #endif 488 555 489 556 #undef ASMBitToggle 490 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 491 # pragma aux ASMBitToggle = \ 557 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 558 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 559 # pragma aux ASMBitToggle = \ 492 560 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 493 561 " mov cl, 5" \ … … 505 573 parm [es bx] [ax cx] \ 506 574 modify exact [ax bx cx]; 507 # else508 # pragma aux ASMBitToggle = \575 # else 576 # pragma aux ASMBitToggle = \ 509 577 "shl edx, 16" \ 510 578 "mov dx, ax" \ … … 512 580 parm [es bx] [ax dx] \ 513 581 modify exact [dx]; 582 # endif 514 583 #endif 515 584 516 585 #undef ASMAtomicBitToggle 586 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 517 587 #pragma aux ASMAtomicBitToggle = \ 518 588 ".386" \ … … 522 592 parm [es bx] [ax dx] \ 523 593 modify exact [dx]; 594 #endif 524 595 525 596 #undef ASMBitTestAndSet 526 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 527 # pragma aux ASMBitTestAndSet = \ 597 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 598 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 599 # pragma aux ASMBitTestAndSet = \ 528 600 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 529 601 " mov cl, 5" \ … … 546 618 value [al] \ 547 619 modify exact [ax bx cx]; 548 # else549 # pragma aux ASMBitTestAndSet = \620 # else 621 # pragma aux ASMBitTestAndSet = \ 550 622 "shl edx, 16" \ 551 623 "mov dx, ax" \ … … 555 627 value [al] \ 556 628 modify exact [ax dx]; 629 # endif 557 630 #endif 558 631 559 632 #undef ASMAtomicBitTestAndSet 633 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 560 634 #pragma aux ASMAtomicBitTestAndSet = \ 561 635 ".386" \ … … 567 641 value [al] \ 568 642 modify exact [ax dx]; 643 #endif 569 644 570 645 #undef ASMBitTestAndClear 571 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 572 # pragma aux ASMBitTestAndClear = \ 646 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 647 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 648 # pragma aux ASMBitTestAndClear = \ 573 649 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 574 650 " mov cl, 5" \ … … 592 668 value [al] \ 593 669 modify exact [ax bx cx]; 594 # else595 # pragma aux ASMBitTestAndClear = \670 # else 671 # pragma aux ASMBitTestAndClear = \ 596 672 "shl edx, 16" \ 597 673 "mov dx, ax" \ … … 601 677 value [al] \ 602 678 modify exact [ax dx]; 679 # endif 603 680 #endif 604 681 605 682 #undef ASMAtomicBitTestAndClear 683 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 606 684 #pragma aux ASMAtomicBitTestAndClear = \ 607 685 ".386" \ … … 613 691 value [al] \ 614 692 modify exact [ax dx]; 693 #endif 615 694 616 695 #undef ASMBitTestAndToggle 617 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 618 # pragma aux ASMBitTestAndToggle = \ 696 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 697 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 698 # pragma aux ASMBitTestAndToggle = \ 619 699 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 620 700 " mov cl, 5" \ … … 637 717 value [al] \ 638 718 modify exact [ax bx cx]; 639 # else640 # pragma aux ASMBitTestAndToggle = \719 # else 720 # pragma aux ASMBitTestAndToggle = \ 641 721 "shl edx, 16" \ 642 722 "mov dx, ax" \ … … 646 726 value [al] \ 647 727 modify exact [ax dx]; 728 # endif 648 729 #endif 649 730 650 731 #undef ASMAtomicBitTestAndToggle 732 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 651 733 #pragma aux ASMAtomicBitTestAndToggle = \ 652 734 ".386" \ … … 658 740 value [al] \ 659 741 modify exact [ax dx]; 742 #endif 660 743 661 744 #undef ASMBitTest 662 #if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 663 # pragma aux ASMBitTest = \ 745 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 746 # if defined(__SW_0) || defined(__SW_1) || defined(__SW_2) 747 # pragma aux ASMBitTest = \ 664 748 " mov ch, cl" /* Only the three lowest bits are relevant due to 64KB segments */ \ 665 749 " mov cl, 5" \ … … 678 762 value [al] \ 679 763 modify exact [ax bx cx]; 680 # else681 # pragma aux ASMBitTest = \764 # else 765 # pragma aux ASMBitTest = \ 682 766 "shl edx, 16" \ 683 767 "mov dx, ax" \ … … 687 771 value [al] \ 688 772 modify exact [ax dx] nomemory; 773 # endif 689 774 #endif 690 775 … … 698 783 #else 699 784 # undef ASMBitFirstSetU32 785 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 700 786 # pragma aux ASMBitFirstSetU32 = \ 701 787 "shl edx, 16" \ … … 711 797 value [ax] \ 712 798 modify exact [ax dx] nomemory; 799 # endif 713 800 #endif 714 801 … … 717 804 #else 718 805 # undef ASMBitFirstSetU64 806 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 719 807 # pragma aux ASMBitFirstSetU64 = \ 720 808 ".386" \ … … 741 829 value [ax] \ 742 830 modify exact [ax cx] nomemory; 831 # endif 743 832 #endif 744 833 … … 747 836 #else 748 837 # undef ASMBitFirstSetU16 838 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 749 839 # pragma aux ASMBitFirstSetU16 = \ 750 840 "bsf ax, ax" \ … … 758 848 value [ax] \ 759 849 modify exact [ax] nomemory; 850 # endif 760 851 #endif 761 852 … … 764 855 #else 765 856 # undef ASMBitLastSetU32 857 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 766 858 # pragma aux ASMBitLastSetU32 = \ 767 859 "shl edx, 16" \ … … 777 869 value [ax] \ 778 870 modify exact [ax dx] nomemory; 871 # endif 779 872 #endif 780 873 … … 783 876 #else 784 877 # undef ASMBitLastSetU64 878 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 785 879 # pragma aux ASMBitLastSetU64 = \ 786 880 ".386" \ … … 807 901 value [ax] \ 808 902 modify exact [ax cx] nomemory; 903 # endif 809 904 #endif 810 905 … … 813 908 #else 814 909 # undef ASMBitLastSetU16 910 # ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 815 911 # pragma aux ASMBitLastSetU16 = \ 816 912 "bsr ax, ax" \ … … 824 920 value [ax] \ 825 921 modify exact [ax] nomemory; 922 # endif 826 923 #endif 827 924 828 925 #undef ASMByteSwapU16 926 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 829 927 #pragma aux ASMByteSwapU16 = \ 830 928 "xchg al, ah" \ … … 832 930 value [ax] \ 833 931 modify exact [ax] nomemory; 932 #endif 834 933 835 934 #undef ASMByteSwapU32 935 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 836 936 #pragma aux ASMByteSwapU32 = \ 837 937 "xchg dh, al" \ … … 840 940 value [ax dx] \ 841 941 modify exact [ax dx] nomemory; 942 #endif 842 943 843 944 #undef ASMRotateLeftU32 945 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 844 946 #pragma aux ASMRotateLeftU32 = \ 845 947 ".386" \ … … 852 954 value [ax dx] \ 853 955 modify exact [ax dx] nomemory; 956 #endif 854 957 855 958 #undef ASMRotateRightU32 959 #ifdef IPRT_ASM_WATCOM_X86_16_WITH_PRAGMAS 856 960 #pragma aux ASMRotateRightU32 = \ 857 961 ".386" \ … … 864 968 value [ax dx] \ 865 969 modify exact [ax dx] nomemory; 866 867 #endif 970 #endif 971 972 #endif
Note:
See TracChangeset
for help on using the changeset viewer.