548549550551552553554555556557558
break; 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;
551552553554555556557558559560561
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: if (os.isCode64()) {
628629630631632633634635636637638
// os.log("LongItem.push "+Integer.toString(getKind())); switch (getKind()) { case Kind.GPR: if (os.isCode32()) { os.writePUSH(msb); os.writePUSH(lsb); pushToFPU(os, X86Register.ESP, 0); os.writeLEA(X86Register.ESP, X86Register.ESP, 8); } else { os.writePUSH(reg);
629630631632633634635636637638639
// os.log("LongItem.push "+Integer.toString(getKind())); switch (getKind()) { case Kind.GPR: if (os.isCode32()) { os.writePUSH(msb); os.writePUSH(lsb); pushToFPU(os, X86Register.ESP, 0); os.writeLEA(X86Register.ESP, X86Register.ESP, 8); } else { os.writePUSH(reg); pushToFPU(os, X86Register.RSP, 0);
633634635636637638639640641642643
os.writePUSH(msb); os.writePUSH(lsb); pushToFPU(os, X86Register.ESP, 0); os.writeLEA(X86Register.ESP, X86Register.ESP, 8); } else { os.writePUSH(reg); pushToFPU(os, X86Register.RSP, 0); os.writeLEA(X86Register.RSP, X86Register.RSP, 8); } break;
526527528529530531532533534535536
// os.log("LongItem.push "+Integer.toString(getKind())); switch (getKind()) { case Kind.GPR: if (os.isCode32()) { os.writePUSH(msb); os.writePUSH(lsb); } else { os.writeLEA(X86Register.RSP, X86Register.RSP, -8); // garbage os.writePUSH(reg); }
527528529530531532533534535536537
switch (getKind()) { 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;
530531532533534535536537538539540
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: if (os.isCode32()) {
536537538539540541542543544545546
} break; 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)); }
537538539540541542543544545546547