2 new revisions:
Revision: 31d98f7214
Author: Michael Lippautz <
michael....@gmail.com>
Date: Thu Jun 17 05:42:23 2010
Log: docs: Update library functionality
http://code.google.com/p/gogc/source/detail?r=31d98f7214
Revision: 43aa3aea98
Author: Michael Lippautz <
michael....@gmail.com>
Date: Sat Jun 19 01:09:01 2010
Log: gogo assembly files: Remove custom header as compiler generates same
s...
http://code.google.com/p/gogc/source/detail?r=43aa3aea98
==============================================================================
Revision: 31d98f7214
Author: Michael Lippautz <
michael....@gmail.com>
Date: Thu Jun 17 05:42:23 2010
Log: docs: Update library functionality
http://code.google.com/p/gogc/source/detail?r=31d98f7214
Modified:
/docs/library_functionality
=======================================
--- /docs/library_functionality Thu Jun 17 04:53:06 2010
+++ /docs/library_functionality Thu Jun 17 05:42:23 2010
@@ -4,15 +4,15 @@
libgogo·ToUint64FromUint64Ptr | ok (asm)
libgogo·ToUint64PtrFromUint64 | ok (asm)
libgogo·ToUint64FromStringPtr | ok (asm)
-libgogo·GetStringFromAddress |
+libgogo·GetStringFromAddress | ok (asm)
libgogo·StringToInt |
-libgogo·StringLength |
+libgogo·StringLength | ok (asm)
libgogo·IntToString |
libgogo·CharAppend |
libgogo·Write | ok
libgogo·WriteString |
libgogo·PrintString | ok
-libgogo·PrintChar |
+libgogo·PrintChar | ok
libgogo·PrintNumber | fail
libgogo·Read |
libgogo·GetChar |
@@ -22,15 +22,15 @@
libgogo·InitializeList |
libgogo·Alloc |
libgogo·AddItem |
-libgogo·CopyMem |
+libgogo·CopyMem | ok (asm)
libgogo·RemoveItemAt |
libgogo·GetItemAt |
-libgogo·ExitError |
+libgogo·ExitError | ok
libgogo·GetListItemCount |
libgogo·GetListCapacity |
-libgogo·Brk |
-libgogo·GetBrk |
-libgogo·TestMem |
+libgogo·Brk | ok (asm)
+libgogo·GetBrk | ok (asm)
+libgogo·TestMem | ok (asm)
libgogo·InitMemoryManager |
libgogo·MoreMemory |
libgogo·GetFreeMemory |
@@ -39,8 +39,8 @@
libgogo·GetStringItemAt |
libgogo·GetStringListItemCount |
libgogo·GetStringListCapacity |
-libgogo·Uint64ToObjectDescPtr |
-libgogo·Uint64ToTypeDescPtr |
+libgogo·Uint64ToObjectDescPtr | ok (asm)
+libgogo·Uint64ToTypeDescPtr | ok (asm)
libgogo·AppendObject |
libgogo·AppendType |
libgogo·AddFields |
@@ -50,7 +50,7 @@
libgogo·AddParameters |
libgogo·GetTypeSize |
libgogo·GetObjectSizeAligned |
-libgogo·AlignTo64Bit |
+libgogo·AlignTo64Bit | ok
libgogo·GetTypeSizeAligned |
libgogo·GetObjectSize |
libgogo·GetObjectOffset |
@@ -67,15 +67,15 @@
libgogo·PrintTypes |
libgogo·PrintFunctions |
libgogo·SymbolTableFunctionsToStringList |
-libgogo·StringAppend |
+libgogo·StringAppend | ? (maybe ok)
libgogo·SymbolTableTypesToStringList |
-libgogo·StringLength2 |
-libgogo·GetStringAddress |
+libgogo·StringLength2 | ok (asm)
+libgogo·GetStringAddress | ok (asm)
libgogo·ResetString |
-libgogo·SetStringAddressAndLength |
+libgogo·SetStringAddressAndLength | ok (asm)
libgogo·GetMaxStringLength |
-libgogo·Uint64ToItemPtr |
+libgogo·Uint64ToItemPtr | ok (asm)
libgogo·NewItem |
libgogo·SetItem |
libgogo·GetArgv |
-libgogo·Exit |
+libgogo·Exit | ok (asm)
==============================================================================
Revision: 43aa3aea98
Author: Michael Lippautz <
michael....@gmail.com>
Date: Sat Jun 19 01:09:01 2010
Log: gogo assembly files: Remove custom header as compiler generates same
syntax
http://code.google.com/p/gogc/source/detail?r=43aa3aea98
Modified:
/src/libgogo/convert_amd64.s
/src/libgogo/io_amd64.s
/src/libgogo/item_amd64.s
/src/libgogo/libgogo_amd64.s
/src/libgogo/memmgr_amd64.s
/src/libgogo/string_amd64.s
/src/libgogo/symbol_amd64.s
=======================================
--- /src/libgogo/convert_amd64.s Sat Jun 12 08:58:08 2010
+++ /src/libgogo/convert_amd64.s Sat Jun 19 01:09:01 2010
@@ -6,39 +6,39 @@
// GoGo conversion functions (ASM)
//
-TEXT ·ToIntFromByte(SB),$0-16 //ToIntFromByte: 1 parameter, 1 return value
+TEXT ·ToIntFromByte(SB),0,$0-0 //ToIntFromByte: 1 parameter, 1 return value
MOVQ $0, AX //Set AX to 0
MOVB 8(SP), AL //Move byte parameter to AL (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move whole AX register with byte parameter to result
(return value after one parameter => SP+2*64bit)
RET
-TEXT ·ToByteFromInt(SB),$0-16 //ToByteFromInt: 1 parameter, 1 return value
+TEXT ·ToByteFromInt(SB),0,$0-0 //ToByteFromInt: 1 parameter, 1 return value
MOVQ $0, 16(SP) //Clear whole return value (return value after one
parameter => SP+2*64bit)
MOVQ 8(SP), AX //Move whole parameter to AX (first parameter => SP+64bit)
MOVB AL, 16(SP) //Move AL (last byte of parameter) to result (return
value after one parameter => SP+2*64bit)
RET
-TEXT ·ToUint64FromBytePtr(SB),$0-16 //ToUint64FromBytePtr: 1 parameter, 1
return value
+TEXT ·ToUint64FromBytePtr(SB),0,$0-0 //ToUint64FromBytePtr: 1 parameter, 1
return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from BX to return value (return value
after one parameter => SP+2*64bit)
RET
-TEXT ·ToUint64FromUint64Ptr(SB),$0-16 //ToUint64FromUint64Ptr: 1
parameter, 1 return value
+TEXT ·ToUint64FromUint64Ptr(SB),0,$0-0 //ToUint64FromUint64Ptr: 1
parameter, 1 return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from AX to return value (return value
after one parameter => SP+2*64bit)
RET
-TEXT ·ToUint64PtrFromUint64(SB),$0-16 //ToUint64PtrFromUint64: 1
parameter, 1 return value
+TEXT ·ToUint64PtrFromUint64(SB),0,$0-0 //ToUint64PtrFromUint64: 1
parameter, 1 return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from AX to return value (return value
after one parameter => SP+2*64bit)
RET
-TEXT ·ToUint64FromStringPtr(SB),$0-16 //ToUint64FromStringPtr: 1
parameter, 1 return value
+TEXT ·ToUint64FromStringPtr(SB),0,$0-0 //ToUint64FromStringPtr: 1
parameter, 1 return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from AX to return value (return value
after one parameter => SP+2*64bit)
RET
-TEXT ·GetStringFromAddress(SB),$0-16 //GetStringFromAddress: 1 parameter,
1 return value
+TEXT ·GetStringFromAddress(SB),0,$0-0 //GetStringFromAddress: 1 parameter,
1 return value
MOVQ 8(SP), AX //Move string address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move string address from AX to return value (return
value after one parameter => SP+2*64bit)
RET
=======================================
--- /src/libgogo/io_amd64.s Tue May 18 10:33:00 2010
+++ /src/libgogo/io_amd64.s Sat Jun 19 01:09:01 2010
@@ -6,7 +6,7 @@
// GoGo I/O functions (ASM)
//
-TEXT ·Write(SB),$0-40 //Write: 3 parameters (4), 1 return value
+TEXT ·Write(SB),0,$0-0 //Write: 3 parameters (4), 1 return value
MOVQ $1, AX //sys_write (3 parameters)
MOVQ 8(SP), DI //fd (first parameter => SP+64bit)
MOVQ 16(SP), SI //text (second parameter => SP+2*64bit)
@@ -21,7 +21,7 @@
MOVQ AX, 40(SP) //First return value of syscall is in AX (return value
after three parameters => SP+5*64bit)
RET
-TEXT ·PrintChar(SB),$0-8 //PrintChar: 1 parameter, no return value
+TEXT ·PrintChar(SB),0,$0-0 //PrintChar: 1 parameter, no return value
MOVQ $1, AX //sys_write (3 parameters)
MOVQ $1, DI //fd (1 = stdout)
LEAQ 8(SP), SI //text (address of second parameter => SP+64bit)
@@ -29,7 +29,7 @@
SYSCALL //Linux syscall
RET
-TEXT ·Read(SB),$0-40 //Read: 3 parameters (4), 1 return value
+TEXT ·Read(SB),0,$0-0 //Read: 3 parameters (4), 1 return value
MOVQ $0, AX //sys_read (3 parameters)
MOVQ 8(SP), DI //fd (first parameter => SP+64bit)
MOVQ 16(SP), SI //buffer (second parameter => SP+2*64bit)
@@ -44,7 +44,7 @@
MOVQ AX, 40(SP) //First return value of syscall is in AX (return value
after three parameters => SP+5*64bit)
RET
-TEXT ·GetChar(SB),$0-16 //Read: 1 parameter (2), 1 return value
+TEXT ·GetChar(SB),0,$0-0 //Read: 1 parameter (2), 1 return value
MOVQ $0, AX //sys_read (3 parameters)
MOVQ 8(SP), DI //fd (first parameter => SP+64bit)
MOVQ $0, 16(SP) //Initialize result with 0
@@ -58,7 +58,7 @@
GETCHAR_SUCCESS:
RET
-TEXT ·FileOpen(SB),$0-32 //FileOpen: 2 parameters (3), 1 return value
+TEXT ·FileOpen(SB),0,$0-0 //FileOpen: 2 parameters (3), 1 return value
MOVQ $2, AX //sys_open (2 parameters)
MOVQ 8(SP), DI //filename (first parameter => SP+64bit)
MOVQ 24(SP), SI //flags (second parameter => SP+3*64bit)
@@ -73,7 +73,7 @@
MOVQ AX, 32(SP) //First return value of syscall is in AX (return value
after three parameters => SP+4*64bit)
RET
-TEXT ·FileOpen2(SB),$0-40 //FileOpen2: 3 parameters (4), 1 return value
+TEXT ·FileOpen2(SB),0,$0-0 //FileOpen2: 3 parameters (4), 1 return value
MOVQ $2, AX //sys_open (3 parameters)
MOVQ 8(SP), DI //filename (first parameter => SP+64bit)
MOVQ 24(SP), SI //flags (second parameter => SP+3*64bit)
@@ -91,7 +91,7 @@
MOVQ AX, 40(SP) //First return value of syscall is in AX (return value
after three parameters => SP+5*64bit)
RET
-TEXT ·FileClose(SB),$0-16 //FileClose: 1 parameter, 1 return value
+TEXT ·FileClose(SB),0,$0-0 //FileClose: 1 parameter, 1 return value
MOVQ $3, AX //sys_close (3 parameters)
MOVQ 8(SP), DI //filename (first parameter => SP+64bit)
MOVQ $0, SI //not used
=======================================
--- /src/libgogo/item_amd64.s Sun May 16 01:56:12 2010
+++ /src/libgogo/item_amd64.s Sat Jun 19 01:09:01 2010
@@ -2,7 +2,7 @@
// Use of this source code is governed by the MIT
// license that can be found in the LICENSE file.
-TEXT ·Uint64ToItemPtr(SB),$0-16 //Uint64ToItemPtr: 1 parameter, 1 return
value
+TEXT ·Uint64ToItemPtr(SB),0,$0-0 //Uint64ToItemPtr: 1 parameter, 1 return
value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from BX to return value (return value
after one parameter => SP+2*64bit)
RET
=======================================
--- /src/libgogo/libgogo_amd64.s Sat Apr 24 13:30:30 2010
+++ /src/libgogo/libgogo_amd64.s Sat Jun 19 01:09:01 2010
@@ -6,7 +6,7 @@
// GoGo Library functions (ASM)
//
-TEXT ·CopyMem(SB),$0-24 //CopyMem: 3 parameters, no return value
+TEXT ·CopyMem(SB),0,$0-0 //CopyMem: 3 parameters, no return value
MOVQ 8(SP), AX //Move source address to AX (first parameter => SP+64bit)
MOVQ 16(SP), BX //Move destination address to BX (second parameter =>
SP+2*64bit)
MOVQ 24(SP), CX //Move length to CX (third parameter => SP+3*64bit)
@@ -20,7 +20,7 @@
COPYMEM_END:
RET
-TEXT ·Exit(SB),$0-8 //Exit: 1 parameter, no return value
+TEXT ·Exit(SB),0,$0-0 //Exit: 1 parameter, no return value
MOVQ $60, AX //sys_exit (1 parameter)
MOVQ 8(SP), DI //return code (first parameter => SP+1*64bit)
SYSCALL //Linux syscall
=======================================
--- /src/libgogo/memmgr_amd64.s Wed Apr 21 04:47:08 2010
+++ /src/libgogo/memmgr_amd64.s Sat Jun 19 01:09:01 2010
@@ -6,7 +6,7 @@
// GoGo Memory manager functions (ASM)
//
-TEXT ·Brk(SB),$0-16 //Brk: 1 parameter, 1 return value
+TEXT ·Brk(SB),0,$0-0 //Brk: 1 parameter, 1 return value
MOVQ $12, AX //sys_brk (1 parameter)
MOVQ 8(SP), DI //brk (first parameter => SP+8*64bit)
SYSCALL //Linux syscall
@@ -20,7 +20,7 @@
MOVQ $0, 16(SP) //Return 0 to indicate success (return value after one
parameters => SP+2*64bit)
RET
-TEXT ·GetBrk(SB),$0-8 //GetBrk: no parameters, 1 return value
+TEXT ·GetBrk(SB),0,$0-0 //GetBrk: no parameters, 1 return value
MOVQ $12, AX //sys_brk (1 parameter)
MOVQ $0, DI //brk (first parameter => SP+64bit)
SYSCALL //Linux syscall
@@ -33,7 +33,7 @@
MOVQ AX, 8(SP) //First return value of syscall is in AX (return value
after no parameters => SP+1*64bit)
RET
-TEXT ·TestMem(SB),$0-16 //Write: 1 parameter, 1 return value
+TEXT ·TestMem(SB),0,$0-0 //Write: 1 parameter, 1 return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ $1234567890, (AX) //Move some value to address
MOVQ (AX), BX //Move value back to BX
=======================================
--- /src/libgogo/string_amd64.s Sat Apr 24 13:30:30 2010
+++ /src/libgogo/string_amd64.s Sat Jun 19 01:09:01 2010
@@ -6,26 +6,26 @@
// GoGo string functions (ASM)
//
-TEXT ·StringLength(SB),$0-24 //StringLength: 1 parameter (2), 1 return
value
+TEXT ·StringLength(SB),0,$0-0 //StringLength: 1 parameter (2), 1 return
value
MOVQ $0, 24(SP) //Set return value to 0
MOVW 16(SP), AX //String length is stored together with the string
(first parameter = SP+64bit -> +64bit = SP+2*64bit)
MOVW AX, 24(SP) //Move length to result with only 32 bits (return value
after one parameter => SP+3*64bit)
RET
-TEXT ·StringLength2(SB),$0-16 //StringLength2: 1 parameter, 1 return value
+TEXT ·StringLength2(SB),0,$0-0 //StringLength2: 1 parameter, 1 return value
MOVQ $0, 16(SP) //Set return value to 0
MOVQ 8(SP), AX //Load string address to AX (first parameter = SP+64bit)
MOVW 8(AX), BX //String length is stored together with the string
MOVW BX, 16(SP) //Move length to result with only 32 bits (return value
after one parameter => SP+3*64bit)
RET
-TEXT ·GetStringAddress(SB),$0-16 //GetStringAddress: 1 parameter, 1 return
value
+TEXT ·GetStringAddress(SB),0,$0-0 //GetStringAddress: 1 parameter, 1
return value
MOVQ 8(SP), AX //Move string pointer address to AX (first parameter =>
SP+64bit)
MOVQ (AX), BX //Load effective string address to BX
MOVQ BX, 16(SP) //Move string address from BX to return value (return
value after one parameter => SP+2*64bit)
RET
-TEXT ·SetStringAddressAndLength(SB),$0-24 //SetStringAddressAndLength: 3
parameters, no return value
+TEXT ·SetStringAddressAndLength(SB),0,$0-0 //SetStringAddressAndLength: 3
parameters, no return value
MOVQ 8(SP), AX //Move string address to AX (first parameter => SP+64bit)
MOVQ 16(SP), BX //Move string address to BX (second parameter =>
SP+2*64bit)
MOVQ 24(SP), CX //Move string length to CX (third parameter =>
SP+3*64bit)
=======================================
--- /src/libgogo/symbol_amd64.s Thu Apr 29 12:53:48 2010
+++ /src/libgogo/symbol_amd64.s Sat Jun 19 01:09:01 2010
@@ -2,12 +2,12 @@
// Use of this source code is governed by the MIT
// license that can be found in the LICENSE file.
-TEXT ·Uint64ToObjectDescPtr(SB),$0-16 //Uint64ToObjectDescPtr: 1
parameter, 1 return value
+TEXT ·Uint64ToObjectDescPtr(SB),0,$0-0 //Uint64ToObjectDescPtr: 1
parameter, 1 return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from BX to return value (return value
after one parameter => SP+2*64bit)
RET
-TEXT ·Uint64ToTypeDescPtr(SB),$0-16 //Uint64ToTypeDescPtr: 1 parameter, 1
return value
+TEXT ·Uint64ToTypeDescPtr(SB),0,$0-0 //Uint64ToTypeDescPtr: 1 parameter, 1
return value
MOVQ 8(SP), AX //Move address to AX (first parameter => SP+64bit)
MOVQ AX, 16(SP) //Move address from BX to return value (return value
after one parameter => SP+2*64bit)
RET