+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html>
-
-<head>
-<title>binop</title>
-<link rel=stylesheet href="opcode.css">
-</head>
-
-<body>
-
-<h1>binop</h1>
-
-<h2>Purpose</h2>
-
-<p>
-Perform the identified binary operation on the two source registers, storing
-the result in the first source register.
-</p>
-
-<h2>Details</h2>
-
-<table class="instruc">
-<thead>
-<tr>
- <th>Op & Format</th>
- <th>Mnemonic / Syntax</th>
- <th>Arguments</th>
-</tr>
-</thead>
-<tbody>
-<tr>
- <td>90..af 23x</td>
- <td><i>binop</i> vAA, vBB, vCC<br/>
- 90: add-int<br/>
- 91: sub-int<br/>
- 92: mul-int<br/>
- 93: div-int<br/>
- 94: rem-int<br/>
- 95: and-int<br/>
- 96: or-int<br/>
- 97: xor-int<br/>
- 98: shl-int<br/>
- 99: shr-int<br/>
- 9a: ushr-int<br/>
- 9b: add-long<br/>
- 9c: sub-long<br/>
- 9d: mul-long<br/>
- 9e: div-long<br/>
- 9f: rem-long<br/>
- a0: and-long<br/>
- a1: or-long<br/>
- a2: xor-long<br/>
- a3: shl-long<br/>
- a4: shr-long<br/>
- a5: ushr-long<br/>
- a6: add-float<br/>
- a7: sub-float<br/>
- a8: mul-float<br/>
- a9: div-float<br/>
- aa: rem-float<br/>
- ab: add-double<br/>
- ac: sub-double<br/>
- ad: mul-double<br/>
- ae: div-double<br/>
- af: rem-double
- </td>
- <td><code>A:</code> destination register or pair (8 bits)<br/>
- <code>B:</code> first source register or pair (8 bits)<br/>
- <code>C:</code> second source register or pair (8 bits)</td>
-</tr>
-</tbody>
-</table>
-
-<h2>Constraints</h2>
-
-<ul>
- <li>
- All A, B and C must be valid register indices in the current stackframe.
- </li>
- <li>
- For the -long and -double variants, also A+1, B+1 and C+1 must be valid
- register indices.
- </li>
- <li>
- Registers vB and vC must be defined. They must both contain values that
- match the variant of the instruction (it's probably better to split this up
- into multiple pages again).
- </li>
-</ul>
-
-<h2>Behavior</h2>
-
-<ul>
- <li>
- The given operation <binop> is performed according to the semantics
- specified in table XXX.
- </li>
- <li>
- The result is stored in register vA, that is, vA'=<biop> vB.
- </li>
- <li>
- For the -double and -long variants, (vA+1) is also affected.
- </li>
- <li>
- As usual, neighboring registers might get undefined, if vA (and vA+1) were
- part of a register pair originally.
- </li>
-</ul>
-
-<h2>Exceptions</h2>
-
-<ul>
- <li>
- ArithmeticException if an error occurs during the instruction.
- </li>
-</ul>
-
-</body>
-</html>