Как реализовать alloca() с помощью встроенного ассемблера x86 в таких языках, как D, C и С++? Я хочу создать слегка измененную версию, но сначала мне нужно знать, как реализована стандартная версия. Чтение разборки из компиляторов не помогает, потому что они выполняют так много оптимизаций, и я просто хочу каноническую форму.
Изменить: я думаю, что сложная часть заключается в том, что я хочу, чтобы у этого был обычный синтаксис вызова функции, т.е. с использованием голой функции или чего-то еще, чтобы она выглядела как обычный alloca().
Изменить №2: Ах, черт, вы можете предположить, что мы не опускаем указатель на фрейм.