// // Constructor // static VMIOS_CONSTRUCTOR_FN(constructor) { paramValuesP params = parameterValues; // get parameters object->argv = params->userargv; object->envp = params->userenvp; // first three argument registers object->args[0] = vmiosGetRegDesc(processor, "r0"); object->args[1] = vmiosGetRegDesc(processor, "r1"); object->args[2] = vmiosGetRegDesc(processor, "r2"); // return register (standard ABI) object->resultReg = vmiosGetRegDesc(processor, "r0"); // return register (standard ABI) object->argSP = vmiosGetRegDesc(processor, "sp"); // Sets up data common to all newlib implementations // Defined in newlibSemiHost.c.h setupNewlib(object, processor); }
// // Constructor // static VMIOS_CONSTRUCTOR_FN(constructor) { // first three argument registers (standard ABI) object->args[0] = vmiosGetRegDesc(processor, "R5"); object->args[1] = vmiosGetRegDesc(processor, "R6"); object->args[2] = vmiosGetRegDesc(processor, "R7"); object->args[3] = vmiosGetRegDesc(processor, "R8"); object->args[4] = vmiosGetRegDesc(processor, "R9"); object->args[5] = vmiosGetRegDesc(processor, "R10"); // return register (standard ABI) object->resultReg = vmiosGetRegDesc(processor, "R3"); // Stack Pointer object->argSP = vmiosGetRegDesc(processor, "R1"); Bool found; object->argv = (char **)(UnsPS)vmirtPlatformUns64Attribute(processor, "userargv", &found); object->envp = (char **)(UnsPS)vmirtPlatformUns64Attribute(processor, "userenvp", &found); // Sets up data common to all newlib implementations // Defined in newlibSemiHost.c.h setupNewlib(object, processor); }