mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-26 20:40:28 +00:00
Get Cosmopolitan into releasable state
A new rollup tool now exists for flattening out the headers in a way that works better for our purposes than cpp. A lot of the API clutter has been removed. APIs that aren't a sure thing in terms of general recommendation are now marked internal. There's now a smoke test for the amalgamation archive and gigantic header file. So we can now guarantee you can use this project on the easiest difficulty setting without the gigantic repository. A website is being created, which is currently a work in progress: https://justine.storage.googleapis.com/cosmopolitan/index.html
This commit is contained in:
parent
dba7552c1e
commit
ea0b5d9d1c
775 changed files with 6864 additions and 3963 deletions
20
libc/nexgen32e/trampoline.h
Normal file
20
libc/nexgen32e/trampoline.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_NEXGEN32E_TRAMPOLINE_H_
|
||||
#define COSMOPOLITAN_LIBC_NEXGEN32E_TRAMPOLINE_H_
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
#define TRAMPOLINE(FUNCTION, THUNK) \
|
||||
({ \
|
||||
typeof(FUNCTION) *Tramp; \
|
||||
asm(".pushsection .text.trampoline\n" \
|
||||
"183:\n\t" \
|
||||
"mov\t%1,%%eax\n\t" \
|
||||
"jmp\t" #THUNK "\n\t" \
|
||||
".popsection\n\t" \
|
||||
"mov\t$183b,%k0" \
|
||||
: "=r"(Tramp) \
|
||||
: "i"(FUNCTION)); \
|
||||
Tramp; \
|
||||
})
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_NEXGEN32E_TRAMPOLINE_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue