Examples of GPR64


Examples of org.jnode.assembler.x86.X86Register.GPR64

            os.writeSUB(v1_lsb, v2_lsb);
            os.writeSBB(v1_msb, v2_msb);
            os.writeJCC(ltLabel, X86Constants.JL); // JL
            os.writeOR(v1_lsb, v1_msb);
        } else {
            final GPR64 v2r = v2.getRegister(eContext);
            final GPR64 v1r = v1.getRegister(eContext);
            os.writeCMP(v1r, v2r);
            os.writeJCC(ltLabel, X86Constants.JL); // JL
        }
        os.writeJCC(endLabel, X86Constants.JZ); // value1 == value2
        /** GT */
 
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

                // Calculate
                os.writeNEG(msb); // msb := -msb
                os.writeNEG(lsb); // lsb := -lsb
                os.writeSBB(msb, 0); // high += borrow
            } else {
                final GPR64 reg = v.getRegister(eContext);
                // Calculate
                os.writeNEG(reg); // reg := -reg
            }

            // Push
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

            os.writeMOV(INTSIZE, v1_msb, v1_lsb);
            os.writeXOR(v1_lsb, v1_lsb);
            os.writeSHL_CL(v1_msb);
            os.setObjectRef(endLabel);
        } else {
            final GPR64 v1r = val.getRegister(eContext);
            os.writeSHL_CL(v1r);
        }

        // Release
        cnt.release(eContext);
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

            os.writeMOV(INTSIZE, lsb, msb);
            os.writeSAR(msb, 31);
            os.writeSAR_CL(lsb);
            os.setObjectRef(endLabel);
        } else {
            final GPR64 valr = val.getRegister(eContext);
            os.writeSAR_CL(valr);
        }

        vstack.push(val);
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

            os.writeMOV(INTSIZE, lsb, msb);
            os.writeXOR(msb, msb);
            os.writeSHR_CL(lsb);
            os.setObjectRef(endLabel);
        } else {
            final GPR64 valr = val.getRegister(eContext);
            os.writeSHR_CL(valr);
        }

        // Push
        vstack.push(val);
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

                counters.getCounter("tableswitch-opt").inc();
            }

            final GPR tmp = (GPR) L1AHelper.requestRegister(eContext, JvmType.REFERENCE, false);
            if (os.isCode64()) {
                GPR64 valr64 = L1AHelper.get64BitReg(eContext, valr);
                os.writeMOVSXD(valr64, (GPR32) valr);
                valr = valr64;
            }
            if (lowValue != 0) {
                os.writeSUB(valr, lowValue);
            }
            // If outsite low-high range, jump to default
            os.writeCMP_Const(valr, n);
            os.writeJCC(helper.getInstrLabel(defAddress), X86Constants.JAE);

            final Label curInstrLabel = getCurInstrLabel();
            final Label l1 = new Label(curInstrLabel + "$$l1");
            final Label l2 = new Label(curInstrLabel + "$$l2");
            final int l12distance = os.isCode32() ? 12 : 23;

            // Get absolute address of l1 into S0. (do not use
            // stackMgr.writePOP!)
            os.writeCALL(l1);
            os.setObjectRef(l1);
            final int l1Ofs = os.getLength();
            os.writePOP(tmp);

            // Calculate absolute address of jumptable entry into S1
            os.writeLEA(tmp, tmp, valr, helper.ADDRSIZE, l12distance);

            // Calculate absolute address of jump target
            if (os.isCode32()) {
                os.writeADD(tmp, tmp, 0);
            } else {
                final GPR32 tmp2 = (GPR32) L1AHelper.requestRegister(eContext, JvmType.INT, false);
                os.writeMOV(BITS32, tmp2, tmp, 0);
                final GPR64 tmp2_64 = L1AHelper.get64BitReg(eContext, tmp2);
                os.writeMOVSXD(tmp2_64, tmp2);
                os.writeADD(tmp, tmp2_64);
                L1AHelper.releaseRegister(eContext, tmp2);
            }
            os.writeLEA(tmp, tmp, 4); // Compensate for writeRelativeObject
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

            final int offset = idx.getValue() * scale;
            os.writeMOV(valSize, resultr, refr, offset + arrayDataOffset);
        } else {
            GPR idxr = idx.getRegister();
            if (os.isCode64()) {
                final GPR64 idxr64 = (GPR64) eContext.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                os.writeMOVSXD(idxr64, (GPR32) idxr);
                idxr = idxr64;
            }
            os.writeMOV(valSize, resultr, refr, idxr, scale, arrayDataOffset);
        }
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

            final int offset = idx.getValue() * scale;
            os.writeMOV(valSize, refr, offset + arrayDataOffset, valr);
        } else {
            GPR idxr = idx.getRegister();
            if (os.isCode64()) {
                final GPR64 idxr64 = (GPR64) pool.getRegisterInSameGroup(idxr, JvmType.LONG);
                os.writeMOVSXD(idxr64, (GPR32) idxr);
                idxr = idxr64;
            }
            os.writeMOV(valSize, refr, idxr, scale, arrayDataOffset, valr);
        }
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

                final int offset = idx.getValue() * 4;
                os.writeFLD32(refr, offset + arrayDataOffset);
            } else {
                GPR idxr = idx.getRegister();
                if (os.isCode64()) {
                    final GPR64 idxr64 = (GPR64) ec.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                    os.writeMOVSXD(idxr64, (GPR32) idxr);
                    idxr = idxr64;
                }
                os.writeFLD32(refr, idxr, 4, arrayDataOffset);
            }
        } else {
            if (idx.isConstant()) {
                final int offset = idx.getValue() * 8;
                os.writeFLD64(refr, offset + arrayDataOffset);
            } else {
                GPR idxr = idx.getRegister();
                if (os.isCode64()) {
                    final GPR64 idxr64 = (GPR64) ec.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                    os.writeMOVSXD(idxr64, (GPR32) idxr);
                    idxr = idxr64;
                }
                os.writeFLD64(refr, idxr, 8, arrayDataOffset);
            }
View Full Code Here

Examples of org.jnode.assembler.x86.X86Register.GPR64

                final int offset = idx.getValue() * 4;
                os.writeFLD32(refr, offset + arrayDataOffset);
            } else {
                GPR idxr = idx.getRegister();
                if (os.isCode64()) {
                    final GPR64 idxr64 = (GPR64) ec.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                    os.writeMOVSXD(idxr64, (GPR32) idxr);
                    idxr = idxr64;
                }
                os.writeFLD32(refr, idxr, 4, arrayDataOffset);
            }
        } else {
            if (idx.isConstant()) {
                final int offset = idx.getValue() * 8;
                os.writeFLD64(refr, offset + arrayDataOffset);
            } else {
                GPR idxr = idx.getRegister();
                if (os.isCode64()) {
                    final GPR64 idxr64 = (GPR64) ec.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                    os.writeMOVSXD(idxr64, (GPR32) idxr);
                    idxr = idxr64;
                }
                os.writeFLD64(refr, idxr, 8, arrayDataOffset);
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.