142,143c142
< typedef AuxVector<IntType> auxv_t;
< vector<auxv_t> auxv;
---
> vector<AuxVector<IntType>> auxv;
145,152c144,151
< auxv.push_back(auxv_t(M5_AT_ENTRY, objFile->entryPoint()));
< auxv.push_back(auxv_t(M5_AT_PHNUM, elfObject->programHeaderCount()));
< auxv.push_back(auxv_t(M5_AT_PHENT, elfObject->programHeaderSize()));
< auxv.push_back(auxv_t(M5_AT_PHDR, elfObject->programHeaderTable()));
< auxv.push_back(auxv_t(M5_AT_PAGESZ, PageBytes));
< auxv.push_back(auxv_t(M5_AT_SECURE, 0));
< auxv.push_back(auxv_t(M5_AT_RANDOM, stack_top));
< auxv.push_back(auxv_t(M5_AT_NULL, 0));
---
> auxv.emplace_back(M5_AT_ENTRY, objFile->entryPoint());
> auxv.emplace_back(M5_AT_PHNUM, elfObject->programHeaderCount());
> auxv.emplace_back(M5_AT_PHENT, elfObject->programHeaderSize());
> auxv.emplace_back(M5_AT_PHDR, elfObject->programHeaderTable());
> auxv.emplace_back(M5_AT_PAGESZ, PageBytes);
> auxv.emplace_back(M5_AT_SECURE, 0);
> auxv.emplace_back(M5_AT_RANDOM, stack_top);
> auxv.emplace_back(M5_AT_NULL, 0);
203c202
< memState->setStackMin(memState->getStackMin() & -2*addrSize);
---
> memState->setStackMin(memState->getStackMin() & (-2 * addrSize));
206,208c205,207
< [this, &sp](const uint8_t* data, const size_t size) {
< initVirtMem.writeBlob(sp, data, size);
< sp += size;
---
> [this, &sp](IntType data) {
> initVirtMem.write(sp, data, GuestByteOrder);
> sp += sizeof(data);
212,215c211,214
< IntType argc = htog((IntType)argv.size());
< DPRINTF(Stack, "Wrote argc %d to address %p\n",
< argv.size(), (void*)sp);
< pushOntoStack((uint8_t*)&argc, sizeof(IntType));
---
> IntType argc = argv.size();
> DPRINTF(Stack, "Wrote argc %d to address %#x\n", argc, sp);
> pushOntoStack(argc);
>
217,219c216,218
< DPRINTF(Stack, "Wrote argv pointer %p to address %p\n",
< (void*)argPointer, (void*)sp);
< pushOntoStack((uint8_t*)&argPointer, addrSize);
---
> DPRINTF(Stack, "Wrote argv pointer %#x to address %#x\n",
> argPointer, sp);
> pushOntoStack(argPointer);
224,226c223,225
< DPRINTF(Stack, "Wrote envp pointer %p to address %p\n",
< (void*)envPointer, (void*)sp);
< pushOntoStack((uint8_t*)&envPointer, addrSize);
---
> DPRINTF(Stack, "Wrote envp pointer %#x to address %#x\n",
> envPointer, sp);
> pushOntoStack(envPointer);
240,246c239,244
< for (const AuxVector<IntType>& aux: auxv) {
< DPRINTF(Stack, "Wrote aux key %s to address %p\n",
< aux_keys[aux.getAuxType()], (void*)sp);
< pushOntoStack((uint8_t*)&aux.getAuxType(), sizeof(IntType));
< DPRINTF(Stack, "Wrote aux value %x to address %p\n",
< aux.getAuxVal(), (void*)sp);
< pushOntoStack((uint8_t*)&aux.getAuxVal(), sizeof(IntType));
---
> for (const auto &aux: auxv) {
> DPRINTF(Stack, "Wrote aux key %s to address %#x\n",
> aux_keys[aux.type], sp);
> pushOntoStack(aux.type);
> DPRINTF(Stack, "Wrote aux value %x to address %#x\n", aux.val, sp);
> pushOntoStack(aux.val);