%term Call=CallOPCODE
%term Shl=ShlOPCODE
%term Shr=ShrOPCODE
-%term VANext=VANextOPCODE
%term VAArg=VAArgOPCODE
/* 33...46 are unused */
/*
reg: Shl(reg,reg) = 62 (20); /* 1 for issue restrictions */
reg: Shr(reg,reg) = 63 (20); /* 1 for issue restrictions */
reg: Phi(reg,reg) = 64 (0);
-reg: VANext(reg) = 65 (40); /* incr stack slot pointer */
reg: VAArg(reg) = 66 (40); /* get a vararg */
/*
case 64: // reg: Phi(reg,reg)
break; // don't forward the value
+#if 0
+//FIXME: new VAArg support
case 65: // reg: VANext(reg): the va_next(va_list, type) instruction
{ // Increment the va_list pointer register according to the type.
// All LLVM argument types are <= 64 bits, so use one doubleword.
addSImm(argSize).addRegDef(vaNextI));
break;
}
+#endif
+//FIXME: new VAArg support
case 66: // reg: VAArg (reg): the va_arg instruction
{ // Load argument from stack using current va_list pointer value.
// Use 64-bit load for all non-FP args, and LDDF or double for FP.