mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 00:08:30 +00:00
Add Conway's Game of Life
This commit is contained in:
parent
db33973e0a
commit
dba7552c1e
22 changed files with 664 additions and 186 deletions
|
@ -30,7 +30,6 @@
|
|||
/ @asyncsignalsafe
|
||||
_Exit: push %rbp
|
||||
mov %rsp,%rbp
|
||||
orl $RUNSTATE_TERMINATE,g_runstate(%rip)
|
||||
#if SupportsWindows()
|
||||
testb IsWindows()
|
||||
jz 1f
|
||||
|
@ -49,4 +48,3 @@ _Exit: push %rbp
|
|||
3: .quad 0
|
||||
.endfn _Exit,globl,protected
|
||||
.hidden __NR_exit
|
||||
.hidden g_runstate
|
||||
|
|
|
@ -39,7 +39,6 @@ abort: push %rbp
|
|||
mov %rsp,%rbp
|
||||
and $-16,%rsp
|
||||
sub $16,%rsp
|
||||
orl $RUNSTATE_BROKEN,g_runstate(%rip)
|
||||
testb IsWindows()
|
||||
jnz 2f
|
||||
mov SIG_SETMASK,%edi
|
||||
|
@ -61,4 +60,3 @@ abort: push %rbp
|
|||
2: mov $134,%edi # exit(128+SIGABRT) [bash-ism]
|
||||
call _Exit
|
||||
.endfn abort,globl,protected
|
||||
.hidden g_runstate
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
_construct:
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
orb $RUNSTATE_INITIALIZED,g_runstate(%rip)
|
||||
ezlea __init_array_start,ax # static ctors in forward order
|
||||
.weak __init_array_start # could be called multiple times
|
||||
ezlea __init_array_end,cx # idempotency recommended
|
||||
|
|
|
@ -72,7 +72,7 @@ privileged interruptfn void ftrace_hook(void) {
|
|||
const char *symbol;
|
||||
struct StackFrame *frame;
|
||||
LOAD_DEFAULT_RBX();
|
||||
if (g_symbols && !(g_runstate & RUNSTATE_BROKEN)) {
|
||||
if (g_symbols) {
|
||||
frame = __builtin_frame_address(0);
|
||||
symbol =
|
||||
&g_symbols->name_base[g_symbols
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
.section .initprologue,"ax",@progbits
|
||||
.type _init,@function
|
||||
.globl _init
|
||||
.comm g_runstate,4
|
||||
_init: push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
|
|
|
@ -4,20 +4,15 @@
|
|||
#include "libc/dce.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
|
||||
#define RUNSTATE_INITIALIZED (1 << 0)
|
||||
#define RUNSTATE_BROKEN (1 << 1)
|
||||
#define RUNSTATE_TERMINATE (1 << 2)
|
||||
|
||||
#define STACK_CEIL 0x700000000000ul
|
||||
#define STACK_SIZE FRAMESIZE
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
hidden extern bool _mmap_asan_mode;
|
||||
hidden extern char **g_freebsdhint;
|
||||
hidden extern unsigned g_runstate;
|
||||
hidden extern void *g_stacktop;
|
||||
extern hidden bool _mmap_asan_mode;
|
||||
extern hidden char **g_freebsdhint;
|
||||
extern hidden void *g_stacktop;
|
||||
|
||||
void _init(void) hidden;
|
||||
void _piro(int) hidden;
|
||||
|
@ -29,12 +24,6 @@ void _jmpstack(void *, void *, ...) hidden noreturn;
|
|||
long _setstack(void *, void *, ...) hidden;
|
||||
int GetDosArgv(const char16_t *, char *, size_t, char **, size_t) hidden;
|
||||
|
||||
forceinline void AssertNeverCalledWhileTerminating(void) {
|
||||
if (!NoDebug() && (g_runstate & RUNSTATE_TERMINATE)) {
|
||||
abort();
|
||||
}
|
||||
}
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* ANSI */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue