diff options
Diffstat (limited to 'dx/src/com/android/dx/dex/code/form/Form11n.java')
-rw-r--r-- | dx/src/com/android/dx/dex/code/form/Form11n.java | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/dx/src/com/android/dx/dex/code/form/Form11n.java b/dx/src/com/android/dx/dex/code/form/Form11n.java deleted file mode 100644 index b94038bb2..000000000 --- a/dx/src/com/android/dx/dex/code/form/Form11n.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.dx.dex.code.form; - -import com.android.dx.dex.code.CstInsn; -import com.android.dx.dex.code.DalvInsn; -import com.android.dx.dex.code.InsnFormat; -import com.android.dx.rop.code.RegisterSpecList; -import com.android.dx.rop.cst.Constant; -import com.android.dx.rop.cst.CstLiteralBits; -import com.android.dx.util.AnnotatedOutput; - -/** - * Instruction format <code>11n</code>. See the instruction format spec - * for details. - */ -public final class Form11n extends InsnFormat { - /** non-null; unique instance of this class */ - public static final InsnFormat THE_ONE = new Form11n(); - - /** - * Constructs an instance. This class is not publicly - * instantiable. Use {@link #THE_ONE}. - */ - private Form11n() { - // This space intentionally left blank. - } - - /** {@inheritDoc} */ - @Override - public String insnArgString(DalvInsn insn) { - RegisterSpecList regs = insn.getRegisters(); - CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); - - return regs.get(0).regString() + ", " + literalBitsString(value); - } - - /** {@inheritDoc} */ - @Override - public String insnCommentString(DalvInsn insn, boolean noteIndices) { - CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); - return literalBitsComment(value, 4); - } - - /** {@inheritDoc} */ - @Override - public int codeSize() { - return 1; - } - - /** {@inheritDoc} */ - @Override - public boolean isCompatible(DalvInsn insn) { - RegisterSpecList regs = insn.getRegisters(); - - if (!((insn instanceof CstInsn) && - (regs.size() == 1) && - unsignedFitsInNibble(regs.get(0).getReg()))) { - return false; - } - - CstInsn ci = (CstInsn) insn; - Constant cst = ci.getConstant(); - - if (!(cst instanceof CstLiteralBits)) { - return false; - } - - CstLiteralBits cb = (CstLiteralBits) cst; - - return cb.fitsInInt() && signedFitsInNibble(cb.getIntBits()); - } - - /** {@inheritDoc} */ - @Override - public InsnFormat nextUp() { - return Form21s.THE_ONE; - } - - /** {@inheritDoc} */ - @Override - public void writeTo(AnnotatedOutput out, DalvInsn insn) { - RegisterSpecList regs = insn.getRegisters(); - int value = - ((CstLiteralBits) ((CstInsn) insn).getConstant()).getIntBits(); - - write(out, - opcodeUnit(insn, makeByte(regs.get(0).getReg(), value & 0xf))); - } -} |