VirtualBox

Changeset 8979 in vbox for trunk/src/VBox/Disassembler


Ignore:
Timestamp:
May 20, 2008 7:48:26 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
31053
Message:

The rest.

Location:
trunk/src/VBox/Disassembler/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Disassembler/testcase/tstAsmLock-1.asm

    r8976 r8979  
    2626%include "tstAsm.mac"
    2727%if TEST_BITS == 64
     28
    2829; The disassembler doesn't do imm32 right for 64-bit stuff, so disable it for now.
    2930; %define WITH_64_BIT_TESTS_IMM32
     31
    3032; The cmpxchg16b/8b stuff isn't handled correctly in 64-bit mode. In the 8b case
    3133; it could be both yasm and the vbox disassembler. Have to check docs/gas/nasm.
    3234; %define WITH_64_BIT_TESTS_CMPXCHG16B
     35
     36; Seems there are some issues with the byte, word and dword variants of r8-15.
     37; Again, this could be yasm issues too...
     38; %define WITH_64_BIT_TESTS_BORKED_REGS
     39
    3340 %define WITH_64_BIT_TESTS
    3441%endif
     
    565572%endif
    566573
     574    ;
    567575    ; XADD
    568 
    569 %if 0
     576    ;
     577        ; 0f c0 /r      XADD reg/mem8, reg8 - sans reg dst
     578    lock xadd byte [1000h], bl
     579    lock xadd byte [xBX], bl
     580    lock xadd byte [xDI], bl
     581        ; 0f c1 /r      XADD reg/memX, immX - sans reg dst
     582    lock xadd word [1000h], cx
     583    lock xadd word [xBX], cx
     584    lock xadd word [xDI], cx
     585    lock xadd dword [1000h], edx
     586    lock xadd dword [xBX], edx
     587    lock xadd dword [xDI], edx
     588%ifdef WITH_64_BIT_TESTS
     589    lock xadd qword [1000h], rbx
     590    lock xadd qword [xBX], rbx
     591    lock xadd qword [xDI], rbx
     592    lock xadd qword [r8], rbx
     593    lock xadd qword [r12], r8
     594%endif
     595
     596    ;
    570597    ; XCHG
    571     lock xchg [eax], eax
    572     lock xchg [ebx], eax
    573     lock xchg [ecx], eax
    574     lock xchg [edx], eax
    575     lock xchg [esp], eax
    576     lock xchg [ebp], eax
    577     lock xchg [esi], eax
    578     lock xchg [edi], eax
    579     lock xchg [eax], ebx
    580     lock xchg [ebx], ebx
    581     lock xchg [ecx], ebx
    582     lock xchg [edx], ebx
    583     lock xchg [esp], ebx
    584     lock xchg [ebp], ebx
    585     lock xchg [esi], ebx
    586     lock xchg [edi], ebx
    587     lock xchg [eax], ecx
    588     lock xchg [ebx], ecx
    589     lock xchg [ecx], ecx
    590     lock xchg [edx], ecx
    591     lock xchg [esp], ecx
    592     lock xchg [ebp], ecx
    593     lock xchg [esi], ecx
    594     lock xchg [edi], ecx
    595     lock xchg [eax], edx
    596     lock xchg [ebx], edx
    597     lock xchg [ecx], edx
    598     lock xchg [edx], edx
    599     lock xchg [esp], edx
    600     lock xchg [ebp], edx
    601     lock xchg [esi], edx
    602     lock xchg [edi], edx
    603     lock xchg [eax], esp
    604     lock xchg [ebx], esp
    605     lock xchg [ecx], esp
    606     lock xchg [edx], esp
    607     lock xchg [esp], esp
    608     lock xchg [ebp], esp
    609     lock xchg [esi], esp
    610     lock xchg [edi], esp
    611     lock xchg [eax], ebp
    612     lock xchg [ebx], ebp
    613     lock xchg [ecx], ebp
    614     lock xchg [edx], ebp
    615     lock xchg [esp], ebp
    616     lock xchg [ebp], ebp
    617     lock xchg [esi], ebp
    618     lock xchg [edi], ebp
    619     lock xchg [eax], esi
    620     lock xchg [ebx], esi
    621     lock xchg [ecx], esi
    622     lock xchg [edx], esi
    623     lock xchg [esp], esi
    624     lock xchg [ebp], esi
    625     lock xchg [esi], esi
    626     lock xchg [edi], esi
    627     lock xchg [eax], edi
    628     lock xchg [ebx], edi
    629     lock xchg [ecx], edi
    630     lock xchg [edx], edi
    631     lock xchg [esp], edi
    632     lock xchg [ebp], edi
    633     lock xchg [esi], edi
    634     lock xchg [edi], edi
    635 
    636     lock xchg [10], eax
    637     lock xchg [10], ebx
    638     lock xchg [10], ecx
    639     lock xchg [10], edx
    640     lock xchg [10], esp
    641     lock xchg [10], ebp
    642     lock xchg [10], esi
    643     lock xchg [10], edi
    644 
    645     lock xchg [10000], eax
    646     lock xchg [10000], ebx
    647     lock xchg [10000], ecx
    648     lock xchg [10000], edx
    649     lock xchg [10000], esp
    650     lock xchg [10000], ebp
    651     lock xchg [10000], esi
    652     lock xchg [10000], edi
    653 
    654     xchg [eax], eax
    655     xchg [ebx], eax
    656     xchg [ecx], eax
    657     xchg [edx], eax
    658     xchg [esp], eax
    659     xchg [ebp], eax
    660     xchg [esi], eax
    661     xchg [edi], eax
    662     xchg [eax], ebx
    663     xchg [ebx], ebx
    664     xchg [ecx], ebx
    665     xchg [edx], ebx
    666     xchg [esp], ebx
    667     xchg [ebp], ebx
    668     xchg [esi], ebx
    669     xchg [edi], ebx
    670     xchg [eax], ecx
    671     xchg [ebx], ecx
    672     xchg [ecx], ecx
    673     xchg [edx], ecx
    674     xchg [esp], ecx
    675     xchg [ebp], ecx
    676     xchg [esi], ecx
    677     xchg [edi], ecx
    678     xchg [eax], edx
    679     xchg [ebx], edx
    680     xchg [ecx], edx
    681     xchg [edx], edx
    682     xchg [esp], edx
    683     xchg [ebp], edx
    684     xchg [esi], edx
    685     xchg [edi], edx
    686     xchg [eax], esp
    687     xchg [ebx], esp
    688     xchg [ecx], esp
    689     xchg [edx], esp
    690     xchg [esp], esp
    691     xchg [ebp], esp
    692     xchg [esi], esp
    693     xchg [edi], esp
    694     xchg [eax], ebp
    695     xchg [ebx], ebp
    696     xchg [ecx], ebp
    697     xchg [edx], ebp
    698     xchg [esp], ebp
    699     xchg [ebp], ebp
    700     xchg [esi], ebp
    701     xchg [edi], ebp
    702     xchg [eax], esi
    703     xchg [ebx], esi
    704     xchg [ecx], esi
    705     xchg [edx], esi
    706     xchg [esp], esi
    707     xchg [ebp], esi
    708     xchg [esi], esi
    709     xchg [edi], esi
    710     xchg [eax], edi
    711     xchg [ebx], edi
    712     xchg [ecx], edi
    713     xchg [edx], edi
    714     xchg [esp], edi
    715     xchg [ebp], edi
    716     xchg [esi], edi
    717     xchg [edi], edi
    718 
    719     nop
    720     xchg ebx, eax
    721     xchg ecx, eax
    722     xchg edx, eax
    723     xchg esp, eax
    724     xchg ebp, eax
    725     xchg esi, eax
    726     xchg edi, eax
    727     xchg eax, ebx
    728     xchg ebx, ebx
    729     xchg ecx, ebx
    730     xchg edx, ebx
    731     xchg esp, ebx
    732     xchg ebp, ebx
    733     xchg esi, ebx
    734     xchg edi, ebx
    735     xchg eax, ecx
    736     xchg ebx, ecx
    737     xchg ecx, ecx
    738     xchg edx, ecx
    739     xchg esp, ecx
    740     xchg ebp, ecx
    741     xchg esi, ecx
    742     xchg edi, ecx
    743     xchg eax, edx
    744     xchg ebx, edx
    745     xchg ecx, edx
    746     xchg edx, edx
    747     xchg esp, edx
    748     xchg ebp, edx
    749     xchg esi, edx
    750     xchg edi, edx
    751     xchg eax, esp
    752     xchg ebx, esp
    753     xchg ecx, esp
    754     xchg edx, esp
    755     xchg esp, esp
    756     xchg ebp, esp
    757     xchg esi, esp
    758     xchg edi, esp
    759     xchg eax, ebp
    760     xchg ebx, ebp
    761     xchg ecx, ebp
    762     xchg edx, ebp
    763     xchg esp, ebp
    764     xchg ebp, ebp
    765     xchg esi, ebp
    766     xchg edi, ebp
    767     xchg eax, esi
    768     xchg ebx, esi
    769     xchg ecx, esi
    770     xchg edx, esi
    771     xchg esp, esi
    772     xchg ebp, esi
    773     xchg esi, esi
    774     xchg edi, esi
    775     xchg eax, edi
    776     xchg ebx, edi
    777     xchg ecx, edi
    778     xchg edx, edi
    779     xchg esp, edi
    780     xchg ebp, edi
    781     xchg esi, edi
    782     xchg edi, edi
    783 
     598    ;
     599    ; Note: The operands can be switched around but the
     600    ;       encoding is the same.
     601    ;
     602        ; 86 /r         XCHG reg/mem8, imm8 - sans reg dst
     603    lock xchg byte [80cch], bl
     604    lock xchg byte [xBX], bl
     605    lock xchg byte [xSI], bl
     606%ifdef WITH_64_BIT_TESTS_BORKED_REGS
     607    lock xchg byte [rsi], r15b      ; turns into r15l which yasm doesn't grok
     608    lock xchg byte [r8], r15b       ; ditto
     609%endif
     610        ; 87 /r         XCHG reg/memX, immX - sans reg dst
     611    lock xchg word [80cch], bx
     612    lock xchg word [xBX], bx
     613    lock xchg word [xSI], bx
     614    lock xchg dword [80cch], ebx
     615    lock xchg dword [xBX], ebx
     616    lock xchg dword [xSI], ebx
     617%ifdef WITH_64_BIT_TESTS
     618    lock xchg qword [80cch], rbx
     619    lock xchg qword [xBX], rbx
     620    lock xchg qword [xSI], rbx
     621    lock xchg qword [xSI], r15
     622 %ifdef WITH_64_BIT_TESTS_BORKED_REGS
     623    lock xchg dword [xSI], r15d     ; turns into rdi
     624    lock xchg word [xSI], r15w      ; turns into rdi
     625 %endif
     626%endif
     627
     628    ;
    784629    ; XOR
    785     lock xor [1011], eax
    786     lock xor [1011], ebx
    787     lock xor [1011], ecx
    788     lock xor [1011], edx
    789     lock xor [1011], esp
    790     lock xor [1011], ebp
    791     lock xor [1011], esi
    792     lock xor [1011], edi
    793 
    794     lock xor [1011], ax
    795     lock xor [1011], bx
    796     lock xor [1011], cx
    797     lock xor [1011], dx
    798     lock xor [1011], sp
    799     lock xor [1011], bp
    800     lock xor [1011], si
    801     lock xor [1011], di
    802 
    803     lock xor byte [11], 10
    804     lock xor word [11], 10433
    805     lock xor dword [11], 10433
    806 
    807     lock xor byte [eax], 1
    808     lock xor byte [ebx], 2
    809     lock xor byte [ecx], 3
    810     lock xor byte [edx], 4
    811     lock xor byte [esp], 5
    812     lock xor byte [ebp], 6
    813     lock xor byte [esi], 7
    814     lock xor byte [edi], 8
    815 
    816     lock xor word [eax], 11234
    817     lock xor word [ebx], 21234
    818     lock xor word [ecx], 31234
    819     lock xor word [edx], 41234
    820     lock xor word [esp], 51234
    821     lock xor word [ebp], 61234
    822     lock xor word [esi], 17234
    823     lock xor word [edi], 18234
    824 
    825     lock xor dword [eax], 1011234
    826     lock xor dword [ebx], 1021234
    827     lock xor dword [ecx], 1031234
    828     lock xor dword [edx], 1041234
    829     lock xor dword [esp], 1051234
    830     lock xor dword [ebp], 1061234
    831     lock xor dword [esi], 1071234
    832     lock xor dword [edi], 1081234
    833 
    834     lock xor [eax], eax
    835     lock xor [eax], ebx
    836     lock xor [eax], ecx
    837     lock xor [eax], edx
    838     lock xor [eax], esp
    839     lock xor [eax], ebp
    840     lock xor [eax], esi
    841     lock xor [eax], edi
    842     lock xor [ebx], eax
    843     lock xor [ebx], ebx
    844     lock xor [ebx], ecx
    845     lock xor [ebx], edx
    846     lock xor [ebx], esp
    847     lock xor [ebx], ebp
    848     lock xor [ebx], esi
    849     lock xor [ebx], edi
    850     lock xor [ecx], eax
    851     lock xor [ecx], ebx
    852     lock xor [ecx], ecx
    853     lock xor [ecx], edx
    854     lock xor [ecx], esp
    855     lock xor [ecx], ebp
    856     lock xor [ecx], esi
    857     lock xor [ecx], edi
    858     lock xor [edx], eax
    859     lock xor [edx], ebx
    860     lock xor [edx], ecx
    861     lock xor [edx], edx
    862     lock xor [edx], esp
    863     lock xor [edx], ebp
    864     lock xor [edx], esi
    865     lock xor [edx], edi
    866     lock xor [esp], eax
    867     lock xor [esp], ebx
    868     lock xor [esp], ecx
    869     lock xor [esp], edx
    870     lock xor [esp], esp
    871     lock xor [esp], ebp
    872     lock xor [esp], esi
    873     lock xor [esp], edi
    874     lock xor [ebp], eax
    875     lock xor [ebp], ebx
    876     lock xor [ebp], ecx
    877     lock xor [ebp], edx
    878     lock xor [ebp], esp
    879     lock xor [ebp], ebp
    880     lock xor [ebp], esi
    881     lock xor [ebp], edi
    882     lock xor [esi], eax
    883     lock xor [esi], ebx
    884     lock xor [esi], ecx
    885     lock xor [esi], edx
    886     lock xor [esi], esp
    887     lock xor [esi], ebp
    888     lock xor [esi], esi
    889     lock xor [esi], edi
    890     lock xor [edi], eax
    891     lock xor [edi], ebx
    892     lock xor [edi], ecx
    893     lock xor [edi], edx
    894     lock xor [edi], esp
    895     lock xor [edi], ebp
    896     lock xor [edi], esi
    897     lock xor [edi], edi
    898 
    899     lock xor [eax], ax
    900     lock xor [eax], bx
    901     lock xor [eax], cx
    902     lock xor [eax], dx
    903     lock xor [eax], sp
    904     lock xor [eax], bp
    905     lock xor [eax], si
    906     lock xor [eax], di
    907     lock xor [ebx], ax
    908     lock xor [ebx], bx
    909     lock xor [ebx], cx
    910     lock xor [ebx], dx
    911     lock xor [ebx], sp
    912     lock xor [ebx], bp
    913     lock xor [ebx], si
    914     lock xor [ebx], di
    915     lock xor [ecx], ax
    916     lock xor [ecx], bx
    917     lock xor [ecx], cx
    918     lock xor [ecx], dx
    919     lock xor [ecx], sp
    920     lock xor [ecx], bp
    921     lock xor [ecx], si
    922     lock xor [ecx], di
    923     lock xor [edx], ax
    924     lock xor [edx], bx
    925     lock xor [edx], cx
    926     lock xor [edx], dx
    927     lock xor [edx], sp
    928     lock xor [edx], bp
    929     lock xor [edx], si
    930     lock xor [edx], di
    931     lock xor [esp], ax
    932     lock xor [esp], bx
    933     lock xor [esp], cx
    934     lock xor [esp], dx
    935     lock xor [esp], sp
    936     lock xor [esp], bp
    937     lock xor [esp], si
    938     lock xor [esp], di
    939     lock xor [ebp], ax
    940     lock xor [ebp], bx
    941     lock xor [ebp], cx
    942     lock xor [ebp], dx
    943     lock xor [ebp], sp
    944     lock xor [ebp], bp
    945     lock xor [ebp], si
    946     lock xor [ebp], di
    947     lock xor [esi], ax
    948     lock xor [esi], bx
    949     lock xor [esi], cx
    950     lock xor [esi], dx
    951     lock xor [esi], sp
    952     lock xor [esi], bp
    953     lock xor [esi], si
    954     lock xor [esi], di
    955     lock xor [edi], ax
    956     lock xor [edi], bx
    957     lock xor [edi], cx
    958     lock xor [edi], dx
    959     lock xor [edi], sp
    960     lock xor [edi], bp
    961     lock xor [edi], si
    962     lock xor [edi], di
    963 
    964     lock xor [eax], al
    965     lock xor [eax], ah
    966     lock xor [eax], bl
    967     lock xor [eax], bh
    968     lock xor [eax], cl
    969     lock xor [eax], ch
    970     lock xor [eax], dl
    971     lock xor [eax], dh
    972     lock xor [ebx], al
    973     lock xor [ebx], ah
    974     lock xor [ebx], bl
    975     lock xor [ebx], bh
    976     lock xor [ebx], cl
    977     lock xor [ebx], ch
    978     lock xor [ebx], dl
    979     lock xor [ebx], dh
    980     lock xor [ecx], al
    981     lock xor [ecx], ah
    982     lock xor [ecx], bl
    983     lock xor [ecx], bh
    984     lock xor [ecx], cl
    985     lock xor [ecx], ch
    986     lock xor [ecx], dl
    987     lock xor [ecx], dh
    988     lock xor [edx], al
    989     lock xor [edx], ah
    990     lock xor [edx], bl
    991     lock xor [edx], bh
    992     lock xor [edx], cl
    993     lock xor [edx], ch
    994     lock xor [edx], dl
    995     lock xor [edx], dh
    996     lock xor [esp], al
    997     lock xor [esp], ah
    998     lock xor [esp], bl
    999     lock xor [esp], bh
    1000     lock xor [esp], cl
    1001     lock xor [esp], ch
    1002     lock xor [esp], dl
    1003     lock xor [esp], dh
    1004     lock xor [ebp], al
    1005     lock xor [ebp], ah
    1006     lock xor [ebp], bl
    1007     lock xor [ebp], bh
    1008     lock xor [ebp], cl
    1009     lock xor [ebp], ch
    1010     lock xor [ebp], dl
    1011     lock xor [ebp], dh
    1012     lock xor [esi], al
    1013     lock xor [esi], ah
    1014     lock xor [esi], bl
    1015     lock xor [esi], bh
    1016     lock xor [esi], cl
    1017     lock xor [esi], ch
    1018     lock xor [esi], dl
    1019     lock xor [esi], dh
    1020     lock xor [edi], al
    1021     lock xor [edi], ah
    1022     lock xor [edi], bl
    1023     lock xor [edi], bh
    1024     lock xor [edi], cl
    1025     lock xor [edi], ch
    1026     lock xor [edi], dl
    1027     lock xor [edi], dh
    1028 
    1029     xor [1011], eax
    1030     xor [1011], ebx
    1031     xor [1011], ecx
    1032     xor [1011], edx
    1033     xor [1011], esp
    1034     xor [1011], ebp
    1035     xor [1011], esi
    1036     xor [1011], edi
    1037 
    1038     xor [1011], ax
    1039     xor [1011], bx
    1040     xor [1011], cx
    1041     xor [1011], dx
    1042     xor [1011], sp
    1043     xor [1011], bp
    1044     xor [1011], si
    1045     xor [1011], di
    1046 
    1047     xor byte [11], 10
    1048     xor word [11], 10433
    1049     xor dword [11], 10433
    1050 
    1051     xor byte [eax], 1
    1052     xor byte [ebx], 2
    1053     xor byte [ecx], 3
    1054     xor byte [edx], 4
    1055     xor byte [esp], 5
    1056     xor byte [ebp], 6
    1057     xor byte [esi], 7
    1058     xor byte [edi], 8
    1059 
    1060     xor word [eax], 11234
    1061     xor word [ebx], 21234
    1062     xor word [ecx], 31234
    1063     xor word [edx], 41234
    1064     xor word [esp], 51234
    1065     xor word [ebp], 61234
    1066     xor word [esi], 17234
    1067     xor word [edi], 18234
    1068 
    1069     xor dword [eax], 1011234
    1070     xor dword [ebx], 1021234
    1071     xor dword [ecx], 1031234
    1072     xor dword [edx], 1041234
    1073     xor dword [esp], 1051234
    1074     xor dword [ebp], 1061234
    1075     xor dword [esi], 1071234
    1076     xor dword [edi], 1081234
    1077 
    1078     xor [eax], eax
    1079     xor [eax], ebx
    1080     xor [eax], ecx
    1081     xor [eax], edx
    1082     xor [eax], esp
    1083     xor [eax], ebp
    1084     xor [eax], esi
    1085     xor [eax], edi
    1086     xor [ebx], eax
    1087     xor [ebx], ebx
    1088     xor [ebx], ecx
    1089     xor [ebx], edx
    1090     xor [ebx], esp
    1091     xor [ebx], ebp
    1092     xor [ebx], esi
    1093     xor [ebx], edi
    1094     xor [ecx], eax
    1095     xor [ecx], ebx
    1096     xor [ecx], ecx
    1097     xor [ecx], edx
    1098     xor [ecx], esp
    1099     xor [ecx], ebp
    1100     xor [ecx], esi
    1101     xor [ecx], edi
    1102     xor [edx], eax
    1103     xor [edx], ebx
    1104     xor [edx], ecx
    1105     xor [edx], edx
    1106     xor [edx], esp
    1107     xor [edx], ebp
    1108     xor [edx], esi
    1109     xor [edx], edi
    1110     xor [esp], eax
    1111     xor [esp], ebx
    1112     xor [esp], ecx
    1113     xor [esp], edx
    1114     xor [esp], esp
    1115     xor [esp], ebp
    1116     xor [esp], esi
    1117     xor [esp], edi
    1118     xor [ebp], eax
    1119     xor [ebp], ebx
    1120     xor [ebp], ecx
    1121     xor [ebp], edx
    1122     xor [ebp], esp
    1123     xor [ebp], ebp
    1124     xor [ebp], esi
    1125     xor [ebp], edi
    1126     xor [esi], eax
    1127     xor [esi], ebx
    1128     xor [esi], ecx
    1129     xor [esi], edx
    1130     xor [esi], esp
    1131     xor [esi], ebp
    1132     xor [esi], esi
    1133     xor [esi], edi
    1134     xor [edi], eax
    1135     xor [edi], ebx
    1136     xor [edi], ecx
    1137     xor [edi], edx
    1138     xor [edi], esp
    1139     xor [edi], ebp
    1140     xor [edi], esi
    1141     xor [edi], edi
    1142 
    1143     xor eax, eax
    1144     xor eax, ebx
    1145     xor eax, ecx
    1146     xor eax, edx
    1147     xor eax, esp
    1148     xor eax, ebp
    1149     xor eax, esi
    1150     xor eax, edi
    1151     xor ebx, eax
    1152     xor ebx, ebx
    1153     xor ebx, ecx
    1154     xor ebx, edx
    1155     xor ebx, esp
    1156     xor ebx, ebp
    1157     xor ebx, esi
    1158     xor ebx, edi
    1159     xor ecx, eax
    1160     xor ecx, ebx
    1161     xor ecx, ecx
    1162     xor ecx, edx
    1163     xor ecx, esp
    1164     xor ecx, ebp
    1165     xor ecx, esi
    1166     xor ecx, edi
    1167     xor edx, eax
    1168     xor edx, ebx
    1169     xor edx, ecx
    1170     xor edx, edx
    1171     xor edx, esp
    1172     xor edx, ebp
    1173     xor edx, esi
    1174     xor edx, edi
    1175     xor esp, eax
    1176     xor esp, ebx
    1177     xor esp, ecx
    1178     xor esp, edx
    1179     xor esp, esp
    1180     xor esp, ebp
    1181     xor esp, esi
    1182     xor esp, edi
    1183     xor ebp, eax
    1184     xor ebp, ebx
    1185     xor ebp, ecx
    1186     xor ebp, edx
    1187     xor ebp, esp
    1188     xor ebp, ebp
    1189     xor ebp, esi
    1190     xor ebp, edi
    1191     xor esi, eax
    1192     xor esi, ebx
    1193     xor esi, ecx
    1194     xor esi, edx
    1195     xor esi, esp
    1196     xor esi, ebp
    1197     xor esi, esi
    1198     xor esi, edi
    1199     xor edi, eax
    1200     xor edi, ebx
    1201     xor edi, ecx
    1202     xor edi, edx
    1203     xor edi, esp
    1204     xor edi, ebp
    1205     xor edi, esi
    1206     xor edi, edi
    1207 %endif
     630    ;
     631        ; 80 /6 ib      XOR reg/mem8, imm8 - sans reg dst
     632    lock xor byte [1000h], byte 8
     633    lock xor byte [xBX], byte 8
     634    lock xor byte [xDI], byte 8
     635        ; 81 /6 i[wd]   XOR reg/memX, immX - sans reg dst
     636    lock xor word [1000h], word 090cch
     637    lock xor word [xBX], word 090cch
     638    lock xor word [xDI], word 090cch
     639    lock xor dword [1000h], dword 0cc90cc90h
     640    lock xor dword [xBX], dword 0cc90cc90h
     641    lock xor dword [xDI], dword 0cc90cc90h
     642%ifdef WITH_64_BIT_TESTS_IMM32
     643    lock xor qword [1000h], dword 0cc90cc90h
     644    lock xor qword [rbx], dword 0cc90cc90h
     645    lock xor qword [rdi], dword 0cc90cc90h
     646    lock xor qword [r9], dword 0cc90cc90h
     647%endif
     648        ; 83 /6 ib      XOR reg/memX, imm8 - sans reg dst
     649    lock xor word [1000h], byte 07fh
     650    lock xor word [xBX], byte 07fh
     651    lock xor word [xDI], byte 07fh
     652    lock xor dword [1000h], byte 07fh
     653    lock xor dword [xBX], byte 07fh
     654    lock xor dword [xDI], byte 07fh
     655%ifdef WITH_64_BIT_TESTS
     656    lock xor qword [1000h], byte 07fh
     657    lock xor qword [rbx], byte 07fh
     658    lock xor qword [rdi], byte 07fh
     659    lock xor qword [r10], byte 07fh
     660%endif
     661
     662        ; 30 /r         XOR reg/mem8, reg8 - sans reg dst
     663    lock xor byte [1000h], bl
     664    lock xor byte [xBX], bl
     665    lock xor byte [xSI], bl
     666        ; 31 /r         XOR reg/memX, regX - sans reg dst
     667    lock xor word [1000h], bx
     668    lock xor word [xBX], bx
     669    lock xor word [xSI], bx
     670    lock xor dword [1000h], ebx
     671    lock xor dword [xBX], ebx
     672    lock xor dword [xSI], ebx
     673%ifdef WITH_64_BIT_TESTS
     674    lock xor qword [1000h], rbx
     675    lock xor qword [rbx], rbx
     676    lock xor qword [rsi], rbx
     677    lock xor qword [r11], rbx
     678%endif
     679
  • trunk/src/VBox/Disassembler/testcase/tstAsmLock-2.asm

    r8976 r8979  
    451451%endif
    452452
     453    ;
    453454    ; XADD
     455    ;
     456        ; 0f c0 /r      XADD reg/mem8, reg8 - with reg dst
     457    lock xadd al, bl
     458        ; 0f c1 /r      XADD reg/memX, immX - with reg dst
     459    lock xadd cx, bx
     460    lock xadd ecx, ebx
     461%ifdef WITH_64_BIT_TESTS
     462    lock xadd rcx, rbx
     463    lock xadd r8, rbx
     464    lock xadd r10, r8
     465%endif
     466
     467    ;
    454468    ; XCHG
     469    ;
     470    ; Note: The operands can be switched around but the
     471    ;       encoding is the same.
     472    ;
     473        ; 90 +r[wdq]    XCHG [RE]ax, regX
     474    lock xchg ax, bx
     475    lock xchg eax, ecx
     476%ifdef WITH_64_BIT_TESTS
     477    lock xchg rax, rcx
     478    lock xchg rax, r10
     479%endif
     480        ; 86 /r         XCHG reg/mem8, imm8 - with reg dst
     481    lock xchg al, bl
     482%ifdef WITH_64_BIT_TESTS
     483    lock xchg r10b, cl
     484    lock xchg r10b, r15b
     485%endif
     486        ; 87 /r         XCHG reg/memX, immX - with reg dst
     487    lock xchg ax, bx
     488    lock xchg eax, ebx
     489%ifdef WITH_64_BIT_TESTS_IMM32
     490    lock xchg rax, rbx
     491    lock xchg r12, rbx
     492    lock xchg r14, r8
     493%endif
     494
     495    ;
    455496    ; XOR
    456 
    457 
     497    ;
     498        ; 34 ib         XOR AL, imm8
     499    lock xor al, byte 8
     500        ; 35 i[wd]      XOR [ER]AX, immX
     501    lock xor ax, word 16
     502    lock xor eax, dword 128
     503%ifdef WITH_64_BIT_TESTS_IMM32
     504    lock xor rax, dword 256
     505    lock xor rax, dword 0cc90cc90h
     506%endif
     507        ; 80 /6 ib      XOR reg/mem8, imm8 - with reg dst
     508    lock xor cl, byte 8
     509        ; 81 /6 i[wd]   XOR reg/memX, immX - with reg dst
     510    lock xor cx, word 1000h
     511    lock xor ecx, dword 100000h
     512%ifdef WITH_64_BIT_TESTS_IMM32
     513    lock xor rcx, dword 100000h
     514%endif
     515        ; 83 /6 ib      XOR reg/memX, imm8 - with reg dst
     516    lock xor cx, byte 07fh
     517    lock xor ecx, byte 07fh
     518%ifdef WITH_64_BIT_TESTS_IMM32
     519    lock xor rcx, byte 07fh
     520%endif
     521        ; 30 /r         XOR reg/mem8, reg8 - with reg dst
     522    lock xor cl, bl
     523        ; 31 /r         XOR reg/memX, regX - with reg dst
     524    lock xor cx, bx
     525    lock xor ecx, ebx
     526%ifdef WITH_64_BIT_TESTS
     527    lock xor rcx, rbx
     528%endif
     529        ; 32 /r         XOR reg8, reg/mem8
     530    lock xor cl, [0badh]
     531        ; 33 /r         XOR regX, reg/memX
     532    lock xor cx, [0badh]
     533    lock xor ecx, [0badh]
     534%ifdef WITH_64_BIT_TESTS
     535    lock xor rcx, [0badh]
     536%endif
     537
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette