Examples of GPR64


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

            // larger tables.
            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 GPR msb = val.getMsbRegister(eContext);
                // Store
                os.writeMOV(INTSIZE, helper.BP, disp + LSB, lsb);
                os.writeMOV(INTSIZE, helper.BP, disp + MSB, msb);
            } else {
                final GPR64 reg = val.getRegister(eContext);
                // Store
                os.writeMOV(BITS64, helper.BP, disp, reg);
            }
        }
View Full Code Here

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

        } else {
            final GPR32 idxr = (GPR32) index.getRegister();
            if (os.isCode32()) {
                os.writeLEA(dst, refr, idxr, scale, arrayDataOffset);
            } else {
                final GPR64 idxr64 = (GPR64) eContext.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
                os.writeMOVSXD(idxr64, (GPR32) idxr);
                os.writeLEA(dst, refr, idxr64, scale, arrayDataOffset);
            }
        }
    }
View Full Code Here

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

                    os.writeArithOp(operationLsb, r1_lsb, v2.getLsbValue());
                    os.writeArithOp(operationMsb, r1_msb, v2.getMsbValue());
                    break;
            }
        } else {
            final GPR64 r1 = v1.getRegister(eContext);
            switch (v2.getKind()) {
                case Item.Kind.GPR:
                    os.writeArithOp(operationLsb, r1, v2.getRegister(eContext));
                    break;
                case Item.Kind.LOCAL:
View Full Code Here

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

                    final GPR lsb = idw.getLsbRegister(eContext);
                    final GPR msb = idw.getMsbRegister(eContext);
                    os.writeMOV(BITS32, lsb, refr, fieldOffset + LSB);
                    os.writeMOV(BITS32, msb, refr, fieldOffset + MSB);
                } else {
                    final GPR64 reg = idw.getRegister(eContext);
                    os.writeMOV(BITS64, reg, refr, fieldOffset);
                }
                result = idw;
            }
        }
View Full Code Here

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

                    helper.writeGetStaticsEntry64(curInstrLabel, lsb, msb, (VmSharedStaticsEntry) sf);
                } else {
                    helper.writeGetStaticsEntry64(curInstrLabel, lsb, msb, (VmIsolatedStaticsEntry) sf);
                }
            } else {
                final GPR64 reg = result.getRegister(eContext);
                if (sf.isShared()) {
                    helper.writeGetStaticsEntry64(curInstrLabel, reg, (VmSharedStaticsEntry) sf);
                } else {
                    helper.writeGetStaticsEntry64(curInstrLabel, reg, (VmIsolatedStaticsEntry) sf);
                }
View Full Code Here

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

        // Get data
        final DoubleWordItem result = L1AHelper.requestDoubleWordRegisters(
            eContext, JvmType.LONG);
        if (os.isCode64()) {
            final GPR64 idxr64 = (GPR64) eContext.getGPRPool().getRegisterInSameGroup(idxr, JvmType.LONG);
            os.writeMOVSXD(idxr64, (GPR32) idxr);
            idxr = idxr64;
        }
        os.writeLEA(refr, refr, idxr, 8, arrayDataOffset);
        if (os.isCode32()) {
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.