Package org.jnode.jnasm.assembler

Examples of org.jnode.jnasm.assembler.Address


        switch (addr) {
            case R_ADDR:
                stream.writeNEG(getReg(0));
                break;
            case E_ADDR:
                Address ind = getAddress(0);
                stream.writeNEG(operandSize, getRegister(ind.getImg()), ind.disp);
                break;
            default:
                reportAddressingError(NEG_ISN, addr);
        }
    }
View Full Code Here


                break;
            case RC_ADDR:
                stream.writeOR(getReg(0), getInt(1));
                break;
            case RE_ADDR:
                Address ind = getAddress(1);
                stream.writeOR(getReg(0), getRegister(ind.getImg()), ind.disp);
                break;
            case ER_ADDR:
                ind = getAddress(0);
                stream.writeOR(getRegister(ind.getImg()), ind.disp, getReg(1));
                break;
            case EC_ADDR:
                ind = getAddress(0);
                stream.writeOR(operandSize, getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            case AC_ADDR:
                stream.writeOR(operandSize, getAddress(0).disp, getInt(1));
                break;
            case GC_ADDR:
                ind = getAddress(0);
                stream.writeOR(operandSize, (SR) X86Register.getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            default:
                reportAddressingError(OR_ISN, addr);
        }
    }
View Full Code Here

                } else {
                    throw new IllegalArgumentException("Invalid register usage: pop " + r1);
                }
                break;
            case E_ADDR:
                Address ind = getAddress(0);
                stream.writePOP(getRegister(ind.getImg()), ind.disp);
                break;
            default:
                reportAddressingError(POP_ISN, addr);
        }
    }
View Full Code Here

                } else {
                    throw new IllegalArgumentException("Invalid register usage: push " + r1);
                }
                break;
            case E_ADDR:
                Address ind = getAddress(0);
                stream.writePUSH(getRegister(ind.getImg()), ind.disp);
                break;
            case G_ADDR:
                ind = getAddress(0);
                r1 = X86Register.getRegister(ind.getImg());
                stream.writePUSH((SR) r1, ind.disp);
                break;
            default:
                reportAddressingError(PUSH_ISN, addr);
        }
View Full Code Here

        switch (addr) {
            case RC_ADDR:
                stream.writeSHL(getReg(0), getInt(1));
                break;
            case EC_ADDR:
                Address ind = getAddress(0);
                stream.writeSHL(operandSize, getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            default:
                reportAddressingError(SHL_ISN, addr);
        }
    }
View Full Code Here

        switch (addr) {
            case RC_ADDR:
                stream.writeSHR(getReg(0), getInt(1));
                break;
            case EC_ADDR:
                Address ind = getAddress(0);
                stream.writeSHR(operandSize, getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            default:
                reportAddressingError(SHR_ISN, addr);
        }
    }
View Full Code Here

    private void emitSTMXCSR() {
        int addr = getAddressingMode(1);
        switch (addr) {
            case E_ADDR:
                Address ind = getAddress(0);
                stream.writeSTMXCSR(getRegister(ind.getImg()), ind.disp);
                break;
            default:
                reportAddressingError(STMXCSR_ISN, addr);
        }
    }
View Full Code Here

                break;
            case RC_ADDR:
                stream.writeSUB(getReg(0), getInt(1));
                break;
            case RE_ADDR:
                Address ind = getAddress(1);
                stream.writeSUB(getReg(0), getRegister(ind.getImg()), ind.disp);
                break;
            case ER_ADDR:
                ind = getAddress(0);
                stream.writeSUB(getRegister(ind.getImg()), ind.disp, getReg(1));
                break;
            case EC_ADDR:
                ind = getAddress(0);
                stream.writeSUB(operandSize, getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            case AR_ADDR:
                stream.writeSUB(getAddress(0).disp, getReg(1));
                break;
            default:
View Full Code Here

                break;
            case RC_ADDR:
                stream.writeTEST(getReg(0), getInt(1));
                break;
            case EC_ADDR:
                Address ind = getAddress(0);
                stream.writeTEST(operandSize, getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            case AC_ADDR:
                stream.writeTEST(operandSize, getAddress(0).disp, getInt(1));
                break;
            case GC_ADDR:
                ind = getAddress(0);
                stream.writeTEST(operandSize, (SR) X86Register.getRegister(ind.getImg()), ind.disp, getInt(1));
                break;
            default:
                reportAddressingError(TEST_ISN, addr);
        }
    }
View Full Code Here

        switch (addr) {
            case RR_ADDR:
                stream.writeXCHG(getReg(0), getReg(1));
                break;
            case RE_ADDR:
                Address ind = getAddress(1);
                stream.writeXCHG(getRegister(ind.getImg()), ind.disp, getReg(0));
                break;
            case RA_ADDR:
                stream.writeXCHG(getAddress(1).disp, getReg(0));
                break;
            case RG_ADDR:
                ind = getAddress(1);
                stream.writeXCHG((SR) X86Register.getRegister(ind.getImg()), ind.disp, getReg(0));
                break;
            case ER_ADDR:
                ind = getAddress(0);
                stream.writeXCHG(getRegister(ind.getImg()), ind.disp, getReg(1));
                break;
            case AR_ADDR:
                stream.writeXCHG(getAddress(0).disp, getReg(1));
                break;
            case GR_ADDR:
                ind = getAddress(0);
                stream.writeXCHG((SR) X86Register.getRegister(ind.getImg()), ind.disp, getReg(1));
                break;
            default:
                reportAddressingError(XCHG_ISN, addr);
        }
    }
View Full Code Here

TOP

Related Classes of org.jnode.jnasm.assembler.Address

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.