Movatterモバイル変換


[0]ホーム

URL:


青木日記

<前の日 |この月 |次の日>

2006-08-14

そうだコンパイラつくろう (2)

足し算と関数呼び出し (らしきもの) ができるようになった。

~/c/cflat % uname -srmLinux 2.6.8-11-amd64-k8 x86_64~/c/cflat % cat test/add2.cbintmain(int argc, char **argv){    printf("ret=%d\n", f(76));    return 0;} intf(int i){    return i + 1;}~/c/cflat % ruby -I./lib ./bin/cbc test/add2.cb~/c/cflat % file add2add2: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped~/c/cflat % ./add2ret=77

Linux/AMD64 の calling convention を初めて真面目に調べたよ。最初の 6 個が rdi, rsi, rdx, rcx, r8, r9 で残りがスタックらしい。まだレジスタをちゃんと割り付けるロジックを書いてないので、手で割り当てるのが非常にめんどくさかった。

(19:58)

[ツッコミを入れる]

<前の日 |この月 |次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|
Generated bytDiary version A

[8]ページ先頭

©2009-2025 Movatter.jp