diff options
author | John van Groningen | 2012-03-14 12:35:58 +0000 |
---|---|---|
committer | John van Groningen | 2012-03-14 12:35:58 +0000 |
commit | 76a336cc6f95adcba9dd2ee76d455762a94596f8 (patch) | |
tree | ec61997000fb0caf696f24997dc01d81435b071a /thread | |
parent | add fileIO interface in assembly for 64 bit thread safe linux (diff) |
add make script for 64 bit thread safe linux
Diffstat (limited to 'thread')
-rw-r--r-- | thread/astartup.sed | 57 | ||||
-rwxr-xr-x | thread/make_astartup.csh | 19 |
2 files changed, 76 insertions, 0 deletions
diff --git a/thread/astartup.sed b/thread/astartup.sed new file mode 100644 index 0000000..d87dafc --- /dev/null +++ b/thread/astartup.sed @@ -0,0 +1,57 @@ +s/([ ])extrn([ ]+[a-zA-Z0-9_]+):near/\1.globl\2/ +s/([ ])extrn([ ])/\1.globl\2/ +s/([ ])public([ ])/\1.globl\2/ +s/^([ ]+)dq([ ])/\1.quad\2/ +s/([ ]+)dq([ ])/:\1.quad\2/ +s/([ ]+)dd([ ])/\1.long\2/ +s/([ ]+)db([ ]+".*")/\1.ascii\2/ +s/([ ]+)db([ ])/\1.byte\2/ +s/[ ]+label ptr/:/ +s/([ ]+)comm([ ]+[a-zA-Z0-9_]+):([0-9]+)/\1.comm\2,\3/ +s/([ ]+)comm([ ]+[a-zA-Z0-9_]+):qword/\1.comm\2,8/ +s/([ ]+)comm([ ])/\1.comm\2/ +s/([ ]+)align([ ])/\1.align\2/ +s/([ ]+)align\(/\1.align (/ +s/\( *1 +shl +2 *\)/4/ +s/\( *1 +shl +3 *\)/8/ +s/([ ])if([ ])/\1.if\2/ +s/([ ])ife([ ])/\1.if !\2/ +s/ifdef/.ifdef/ +s/ifndef/.ifndef/ +s/else/.else/ +s/endif/.endif/ +s/([ ]+)include([ ]+)\.\.\\([a-zA-Z0-9._]*).asm/\1.include\2"\.\.\/\3.s"/ +s/([ ]+)include([ ]+)([a-zA-Z0-9._]*).asm/\1.include\2"\3.s"/ +s/([ ]+)include([ ]+)([a-zA-Z0-9._]*)/\1.include\2"\3"/ +s/([ ]+)_TEXT[ ]+segment/\1.text/ +s/([ ]+)_DATA[ ]+segment/\1.data/ +s/_TEXT[ ]+segment para 'CODE'// +s/_DATA[ ]+segment para 'DATA'// +s/^_TEXT[ ]+ends// +s/^_DATA[ ]+ends// +s/([ ,])([0-9])([0-9A-Fa-f]*)h([,+-])/\10x\2\3\4/ +s/([ ,])([0-9])([0-9A-Fa-f]*)h(,)/\10x\2\3\4/ +s/([ ,])([0-9])([0-9A-Fa-f]*)h(,)/\10x\2\3\4/ +s/([ ,])([0-9])([0-9A-Fa-f]*)h(,)/\10x\2\3\4/ +s/([ ,])([0-9])([0-9A-Fa-f]*)h$/\10x\2\3/ +s/\(([0-9])([0-9A-Fa-f]*)h\)/(0x\1\2)/ +s/(call[ ])+near ptr[ ]/\1/ +s/^[ ]+end[ ]*// +s#^(.*[ ])equ([ ].*$)#/* \1=\2 */# +s#;(.*)$#/*\1 */# + +s/,-\(4\*32\)$/,-4*32/ +s/([[ ,+])d2([] ,+])/\1r10\2/ +s/([[ ,+])d2$/\1r10/ +s/([ ,+])d3([ ,+])/\1r11\2/ +s/([ ,+])d3\]/\1r11]/ +s/\[d3([ ,+])/[r11\1/ +s/\[d3\]/[r11]/ +s/([[ ,+])d3$/\1r11/ +s/([[ ,])d4([] ,+$])/\1r12\2/ +s/([ ,])d5([ ,+$])/\1r13\2/ +s/\[d5\]/[r13]/ +s/([ ,])d3d([ ,+]|$)/\1r11d\2/ +s/([ ,])d4d([ ,+$])/\1r12d\2/ +s/([ ,])d2b([ ,+$])/\1r10b\2/ + diff --git a/thread/make_astartup.csh b/thread/make_astartup.csh new file mode 100755 index 0000000..75aaf51 --- /dev/null +++ b/thread/make_astartup.csh @@ -0,0 +1,19 @@ +mkdir -p linux64 +sed -r -f astartup.sed astartup.asm > linux64/astartup.s +sed -r -f astartup.sed acopy.asm > linux64/acopy.s +sed -r -f astartup.sed amark.asm > linux64/amark.s +sed -r -f astartup.sed amark_prefetch.asm > linux64/amark_prefetch.s +sed -r -f astartup.sed acompact.asm > linux64/acompact.s +sed -r -f astartup.sed acompact_rmark.asm > linux64/acompact_rmark.s +sed -r -f astartup.sed acompact_rmarkr.asm > linux64/acompact_rmarkr.s +sed -r -f astartup.sed acompact_rmark_prefetch.asm > linux64/acompact_rmark_prefetch.s +sed -r -f astartup.sed aap.asm > linux64/aap.s +sed -r -f astartup.sed athread.asm > linux64/athread.s +cp ../areals.s areals.s +(cd linux64; as --defsym LINUX=1 --defsym THREAD=1 astartup.s -o astartup.o) +as afileIO3.s -o afileIO3.o +cd .. +gcc -c -O -DUSE_CLIB -DLINUX -DI486 -DGNU_C -DELF -ffunction-sections -fdata-sections -o thread/linux64/ufileIO2.o ./ufileIO2.c +gcc -c -O -DUSE_CLIB -DLINUX -DI486 -DGNU_C -DELF -ffunction-sections -fdata-sections ./scon.c -o thread/linux64/scon.o +cd thread +ld -r -o linux64/_startup.o linux64/astartup.o linux64/scon.o afileIO3.o linux64/ufileIO2.o |