Package org.jnode.assembler.x86

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


                if (os.isCode32()) {
                    pushToFPU(os, X86Register.ESP, 0);
                    os.writeLEA(X86Register.ESP, X86Register.ESP, 8);
                } else {
                    pushToFPU(os, X86Register.RSP, 0);
                    os.writeLEA(X86Register.RSP, X86Register.RSP, 16); // 8-byte + garbage
                }
                break;
        }

        cleanup(ec);
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

            case Kind.LOCAL:
                if (os.isCode32()) {
                    os.writePUSH(X86Register.EBP, getMsbOffsetToFP(ec));
                    os.writePUSH(X86Register.EBP, getLsbOffsetToFP(ec));
                } else {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                    os.writePUSH(X86Register.RBP, getOffsetToFP(ec));
                }
                break;

            case Kind.CONSTANT:
View Full Code Here

                }
                break;

            case Kind.CONSTANT:
                if (os.isCode64()) {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                }
                pushConstant(ec, os);
                break;

            case Kind.FPUSTACK:
View Full Code Here

                    FPUHelper.fxch(os, fpuStack, fpuStack.getRegister(this));
                }
                stack.fpuStack.pop(this);
                // Convert & move to new space on normal stack
                if (os.isCode32()) {
                    os.writeLEA(X86Register.ESP, X86Register.ESP, -8);
                    popFromFPU(os, X86Register.ESP, 0);
                } else {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // Still 8
                    // bytes
View Full Code Here

                // Convert & move to new space on normal stack
                if (os.isCode32()) {
                    os.writeLEA(X86Register.ESP, X86Register.ESP, -8);
                    popFromFPU(os, X86Register.ESP, 0);
                } else {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // Still 8
                    // bytes
                    popFromFPU(os, X86Register.RSP, 0);
                }
                break;
View Full Code Here

                if (os.isCode32()) {
                    os.writeLEA(X86Register.ESP, X86Register.ESP, -8);
                    popFromFPU(os, X86Register.ESP, 0);
                } else {
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage
                    os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // Still 8
                    // bytes
                    popFromFPU(os, X86Register.RSP, 0);
                }
                break;
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.