summaryrefslogtreecommitdiff
path: root/thread
diff options
context:
space:
mode:
authorJohn van Groningen2012-03-14 12:35:58 +0000
committerJohn van Groningen2012-03-14 12:35:58 +0000
commit76a336cc6f95adcba9dd2ee76d455762a94596f8 (patch)
treeec61997000fb0caf696f24997dc01d81435b071a /thread
parentadd 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.sed57
-rwxr-xr-xthread/make_astartup.csh19
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