Package org.jnode.assembler.x86

Examples of org.jnode.assembler.x86.X86Assembler.writeLEA()


            case Kind.FPUSTACK:
                // Make sure this item is on top of the FPU stack
                FPUHelper.fxch(os, stack.fpuStack, this);
                stack.fpuStack.pop(this);
                // Convert & move to new space on normal stack
                os.writeLEA(helper.SP, helper.SP, -helper.SLOTSIZE);
                popFromFPU(os, helper.SP, 0);
                os.writePOP(reg);
                break;

            case Kind.STACK:
View Full Code Here


                // Make sure this item is on top of the FPU stack
                final FPUStack fpuStack = stack.fpuStack;
                FPUHelper.fxch(os, fpuStack, this);
                stack.fpuStack.pop(this);
                // Convert & move to new space on normal stack
                os.writeLEA(helper.SP, helper.SP, -helper.SLOTSIZE);
                popFromFPU(os, helper.SP, 0);
                break;

            case Kind.STACK:
                // nothing to do
View Full Code Here

        switch (getKind()) {
            case Kind.GPR:
                os.writePUSH(gpr);
                pushToFPU(os, helper.SP, 0);
                os.writeLEA(helper.SP, helper.SP, helper.SLOTSIZE);
                break;

            case Kind.LOCAL:
                pushToFPU(os, helper.BP, getOffsetToFP(ec));
                break;
View Full Code Here

                break;

            case Kind.CONSTANT:
                pushConstant(ec, os);
                pushToFPU(os, helper.SP, 0);
                os.writeLEA(helper.SP, helper.SP, helper.SLOTSIZE);
                break;

            case Kind.FPUSTACK:
                // Assert this item is at the top of the stack
                stack.fpuStack.pop(this);
View Full Code Here

                if (os.isCode64()) {
                    GPR64 indexReg64 = L1AHelper.get64BitReg(ec, indexReg);
                    os.writeMOVSXD(indexReg64, (GPR32) indexReg);
                    indexReg = indexReg64;
                }
                os.writeLEA(itemReg, itemReg, indexReg, os.getWordSize(), VmArray.DATA_OFFSET * os.getWordSize());
                index.release(ec);
                vstack.push(item);
                break;
            }
            case GETISOLATEDSTATICSFIELDADDRESS: {
View Full Code Here

                if (os.isCode64()) {
                    GPR64 indexReg64 = L1AHelper.get64BitReg(ec, indexReg);
                    os.writeMOVSXD(indexReg64, (GPR32) indexReg);
                    indexReg = indexReg64;
                }
                os.writeLEA(itemReg, itemReg, indexReg, os.getWordSize(), VmArray.DATA_OFFSET * os.getWordSize());
                index.release(ec);
                vstack.push(item);
                break;
            }
            case ISRUNNINGJNODE: {
View Full Code Here

            case Kind.FPUSTACK:
                // Make sure this item is on top of the FPU stack
                stack.fpuStack.pop(this);
                // Convert & move to new space on normal stack
                os.writeLEA(X86Register.ESP, X86Register.ESP, -8);
                popFromFPU(os, X86Register.ESP, 0);
                os.writePOP(lsb);
                os.writePOP(msb);
                break;
View Full Code Here

            case Kind.FPUSTACK:
                // Make sure this item is on top of the FPU stack
                stack.fpuStack.pop(this);
                // Convert & move to new space on normal stack
                os.writeLEA(X86Register.RSP, X86Register.RSP, -8);
                popFromFPU(os, X86Register.RSP, 0);
                os.writePOP(reg);
                break;

            case Kind.STACK:
View Full Code Here

            case Kind.STACK:
                if (VirtualStack.checkOperandStack) {
                    stack.operandStack.pop(this);
                }
                os.writePOP(reg);
                os.writeLEA(X86Register.RSP, X86Register.RSP, 8); // garbage
                break;

        }
        setKind(Kind.GPR);
        this.reg = reg;
View Full Code Here

            case Kind.GPR:
                if (os.isCode32()) {
                    os.writePUSH(msb);
                    os.writePUSH(lsb);
                } else {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                    os.writePUSH(reg);
                }
                break;

            case Kind.LOCAL:
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.