(Version version, int sizeOp, int sizeA, int sizeB, int sizeC)
| 45 | } |
| 46 | |
| 47 | public CodeExtract(Version version, int sizeOp, int sizeA, int sizeB, int sizeC) { |
| 48 | switch(version.instructionformat.get()) { |
| 49 | case LUA50: |
| 50 | op = new Field(sizeOp, 0); |
| 51 | A = new Field(sizeA, sizeB + sizeC + sizeOp); |
| 52 | B = new Field(sizeB, sizeB + sizeOp); |
| 53 | C = new Field(sizeC, sizeOp); |
| 54 | k = null; |
| 55 | Ax = null; |
| 56 | sJ = null; |
| 57 | Bx = new Field(sizeB + sizeC, sizeOp); |
| 58 | sBx = new Field(sizeB + sizeC, sizeOp, size_to_mask(sizeB + sizeC) / 2); |
| 59 | x = new Field(32, 0); |
| 60 | break; |
| 61 | case LUA51: |
| 62 | op = new Field(6, 0); |
| 63 | A = new Field(8, 6); |
| 64 | B = new Field(9, 23); |
| 65 | C = new Field(9, 14); |
| 66 | k = null; |
| 67 | Ax = new Field(26, 6); |
| 68 | sJ = null; |
| 69 | Bx = new Field(18, 14); |
| 70 | sBx = new Field(18, 14, 131071); |
| 71 | x = new Field(32, 0); |
| 72 | break; |
| 73 | case LUA54: |
| 74 | op = new Field(7, 0); |
| 75 | A = new Field(8, 7); |
| 76 | B = new Field(8, 16); |
| 77 | C = new Field(8, 24); |
| 78 | k = new Field(1, 15); |
| 79 | Ax = new Field(25, 7); |
| 80 | sJ = new Field(25, 7, (1 << 24) - 1); |
| 81 | Bx = new Field(17, 15); |
| 82 | sBx = new Field(17, 15, (1 << 16) - 1); |
| 83 | x = new Field(32, 0); |
| 84 | break; |
| 85 | default: |
| 86 | throw new IllegalStateException(); |
| 87 | } |
| 88 | Integer rk_offset = version.rkoffset.get(); |
| 89 | this.rk_offset = (rk_offset == null) ? -1 : rk_offset; |
| 90 | } |
| 91 | |
| 92 | public boolean is_k(int field) { |
| 93 | return field >= rk_offset; |
nothing calls this directly
no test coverage detected