docs: add more opcode descriptions
authorStefan Sauer <ensonic@users.sf.net>
Thu, 6 Jun 2013 07:03:48 +0000 (09:03 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Thu, 6 Jun 2013 07:12:16 +0000 (09:12 +0200)
testsuite/generate_xml_table2.c

index 7b9480c..4d7d6ce 100644 (file)
@@ -155,6 +155,19 @@ struct a ops[] = {
   { "subssl", "clamp(a - b)", "subtract with signed saturate" },
   { "subusl", "clamp(a - b)", "subtract with unsigned saturate" },
   { "xorl", "a ^ b", "bitwise XOR" },
+  
+  { "addq", "a + b", "add" },
+  { "andq", "a &amp; b", "bitwise AND" },
+  { "andnq", "a &amp; (~b)", "bitwise AND NOT" },
+  { "cmpeqq", "(a == b) ? (~0) : 0", "compare equal" },
+  { "cmpgtsq", "(a &gt; b) ? (~0) : 0", "compare greater than" },
+  { "copyq", "a", "copy" },
+  { "orq", "a | b", "bitwise or" },
+  { "shlq", "a &lt;&lt; b", "shift left" },
+  { "shrsq", "a &gt;&gt; b", "signed shift right" },
+  { "shruq", "a &gt;&gt; b", "unsigned shift right" },
+  { "subq", "a - b", "subtract" },
+  { "xorq", "a ^ b", "bitwise XOR" },
 
   { "convsbw", "a", "convert signed" },
   { "convubw", "a", "convert unsigned" },
@@ -174,34 +187,58 @@ struct a ops[] = {
   { "mulubw", "a * b", "multiply unsigned" },
   { "mulswl", "a * b", "multiply signed" },
   { "muluwl", "a * b", "multiply unsigned" },
+  { "mulslq", "a * b", "multiply signed" },
+  { "mululq", "a * b", "multiply unsigned" },
+  { "mergelq", "special", "merge halves" },
   { "mergewl", "special", "merge halves" },
   { "mergebw", "special", "merge halves" },
   { "select0wb", "special", "select first half" },
   { "select1wb", "special", "select second half" },
   { "select0lw", "special", "select first half" },
   { "select1lw", "special", "select second half" },
-  { "swapw", "special", "endianness swap" },
-  { "swapl", "special", "endianness swap" },
+  { "select0ql", "special", "select first half" },
+  { "select1ql", "special", "select second half" },
+  { "swapq", "special", "endianness byte swap" },
+  { "swapw", "special", "endianness byte swap" },
+  { "swapl", "special", "endianness byte swap" },
+  { "swapwl", "special", "endianness word swap" },
+  { "swaplq", "special", "endianness long word swap" },
 
   { "accw", "+= a", "accumulate" },
   { "accl", "+= a", "accumulate" },
   { "accsadubl", "+= abs(a - b)", "accumulate absolute difference" },
 
+  { "splitql" , "special", "split first/second long words" },
   { "splitlw" , "special", "split first/second words" },
   { "splitwb" , "special", "split first/second bytes" },
+
   { "addf", "a + b", "add" },
+  { "addd", "a + b", "add" },
   { "subf", "a - b", "subtract" },
+  { "subd", "a - b", "subtract" },
   { "mulf", "a * b", "multiply" },
+  { "muld", "a * b", "multiply" },
   { "divf", "a / b", "divide" },
+  { "divd", "a / b", "divide" },
   { "sqrtf", "sqrt(a)", "square root" },
+  { "sqrtd", "sqrt(a)", "square root" },
   { "maxf", "max(a,b)", "maximum" },
+  { "maxd", "max(a,b)", "maximum" },
   { "minf", "min(a,b)", "minimum" },
+  { "mind", "min(a,b)", "minimum" },
   { "cmpeqf", "(a == b) ? (~0) : 0", "compare equal" },
+  { "cmpeqd", "(a == b) ? (~0) : 0", "compare equal" },
   { "cmpltf", "(a == b) ? (~0) : 0", "compare less than" },
+  { "cmpltd", "(a == b) ? (~0) : 0", "compare less than" },
   { "cmplef", "(a == b) ? (~0) : 0", "compare less than or equal" },
+  { "cmpled", "(a == b) ? (~0) : 0", "compare less than or equal" },
   { "convfl", "a", "convert float point to integer" },
   { "convlf", "a", "convert integer to floating point" },
-
+  { "convdl", "a", "convert double point to integer" },
+  { "convld", "a", "convert integer to double point" },
+  { "convfd", "a", "convert float to double" },
+  { "convdf", "a", "convert double to float" },
+  
   { "loadb", "array[i]", "load from memory" },
   { "loadw", "array[i]", "load from memory" },
   { "loadl", "array[i]", "load from memory" },