Minux Ma
Minux Ma
``` void (*f(int *p))(void) { return (void *)0; } ``` ``` $ 8cc -c t2.c [ERROR] 8cc.h:426: t.c:1:25: ';' or ',' are expected, but got { ```
I think we can get rid of constant pool for integer immediate values by using movz and movk to load constants. it needs at most 4 instructions to load arbitrary...
see discussion of https://github.com/4ad/go/commit/4ea45eab176f9a261d9288c9069477910eede063
I'm also wondering if Dmitry wants to add race detector support? :)
right now we inline appendp each time, we should use appendp instead before upstream.
It seems our atomic operations might lack memory barriers, as I run misc/cgo/test for enough number of times, test9400 almost always timeout due to missed synchronization (esp. when GOMAXPROCS=8). test9400...
https://github.com/4ad/go/commit/53506458aa79fed23a5db0b4f4ec31ee342a1b15#commitcomment-9807610 https://github.com/4ad/go/commit/d7dcc3829662dd7be157097e7f603d9cef6e0fcd#commitcomment-9799083 See also the commit message for another idea.
I think on all the other architectures, ANOP is just a placeholder, and to generate a real nop instruction, one must explicit write it out (e.g. XCHGL AX, AX on...
It seems we translated asm_ppc64x.s to asm_arm64.s, however, at least we failed to replace ppc64x's closure environment register (R11) with ours (R26).