remove obsolete ships
[fleet.git] / misc / obsolete-ships / MultiplierShip.java
1 package edu.berkeley.fleet.interpreter.ships;
2 import edu.berkeley.fleet.interpreter.*;
3 import edu.berkeley.fleet.*;
4
5 import java.util.*;
6 import java.io.*;
7
8 /**
9  * @author Dominic Antonelli <dantonel@berkeley.edu>
10  */
11 public class MultiplierShip extends InterpreterShip {
12
13     private int link;
14
15     DataInbox A = new DataInbox(this, "A");
16     DataInbox B = new DataInbox(this, "B");
17     DataOutbox out0 = new DataOutbox(this, "out0");
18     DataOutbox out1 = new DataOutbox(this, "out1");
19
20     public MultiplierShip(Interpreter fleet, String name) {
21         super(fleet, name);
22     }
23
24     public void service() {
25         if (!out0.readyForDataFromShip()) return;
26         if (!out1.readyForDataFromShip()) return;
27         if (!A.dataReadyForShip()) return;
28         if (!B.dataReadyForShip()) return;
29
30         long inA = (long)A.removeDataForShip();
31         long inB = (long)B.removeDataForShip();
32         long result = inA * inB;
33         int result0 = (int)(result >> 32);
34         int result1 = (int)(result & 0xffffffff);
35
36         out0.addDataFromShip(result0);
37         out1.addDataFromShip(result1);
38     }
39 }