Sfoglia il codice sorgente

+ extended tests with segment overrides in at&t asm mode

git-svn-id: trunk@37455 -
nickysn 7 anni fa
parent
commit
27978de111
3 ha cambiato i file con 323 aggiunte e 0 eliminazioni
  1. 121 0
      tests/test/tasm11a.pp
  2. 101 0
      tests/test/tasm11b.pp
  3. 101 0
      tests/test/tasm11c.pp

+ 121 - 0
tests/test/tasm11a.pp

@@ -38,6 +38,7 @@ begin
     outsw
     outsl
 
+    { no segment overrides }
     movsb (%rsi), (%rdi)
     movsb (%esi), (%edi)
     movsw (%rsi), (%rdi)
@@ -96,5 +97,125 @@ begin
     outsw (%esi),%dx
     outsl (%rsi),%dx
     outsl (%esi),%dx
+
+    { es:di }
+    movsb (%rsi), %es:(%rdi)
+    movsb (%esi), %es:(%edi)
+    movsw (%rsi), %es:(%rdi)
+    movsw (%esi), %es:(%edi)
+    movsl (%rsi), %es:(%rdi)
+    movsl (%esi), %es:(%edi)
+    movsq (%rsi), %es:(%rdi)
+    movsq (%esi), %es:(%edi)
+
+    cmpsb %es:(%rdi), (%rsi)
+    cmpsb %es:(%edi), (%esi)
+    cmpsw %es:(%rdi), (%rsi)
+    cmpsw %es:(%edi), (%esi)
+    cmpsl %es:(%rdi), (%rsi)
+    cmpsl %es:(%edi), (%esi)
+    cmpsq %es:(%rdi), (%rsi)
+    cmpsq %es:(%edi), (%esi)
+
+    scasb %es:(%rdi)
+    scasb %es:(%edi)
+    scasw %es:(%rdi)
+    scasw %es:(%edi)
+    scasl %es:(%rdi)
+    scasl %es:(%edi)
+    scasq %es:(%rdi)
+    scasq %es:(%edi)
+
+    lodsb (%rsi)
+    lodsb (%esi)
+    lodsw (%rsi)
+    lodsw (%esi)
+    lodsl (%rsi)
+    lodsl (%esi)
+    lodsq (%rsi)
+    lodsq (%esi)
+
+    stosb %es:(%rdi)
+    stosb %es:(%edi)
+    stosw %es:(%rdi)
+    stosw %es:(%edi)
+    stosl %es:(%rdi)
+    stosl %es:(%edi)
+    stosq %es:(%rdi)
+    stosq %es:(%edi)
+
+    insb %dx,%es:(%rdi)
+    insb %dx,%es:(%edi)
+    insw %dx,%es:(%rdi)
+    insw %dx,%es:(%edi)
+    insl %dx,%es:(%rdi)
+    insl %dx,%es:(%edi)
+
+    outsb (%rsi),%dx
+    outsb (%esi),%dx
+    outsw (%rsi),%dx
+    outsw (%esi),%dx
+    outsl (%rsi),%dx
+    outsl (%esi),%dx
+
+    { es:di, fs:si }
+    movsb %fs:(%rsi), %es:(%rdi)
+    movsb %fs:(%esi), %es:(%edi)
+    movsw %fs:(%rsi), %es:(%rdi)
+    movsw %fs:(%esi), %es:(%edi)
+    movsl %fs:(%rsi), %es:(%rdi)
+    movsl %fs:(%esi), %es:(%edi)
+    movsq %fs:(%rsi), %es:(%rdi)
+    movsq %fs:(%esi), %es:(%edi)
+
+    cmpsb %es:(%rdi), %fs:(%rsi)
+    cmpsb %es:(%edi), %fs:(%esi)
+    cmpsw %es:(%rdi), %fs:(%rsi)
+    cmpsw %es:(%edi), %fs:(%esi)
+    cmpsl %es:(%rdi), %fs:(%rsi)
+    cmpsl %es:(%edi), %fs:(%esi)
+    cmpsq %es:(%rdi), %fs:(%rsi)
+    cmpsq %es:(%edi), %fs:(%esi)
+
+    scasb %es:(%rdi)
+    scasb %es:(%edi)
+    scasw %es:(%rdi)
+    scasw %es:(%edi)
+    scasl %es:(%rdi)
+    scasl %es:(%edi)
+    scasq %es:(%rdi)
+    scasq %es:(%edi)
+
+    lodsb %fs:(%rsi)
+    lodsb %fs:(%esi)
+    lodsw %fs:(%rsi)
+    lodsw %fs:(%esi)
+    lodsl %fs:(%rsi)
+    lodsl %fs:(%esi)
+    lodsq %fs:(%rsi)
+    lodsq %fs:(%esi)
+
+    stosb %es:(%rdi)
+    stosb %es:(%edi)
+    stosw %es:(%rdi)
+    stosw %es:(%edi)
+    stosl %es:(%rdi)
+    stosl %es:(%edi)
+    stosq %es:(%rdi)
+    stosq %es:(%edi)
+
+    insb %dx,%es:(%rdi)
+    insb %dx,%es:(%edi)
+    insw %dx,%es:(%rdi)
+    insw %dx,%es:(%edi)
+    insl %dx,%es:(%rdi)
+    insl %dx,%es:(%edi)
+
+    outsb %fs:(%rsi),%dx
+    outsb %fs:(%esi),%dx
+    outsw %fs:(%rsi),%dx
+    outsw %fs:(%esi),%dx
+    outsl %fs:(%rsi),%dx
+    outsl %fs:(%esi),%dx
   end;
 end.

+ 101 - 0
tests/test/tasm11b.pp

@@ -33,6 +33,7 @@ begin
     outsw
     outsl
 
+    { no segment overrides }
     movsb (%esi), (%edi)
     movsb (%si), (%di)
     movsw (%esi), (%edi)
@@ -81,5 +82,105 @@ begin
     outsw (%si),%dx
     outsl (%esi),%dx
     outsl (%si),%dx
+
+    { es:di }
+    movsb (%esi), %es:(%edi)
+    movsb (%si), %es:(%di)
+    movsw (%esi), %es:(%edi)
+    movsw (%si), %es:(%di)
+    movsl (%esi), %es:(%edi)
+    movsl (%si), %es:(%di)
+
+    cmpsb %es:(%edi), (%esi)
+    cmpsb %es:(%di), (%si)
+    cmpsw %es:(%edi), (%esi)
+    cmpsw %es:(%di), (%si)
+    cmpsl %es:(%edi), (%esi)
+    cmpsl %es:(%di), (%si)
+
+    scasb %es:(%edi)
+    scasb %es:(%di)
+    scasw %es:(%edi)
+    scasw %es:(%di)
+    scasl %es:(%edi)
+    scasl %es:(%di)
+
+    lodsb (%esi)
+    lodsb (%si)
+    lodsw (%esi)
+    lodsw (%si)
+    lodsl (%esi)
+    lodsl (%si)
+
+    stosb %es:(%edi)
+    stosb %es:(%di)
+    stosw %es:(%edi)
+    stosw %es:(%di)
+    stosl %es:(%edi)
+    stosl %es:(%di)
+
+    insb %dx,%es:(%edi)
+    insb %dx,%es:(%di)
+    insw %dx,%es:(%edi)
+    insw %dx,%es:(%di)
+    insl %dx,%es:(%edi)
+    insl %dx,%es:(%di)
+
+    outsb (%esi),%dx
+    outsb (%si),%dx
+    outsw (%esi),%dx
+    outsw (%si),%dx
+    outsl (%esi),%dx
+    outsl (%si),%dx
+
+    { es:di, fs:si }
+    movsb %fs:(%esi), %es:(%edi)
+    movsb %fs:(%si), %es:(%di)
+    movsw %fs:(%esi), %es:(%edi)
+    movsw %fs:(%si), %es:(%di)
+    movsl %fs:(%esi), %es:(%edi)
+    movsl %fs:(%si), %es:(%di)
+
+    cmpsb %es:(%edi), %fs:(%esi)
+    cmpsb %es:(%di), %fs:(%si)
+    cmpsw %es:(%edi), %fs:(%esi)
+    cmpsw %es:(%di), %fs:(%si)
+    cmpsl %es:(%edi), %fs:(%esi)
+    cmpsl %es:(%di), %fs:(%si)
+
+    scasb %es:(%edi)
+    scasb %es:(%di)
+    scasw %es:(%edi)
+    scasw %es:(%di)
+    scasl %es:(%edi)
+    scasl %es:(%di)
+
+    lodsb %fs:(%esi)
+    lodsb %fs:(%si)
+    lodsw %fs:(%esi)
+    lodsw %fs:(%si)
+    lodsl %fs:(%esi)
+    lodsl %fs:(%si)
+
+    stosb %es:(%edi)
+    stosb %es:(%di)
+    stosw %es:(%edi)
+    stosw %es:(%di)
+    stosl %es:(%edi)
+    stosl %es:(%di)
+
+    insb %dx,%es:(%edi)
+    insb %dx,%es:(%di)
+    insw %dx,%es:(%edi)
+    insw %dx,%es:(%di)
+    insl %dx,%es:(%edi)
+    insl %dx,%es:(%di)
+
+    outsb %fs:(%esi),%dx
+    outsb %fs:(%si),%dx
+    outsw %fs:(%esi),%dx
+    outsw %fs:(%si),%dx
+    outsl %fs:(%esi),%dx
+    outsl %fs:(%si),%dx
   end;
 end.

+ 101 - 0
tests/test/tasm11c.pp

@@ -34,6 +34,7 @@ begin
     outsw
     outsl
 
+    { no segment overrides }
     movsb (%esi), (%edi)
     movsb (%si), (%di)
     movsw (%esi), (%edi)
@@ -82,5 +83,105 @@ begin
     outsw (%si),%dx
     outsl (%esi),%dx
     outsl (%si),%dx
+
+    { es:di }
+    movsb (%esi), %es:(%edi)
+    movsb (%si), %es:(%di)
+    movsw (%esi), %es:(%edi)
+    movsw (%si), %es:(%di)
+    movsl (%esi), %es:(%edi)
+    movsl (%si), %es:(%di)
+
+    cmpsb %es:(%edi), (%esi)
+    cmpsb %es:(%di), (%si)
+    cmpsw %es:(%edi), (%esi)
+    cmpsw %es:(%di), (%si)
+    cmpsl %es:(%edi), (%esi)
+    cmpsl %es:(%di), (%si)
+
+    scasb %es:(%edi)
+    scasb %es:(%di)
+    scasw %es:(%edi)
+    scasw %es:(%di)
+    scasl %es:(%edi)
+    scasl %es:(%di)
+
+    lodsb (%esi)
+    lodsb (%si)
+    lodsw (%esi)
+    lodsw (%si)
+    lodsl (%esi)
+    lodsl (%si)
+
+    stosb %es:(%edi)
+    stosb %es:(%di)
+    stosw %es:(%edi)
+    stosw %es:(%di)
+    stosl %es:(%edi)
+    stosl %es:(%di)
+
+    insb %dx,%es:(%edi)
+    insb %dx,%es:(%di)
+    insw %dx,%es:(%edi)
+    insw %dx,%es:(%di)
+    insl %dx,%es:(%edi)
+    insl %dx,%es:(%di)
+
+    outsb (%esi),%dx
+    outsb (%si),%dx
+    outsw (%esi),%dx
+    outsw (%si),%dx
+    outsl (%esi),%dx
+    outsl (%si),%dx
+
+    { es:di, fs:si }
+    movsb %fs:(%esi), %es:(%edi)
+    movsb %fs:(%si), %es:(%di)
+    movsw %fs:(%esi), %es:(%edi)
+    movsw %fs:(%si), %es:(%di)
+    movsl %fs:(%esi), %es:(%edi)
+    movsl %fs:(%si), %es:(%di)
+
+    cmpsb %es:(%edi), %fs:(%esi)
+    cmpsb %es:(%di), %fs:(%si)
+    cmpsw %es:(%edi), %fs:(%esi)
+    cmpsw %es:(%di), %fs:(%si)
+    cmpsl %es:(%edi), %fs:(%esi)
+    cmpsl %es:(%di), %fs:(%si)
+
+    scasb %es:(%edi)
+    scasb %es:(%di)
+    scasw %es:(%edi)
+    scasw %es:(%di)
+    scasl %es:(%edi)
+    scasl %es:(%di)
+
+    lodsb %fs:(%esi)
+    lodsb %fs:(%si)
+    lodsw %fs:(%esi)
+    lodsw %fs:(%si)
+    lodsl %fs:(%esi)
+    lodsl %fs:(%si)
+
+    stosb %es:(%edi)
+    stosb %es:(%di)
+    stosw %es:(%edi)
+    stosw %es:(%di)
+    stosl %es:(%edi)
+    stosl %es:(%di)
+
+    insb %dx,%es:(%edi)
+    insb %dx,%es:(%di)
+    insw %dx,%es:(%edi)
+    insw %dx,%es:(%di)
+    insl %dx,%es:(%edi)
+    insl %dx,%es:(%di)
+
+    outsb %fs:(%esi),%dx
+    outsb %fs:(%si),%dx
+    outsw %fs:(%esi),%dx
+    outsw %fs:(%si),%dx
+    outsl %fs:(%esi),%dx
+    outsl %fs:(%si),%dx
   end;
 end.