[gogc] 2 new revisions pushed by bytbox on 2010-08-17 22:52 GMT

0 views
Skip to first unread message

go...@googlecode.com

unread,
Aug 17, 2010, 10:10:22 PM8/17/10
to go...@googlegroups.com
2 new revisions:

Revision: 815f35e070
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:52:45 2010
Log: linker: Add first "working" version of the linker
http://code.google.com/p/gogc/source/detail?r=815f35e070

Revision: 8e58ba9b55
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:53:00 2010
Log: gogo: Updated _gogo_.sog
http://code.google.com/p/gogc/source/detail?r=8e58ba9b55

==============================================================================
Revision: 815f35e070
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:52:45 2010
Log: linker: Add first "working" version of the linker
http://code.google.com/p/gogc/source/detail?r=815f35e070

Modified:
/src/linker.go

=======================================
--- /src/linker.go Wed Jun 16 15:23:00 2010
+++ /src/linker.go Thu Jun 17 03:52:45 2010
@@ -37,9 +37,12 @@
}
cmp = libgogo.StringCompare(line, " //--- ##");
if cmp == 0 {
- singleChar = GetCharWrapped(); // should be number; the case of
fixing
+ // actual singleChar should be the number
ld.NeedsFix = libgogo.ToIntFromByte(singleChar);
ld.NeedsFix = ld.NeedsFix - 48;
+ if (ld.NeedsFix != 1) && (ld.NeedsFix != 2) {
+ LinkError("encountered internal error when reading fixups.
file edited by hand?", "", "", "", "");
+ }
ld.PackageName = "";
ld.FunctionName = "";

@@ -311,6 +314,7 @@
var oldsize uint64;
var numstr string;
var newLine string;
+
if ld.NeedsFix == 1 { // Type 1 fix of offsets
strLen = libgogo.StringLength(ld.Line);
size = GetParameterSize(ld.PackageName, ld.FunctionName);
@@ -318,7 +322,7 @@
libgogo.CharAppend(&newLine, ld.Line[i]);
}
libgogo.CharAppend(&newLine, ld.Line[i]);
- for i = i+1 /*Dismiss '-'*/ ;ld.Line[i]!='(';i=i+1 {
+ for i = i+1 ;ld.Line[i]!='(';i=i+1 {//Dismiss '-'
libgogo.CharAppend(&numstr, ld.Line[i]);
}
oldsize = libgogo.StringToInt(numstr);
@@ -336,8 +340,9 @@
for i = 0; ld.Line[i] != '$' ; i = i +1 {
libgogo.CharAppend(&newLine, ld.Line[i]);
}
+
libgogo.CharAppend(&newLine, ld.Line[i]);
- for i = i+1 /*Dismiss '-'*/ ;ld.Line[i]!=',';i=i+1 {
+ for i = i+1 ;ld.Line[i]!=',';i=i+1 {//Dismiss '-'
libgogo.CharAppend(&numstr, ld.Line[i]);
}
oldsize = libgogo.StringToInt(numstr);
@@ -347,8 +352,8 @@
for ; i < strLen; i = i +1 {
libgogo.CharAppend(&newLine, ld.Line[i]);
}
- }
-
+
+ }
ld.NeedsFix = 0;
ld.Line = newLine;
return newLine;
@@ -382,6 +387,10 @@
if ld.NeedsFix != 0 {
GetLine(&ld);
newLine = FixOffset(&ld);
+ //libgogo.PrintString("...");
+ //libgogo.PrintString(ld.Line);
+ //libgogo.PrintString("\n");
+ ld.NeedsFix = 0;
libgogo.PrintString(newLine);
libgogo.PrintString("\n");
} else {

==============================================================================
Revision: 8e58ba9b55
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:53:00 2010
Log: gogo: Updated _gogo_.sog
http://code.google.com/p/gogc/source/detail?r=8e58ba9b55

Modified:
/src/_gogo_.sog

=======================================
--- /src/_gogo_.sog Wed Jun 16 15:24:23 2010
+++ /src/_gogo_.sog Thu Jun 17 03:53:00 2010
@@ -102,6 +102,8 @@

//FUNC,0,libgogo·SetItem,item:*libgogo·Item,mode:·uint64,itemtype:*libgogo·TypeDesc,ptrtype:·uint64,a:·uint64,r:·uint64,global:·uint64
//FUNC,0,libgogo·GetArgv
//FUNC,0,libgogo·Exit,code:·uint64
+//FUNC,0,main·main,return value:·uint64
+//FUNC,0,main·fib1,i:·uint64,return value:·uint64
//End Symbol table

//--- String buffer start ('') at libgogo/convert.go:74:24
@@ -971,7 +973,42 @@
DATA data+6348(SB)/1, $101
DATA data+6349(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:42:58
-GLOBL data(SB),$6368
+//--- String buffer start ('Fibonacci von 11 rekursiv: ') at test.go:10:54
+DATA data+6368(SB)/1, $70
+DATA data+6369(SB)/1, $105
+DATA data+6370(SB)/1, $98
+DATA data+6371(SB)/1, $111
+DATA data+6372(SB)/1, $110
+DATA data+6373(SB)/1, $97
+DATA data+6374(SB)/1, $99
+DATA data+6375(SB)/1, $99
+DATA data+6376(SB)/1, $105
+DATA data+6377(SB)/1, $32
+DATA data+6378(SB)/1, $118
+DATA data+6379(SB)/1, $111
+DATA data+6380(SB)/1, $110
+DATA data+6381(SB)/1, $32
+DATA data+6382(SB)/1, $49
+DATA data+6383(SB)/1, $49
+DATA data+6384(SB)/1, $32
+DATA data+6385(SB)/1, $114
+DATA data+6386(SB)/1, $101
+DATA data+6387(SB)/1, $107
+DATA data+6388(SB)/1, $117
+DATA data+6389(SB)/1, $114
+DATA data+6390(SB)/1, $115
+DATA data+6391(SB)/1, $105
+DATA data+6392(SB)/1, $118
+DATA data+6393(SB)/1, $58
+DATA data+6394(SB)/1, $32
+DATA data+6395(SB)/1, $0
+//--- String buffer end at test.go:10:54
+//--- String buffer start ('\n') at test.go:12:29
+DATA data+6416(SB)/1, $92
+DATA data+6417(SB)/1, $110
+DATA data+6418(SB)/1, $0
+//--- String buffer end at test.go:12:29
+GLOBL data(SB),$6440

TEXT main·init(SB),0,$0-0
//--- Assign byte buffer to new string constant start at
libgogo/convert.go:74:24
@@ -1547,6 +1584,20 @@
//--- Assign string length to new string constant start at
libgogo/libgogo.go:42:58
MOVQ $37, data+6360(SB)
//--- Assign string length to new string constant end at
libgogo/libgogo.go:42:58
+ //--- Assign byte buffer to new string constant start at test.go:10:54
+ LEAQ data+6368(SB), R8
+ MOVQ R8, data+6400(SB)
+ //--- Assign byte buffer to new string constant end at test.go:10:54
+ //--- Assign string length to new string constant start at test.go:10:54
+ MOVQ $27, data+6408(SB)
+ //--- Assign string length to new string constant end at test.go:10:54
+ //--- Assign byte buffer to new string constant start at test.go:12:29
+ LEAQ data+6416(SB), R8
+ MOVQ R8, data+6424(SB)
+ //--- Assign byte buffer to new string constant end at test.go:12:29
+ //--- Assign string length to new string constant start at test.go:12:29
+ MOVQ $2, data+6432(SB)
+ //--- Assign string length to new string constant end at test.go:12:29
RET

TEXT libgogo·StringToInt(SB),0,$0-0
@@ -9553,3 +9604,145 @@
MOVQ 8(SP), DI //return code (first parameter => SP+1*64bit)
SYSCALL //Linux syscall
RET //Just to be sure (should never be reached)
+TEXT main·main(SB),0,$0-0
+ //--- Assignment start at test.go:8:14
+ //--- Assignment LHS load start at test.go:8:14
+ //--- Assignment LHS load end at test.go:8:14
+ //--- First parameter expression start at test.go:8:22
+ //--- First parameter expression load start at test.go:8:22
+ //--- First parameter expression load end at test.go:8:22
+ //--- ##1##main·fib1## at test.go:8:22
+ MOVB $11, -100016(SP)
+ //--- First parameter expression end at test.go:8:22
+ //--- Stack pointer offset before function call for local variables
start at test.go:8:22
+ //--- ##2##main·fib1## at test.go:8:22
+ SUBQ $16, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:8:22
+ CALL main·fib1(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:8:22
+ //--- ##2##main·fib1## at test.go:8:22
+ ADDQ $16, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:8:22
+ //--- ##1##main·fib1## at test.go:8:22
+ MOVQ -100008(SP), R8
+ MOVQ R8, -16(SP)
+ //--- Assignment end at test.go:8:23
+ //--- First parameter expression start at test.go:10:54
+ //--- First parameter expression load start at test.go:10:54
+ //--- First parameter expression load end at test.go:10:55
+ MOVQ data+6400(SB), R8
+ MOVQ data+6408(SB), R9
+ MOVQ R8, -32(SP)
+ MOVQ R9, -24(SP)
+ //--- First parameter expression end at test.go:10:55
+ //--- Stack pointer offset before function call for local variables
start at test.go:10:55
+ SUBQ $32, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:10:55
+ CALL libgogo·PrintString(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:10:55
+ ADDQ $32, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:10:55
+ //--- First parameter expression start at test.go:11:27
+ //--- First parameter expression load start at test.go:11:27
+ //--- First parameter expression load end at test.go:11:27
+ MOVQ $1, -24(SP)
+ //--- First parameter expression end at test.go:11:27
+ //--- Stack pointer offset before function call for local variables
start at test.go:11:27
+ SUBQ $24, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:11:27
+ CALL libgogo·PrintNumber(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:11:27
+ ADDQ $24, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:11:27
+ //--- First parameter expression start at test.go:12:29
+ //--- First parameter expression load start at test.go:12:29
+ //--- First parameter expression load end at test.go:12:30
+ MOVQ data+6424(SB), R8
+ MOVQ data+6432(SB), R9
+ MOVQ R8, -32(SP)
+ MOVQ R9, -24(SP)
+ //--- First parameter expression end at test.go:12:30
+ //--- Stack pointer offset before function call for local variables
start at test.go:12:30
+ SUBQ $32, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:12:30
+ CALL libgogo·PrintString(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:12:30
+ ADDQ $32, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:12:30
+ RET
+
+TEXT main·fib1(SB),0,$0-0
+ //--- If start at test.go:19:8
+ CMPQ 8(SP), $2
+ JLE IF_test_19_1_END
+ JMP IF_test_19_END
+IF_test_19_1_END:
+ //--- Assignment start at test.go:20:18
+ //--- Assignment LHS load start at test.go:20:18
+ //--- Assignment LHS load end at test.go:20:18
+ //--- Assignment RHS load start at test.go:20:20
+ //--- Assignment RHS load end at test.go:20:20
+ MOVQ $1, -8(SP)
+ //--- Assignment end at test.go:20:20
+ JMP IF_test_19_ELSE_END
+IF_test_19_END:
+ //--- Else start at test.go:21:12
+ //--- Assignment start at test.go:22:16
+ //--- Assignment LHS load start at test.go:22:16
+ //--- Assignment LHS load end at test.go:22:16
+ //--- First parameter expression start at test.go:22:23
+ //--- First parameter expression load start at test.go:22:23
+ MOVQ 8(SP), R8
+ SUBQ $1, R8
+ //--- First parameter expression load end at test.go:22:25
+ MOVQ R8, -40(SP)
+ //--- First parameter expression end at test.go:22:25
+ //--- Stack pointer offset before function call for local variables
start at test.go:22:25
+ SUBQ $40, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:22:25
+ CALL main·fib1(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:22:25
+ ADDQ $40, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:22:25
+ MOVQ -32(SP), R8
+ MOVQ R8, -16(SP)
+ //--- Assignment end at test.go:22:26
+ //--- Assignment start at test.go:23:16
+ //--- Assignment LHS load start at test.go:23:16
+ //--- Assignment LHS load end at test.go:23:16
+ //--- First parameter expression start at test.go:23:23
+ //--- First parameter expression load start at test.go:23:23
+ MOVQ 8(SP), R8
+ SUBQ $2, R8
+ //--- First parameter expression load end at test.go:23:25
+ MOVQ R8, -40(SP)
+ //--- First parameter expression end at test.go:23:25
+ //--- Stack pointer offset before function call for local variables
start at test.go:23:25
+ SUBQ $40, SP
+ //--- Stack pointer offset before function call for local variables end
at test.go:23:25
+ CALL main·fib1(SB)
+ //--- Stack pointer offset after function call for local variables start
at test.go:23:25
+ ADDQ $40, SP
+ //--- Stack pointer offset after function call for local variables end
at test.go:23:25
+ MOVQ -32(SP), R8
+ MOVQ R8, -24(SP)
+ //--- Assignment end at test.go:23:26
+ //--- Assignment start at test.go:24:18
+ //--- Assignment LHS load start at test.go:24:18
+ //--- Assignment LHS load end at test.go:24:18
+ //--- Assignment RHS load start at test.go:24:24
+ MOVQ -16(SP), R8
+ ADDQ -24(SP), R8
+ //--- Assignment RHS load end at test.go:24:30
+ MOVQ R8, -8(SP)
+ //--- Assignment end at test.go:24:30
+ //--- Else end at test.go:25:6
+IF_test_19_ELSE_END:
+ //--- Return value assignment start at test.go:26:12
+ //--- Return expression load start at test.go:26:12
+ //--- Return expression load end at test.go:26:19
+ MOVQ -8(SP), R8
+ MOVQ R8, 16(SP)
+ //--- Return value assignment end at test.go:26:19
+ RET
+

go...@googlecode.com

unread,
Aug 17, 2010, 10:14:31 PM8/17/10
to go...@googlegroups.com
2 new revisions:

Revision: f2bf99bec9
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:51:36 2010
Log: scanner: Fix escaping bug
http://code.google.com/p/gogc/source/detail?r=f2bf99bec9

Revision: 66e6aa98c1
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:53:06 2010
Log: docs: update
http://code.google.com/p/gogc/source/detail?r=66e6aa98c1

==============================================================================
Revision: f2bf99bec9
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:51:36 2010
Log: scanner: Fix escaping bug
http://code.google.com/p/gogc/source/detail?r=f2bf99bec9

Modified:
/src/scanner.go

=======================================
--- /src/scanner.go Wed May 19 09:24:40 2010
+++ /src/scanner.go Thu Jun 17 04:51:36 2010
@@ -181,7 +181,7 @@
// string "..."
if (done != 1) && (singleChar == '"') {
tok.id = TOKEN_STRING;
- for singleChar = GetCharWrapped(); singleChar != '"';singleChar =
GetEscapedCharWrapped() {
+ for singleChar = GetEscapedCharWrapped();
singleChar != '"';singleChar = GetEscapedCharWrapped() {
tmp_TokAppendStr(singleChar);
}
if singleChar != '"' {

==============================================================================
Revision: 66e6aa98c1
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:53:06 2010
Log: docs: update
http://code.google.com/p/gogc/source/detail?r=66e6aa98c1

Modified:
/docs/library_functionality

=======================================
--- /docs/library_functionality Thu Jun 17 04:11:09 2010
+++ /docs/library_functionality Thu Jun 17 04:53:06 2010
@@ -1,17 +1,17 @@
-libgogo·ToIntFromByte |
-libgogo·ToByteFromInt |
-libgogo·ToUint64FromBytePtr |
-libgogo·ToUint64FromUint64Ptr |
-libgogo·ToUint64PtrFromUint64 |
-libgogo·ToUint64FromStringPtr |
+libgogo·ToIntFromByte | ok (asm)
+libgogo·ToByteFromInt | ok (asm)
+libgogo·ToUint64FromBytePtr | ok (asm)
+libgogo·ToUint64FromUint64Ptr | ok (asm)
+libgogo·ToUint64PtrFromUint64 | ok (asm)
+libgogo·ToUint64FromStringPtr | ok (asm)
libgogo·GetStringFromAddress |
libgogo·StringToInt |
libgogo·StringLength |
libgogo·IntToString |
libgogo·CharAppend |
-libgogo·Write | seems ok
+libgogo·Write | ok
libgogo·WriteString |
-libgogo·PrintString | ok, but escaping doesnt
work
+libgogo·PrintString | ok
libgogo·PrintChar |
libgogo·PrintNumber | fail
libgogo·Read |

go...@googlecode.com

unread,
Aug 17, 2010, 10:18:36 PM8/17/10
to go...@googlegroups.com
2 new revisions:

Revision: 50f472d845
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:55:17 2010
Log: _gogo_.sog: Clean library compile output
http://code.google.com/p/gogc/source/detail?r=50f472d845

Revision: c981bd708e
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:11:09 2010
Log: docs: Library functionality tracking
http://code.google.com/p/gogc/source/detail?r=c981bd708e

==============================================================================
Revision: 50f472d845
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 03:55:17 2010
Log: _gogo_.sog: Clean library compile output
http://code.google.com/p/gogc/source/detail?r=50f472d845

Modified:
/src/_gogo_.sog

=======================================
--- /src/_gogo_.sog Thu Jun 17 03:53:00 2010
+++ /src/_gogo_.sog Thu Jun 17 03:55:17 2010
@@ -102,8 +102,6 @@

//FUNC,0,libgogo·SetItem,item:*libgogo·Item,mode:·uint64,itemtype:*libgogo·TypeDesc,ptrtype:·uint64,a:·uint64,r:·uint64,global:·uint64
//FUNC,0,libgogo·GetArgv
//FUNC,0,libgogo·Exit,code:·uint64
-//FUNC,0,main·main,return value:·uint64
-//FUNC,0,main·fib1,i:·uint64,return value:·uint64
//End Symbol table

//--- String buffer start ('') at libgogo/convert.go:74:24
@@ -973,42 +971,7 @@
DATA data+6348(SB)/1, $101
DATA data+6349(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:42:58
-//--- String buffer start ('Fibonacci von 11 rekursiv: ') at test.go:10:54
-DATA data+6368(SB)/1, $70
-DATA data+6369(SB)/1, $105
-DATA data+6370(SB)/1, $98
-DATA data+6371(SB)/1, $111
-DATA data+6372(SB)/1, $110
-DATA data+6373(SB)/1, $97
-DATA data+6374(SB)/1, $99
-DATA data+6375(SB)/1, $99
-DATA data+6376(SB)/1, $105
-DATA data+6377(SB)/1, $32
-DATA data+6378(SB)/1, $118
-DATA data+6379(SB)/1, $111
-DATA data+6380(SB)/1, $110
-DATA data+6381(SB)/1, $32
-DATA data+6382(SB)/1, $49
-DATA data+6383(SB)/1, $49
-DATA data+6384(SB)/1, $32
-DATA data+6385(SB)/1, $114
-DATA data+6386(SB)/1, $101
-DATA data+6387(SB)/1, $107
-DATA data+6388(SB)/1, $117
-DATA data+6389(SB)/1, $114
-DATA data+6390(SB)/1, $115
-DATA data+6391(SB)/1, $105
-DATA data+6392(SB)/1, $118
-DATA data+6393(SB)/1, $58
-DATA data+6394(SB)/1, $32
-DATA data+6395(SB)/1, $0
-//--- String buffer end at test.go:10:54
-//--- String buffer start ('\n') at test.go:12:29
-DATA data+6416(SB)/1, $92
-DATA data+6417(SB)/1, $110
-DATA data+6418(SB)/1, $0
-//--- String buffer end at test.go:12:29
-GLOBL data(SB),$6440
+GLOBL data(SB),$6368

TEXT main·init(SB),0,$0-0
//--- Assign byte buffer to new string constant start at
libgogo/convert.go:74:24
@@ -1584,20 +1547,6 @@
//--- Assign string length to new string constant start at
libgogo/libgogo.go:42:58
MOVQ $37, data+6360(SB)
//--- Assign string length to new string constant end at
libgogo/libgogo.go:42:58
- //--- Assign byte buffer to new string constant start at test.go:10:54
- LEAQ data+6368(SB), R8
- MOVQ R8, data+6400(SB)
- //--- Assign byte buffer to new string constant end at test.go:10:54
- //--- Assign string length to new string constant start at test.go:10:54
- MOVQ $27, data+6408(SB)
- //--- Assign string length to new string constant end at test.go:10:54
- //--- Assign byte buffer to new string constant start at test.go:12:29
- LEAQ data+6416(SB), R8
- MOVQ R8, data+6424(SB)
- //--- Assign byte buffer to new string constant end at test.go:12:29
- //--- Assign string length to new string constant start at test.go:12:29
- MOVQ $2, data+6432(SB)
- //--- Assign string length to new string constant end at test.go:12:29
RET

TEXT libgogo·StringToInt(SB),0,$0-0
@@ -9604,145 +9553,3 @@
MOVQ 8(SP), DI //return code (first parameter => SP+1*64bit)
SYSCALL //Linux syscall
RET //Just to be sure (should never be reached)
-TEXT main·main(SB),0,$0-0
- //--- Assignment start at test.go:8:14
- //--- Assignment LHS load start at test.go:8:14
- //--- Assignment LHS load end at test.go:8:14
- //--- First parameter expression start at test.go:8:22
- //--- First parameter expression load start at test.go:8:22
- //--- First parameter expression load end at test.go:8:22
- //--- ##1##main·fib1## at test.go:8:22
- MOVB $11, -100016(SP)
- //--- First parameter expression end at test.go:8:22
- //--- Stack pointer offset before function call for local variables
start at test.go:8:22
- //--- ##2##main·fib1## at test.go:8:22
- SUBQ $16, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:8:22
- CALL main·fib1(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:8:22
- //--- ##2##main·fib1## at test.go:8:22
- ADDQ $16, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:8:22
- //--- ##1##main·fib1## at test.go:8:22
- MOVQ -100008(SP), R8
- MOVQ R8, -16(SP)
- //--- Assignment end at test.go:8:23
- //--- First parameter expression start at test.go:10:54
- //--- First parameter expression load start at test.go:10:54
- //--- First parameter expression load end at test.go:10:55
- MOVQ data+6400(SB), R8
- MOVQ data+6408(SB), R9
- MOVQ R8, -32(SP)
- MOVQ R9, -24(SP)
- //--- First parameter expression end at test.go:10:55
- //--- Stack pointer offset before function call for local variables
start at test.go:10:55
- SUBQ $32, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:10:55
- CALL libgogo·PrintString(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:10:55
- ADDQ $32, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:10:55
- //--- First parameter expression start at test.go:11:27
- //--- First parameter expression load start at test.go:11:27
- //--- First parameter expression load end at test.go:11:27
- MOVQ $1, -24(SP)
- //--- First parameter expression end at test.go:11:27
- //--- Stack pointer offset before function call for local variables
start at test.go:11:27
- SUBQ $24, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:11:27
- CALL libgogo·PrintNumber(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:11:27
- ADDQ $24, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:11:27
- //--- First parameter expression start at test.go:12:29
- //--- First parameter expression load start at test.go:12:29
- //--- First parameter expression load end at test.go:12:30
- MOVQ data+6424(SB), R8
- MOVQ data+6432(SB), R9
- MOVQ R8, -32(SP)
- MOVQ R9, -24(SP)
- //--- First parameter expression end at test.go:12:30
- //--- Stack pointer offset before function call for local variables
start at test.go:12:30
- SUBQ $32, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:12:30
- CALL libgogo·PrintString(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:12:30
- ADDQ $32, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:12:30
- RET
-
-TEXT main·fib1(SB),0,$0-0
- //--- If start at test.go:19:8
- CMPQ 8(SP), $2
- JLE IF_test_19_1_END
- JMP IF_test_19_END
-IF_test_19_1_END:
- //--- Assignment start at test.go:20:18
- //--- Assignment LHS load start at test.go:20:18
- //--- Assignment LHS load end at test.go:20:18
- //--- Assignment RHS load start at test.go:20:20
- //--- Assignment RHS load end at test.go:20:20
- MOVQ $1, -8(SP)
- //--- Assignment end at test.go:20:20
- JMP IF_test_19_ELSE_END
-IF_test_19_END:
- //--- Else start at test.go:21:12
- //--- Assignment start at test.go:22:16
- //--- Assignment LHS load start at test.go:22:16
- //--- Assignment LHS load end at test.go:22:16
- //--- First parameter expression start at test.go:22:23
- //--- First parameter expression load start at test.go:22:23
- MOVQ 8(SP), R8
- SUBQ $1, R8
- //--- First parameter expression load end at test.go:22:25
- MOVQ R8, -40(SP)
- //--- First parameter expression end at test.go:22:25
- //--- Stack pointer offset before function call for local variables
start at test.go:22:25
- SUBQ $40, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:22:25
- CALL main·fib1(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:22:25
- ADDQ $40, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:22:25
- MOVQ -32(SP), R8
- MOVQ R8, -16(SP)
- //--- Assignment end at test.go:22:26
- //--- Assignment start at test.go:23:16
- //--- Assignment LHS load start at test.go:23:16
- //--- Assignment LHS load end at test.go:23:16
- //--- First parameter expression start at test.go:23:23
- //--- First parameter expression load start at test.go:23:23
- MOVQ 8(SP), R8
- SUBQ $2, R8
- //--- First parameter expression load end at test.go:23:25
- MOVQ R8, -40(SP)
- //--- First parameter expression end at test.go:23:25
- //--- Stack pointer offset before function call for local variables
start at test.go:23:25
- SUBQ $40, SP
- //--- Stack pointer offset before function call for local variables end
at test.go:23:25
- CALL main·fib1(SB)
- //--- Stack pointer offset after function call for local variables start
at test.go:23:25
- ADDQ $40, SP
- //--- Stack pointer offset after function call for local variables end
at test.go:23:25
- MOVQ -32(SP), R8
- MOVQ R8, -24(SP)
- //--- Assignment end at test.go:23:26
- //--- Assignment start at test.go:24:18
- //--- Assignment LHS load start at test.go:24:18
- //--- Assignment LHS load end at test.go:24:18
- //--- Assignment RHS load start at test.go:24:24
- MOVQ -16(SP), R8
- ADDQ -24(SP), R8
- //--- Assignment RHS load end at test.go:24:30
- MOVQ R8, -8(SP)
- //--- Assignment end at test.go:24:30
- //--- Else end at test.go:25:6
-IF_test_19_ELSE_END:
- //--- Return value assignment start at test.go:26:12
- //--- Return expression load start at test.go:26:12
- //--- Return expression load end at test.go:26:19
- MOVQ -8(SP), R8
- MOVQ R8, 16(SP)
- //--- Return value assignment end at test.go:26:19
- RET
-

==============================================================================
Revision: c981bd708e
Author: Michael Lippautz <michael....@gmail.com>
Date: Thu Jun 17 04:11:09 2010
Log: docs: Library functionality tracking
http://code.google.com/p/gogc/source/detail?r=c981bd708e

Added:
/docs/library_functionality

=======================================
--- /dev/null
+++ /docs/library_functionality Thu Jun 17 04:11:09 2010
@@ -0,0 +1,81 @@
+libgogo·ToIntFromByte |
+libgogo·ToByteFromInt |
+libgogo·ToUint64FromBytePtr |
+libgogo·ToUint64FromUint64Ptr |
+libgogo·ToUint64PtrFromUint64 |
+libgogo·ToUint64FromStringPtr |
+libgogo·GetStringFromAddress |
+libgogo·StringToInt |
+libgogo·StringLength |
+libgogo·IntToString |
+libgogo·CharAppend |
+libgogo·Write | seems ok
+libgogo·WriteString |
+libgogo·PrintString | ok, but escaping doesnt
work
+libgogo·PrintChar |
+libgogo·PrintNumber | fail
+libgogo·Read |
+libgogo·GetChar |
+libgogo·FileOpen |
+libgogo·FileOpen2 |
+libgogo·FileClose |
+libgogo·InitializeList |
+libgogo·Alloc |
+libgogo·AddItem |
+libgogo·CopyMem |
+libgogo·RemoveItemAt |
+libgogo·GetItemAt |
+libgogo·ExitError |
+libgogo·GetListItemCount |
+libgogo·GetListCapacity |
+libgogo·Brk |
+libgogo·GetBrk |
+libgogo·TestMem |
+libgogo·InitMemoryManager |
+libgogo·MoreMemory |
+libgogo·GetFreeMemory |
+libgogo·InitializeStringList |
+libgogo·AddStringItem |
+libgogo·GetStringItemAt |
+libgogo·GetStringListItemCount |
+libgogo·GetStringListCapacity |
+libgogo·Uint64ToObjectDescPtr |
+libgogo·Uint64ToTypeDescPtr |
+libgogo·AppendObject |
+libgogo·AppendType |
+libgogo·AddFields |
+libgogo·HasField |
+libgogo·GetField |
+libgogo·GetObject |
+libgogo·AddParameters |
+libgogo·GetTypeSize |
+libgogo·GetObjectSizeAligned |
+libgogo·AlignTo64Bit |
+libgogo·GetTypeSizeAligned |
+libgogo·GetObjectSize |
+libgogo·GetObjectOffset |
+libgogo·GetFieldOffset |
+libgogo·GetAlignedObjectListSize |
+libgogo·StringCompare |
+libgogo·GetType |
+libgogo·FindPackageName |
+libgogo·FindTypePackageName |
+libgogo·GetParameterAt |
+libgogo·NewObject |
+libgogo·NewType |
+libgogo·PrintObjects |
+libgogo·PrintTypes |
+libgogo·PrintFunctions |
+libgogo·SymbolTableFunctionsToStringList |
+libgogo·StringAppend |
+libgogo·SymbolTableTypesToStringList |
+libgogo·StringLength2 |
+libgogo·GetStringAddress |
+libgogo·ResetString |
+libgogo·SetStringAddressAndLength |
+libgogo·GetMaxStringLength |
+libgogo·Uint64ToItemPtr |
+libgogo·NewItem |
+libgogo·SetItem |
+libgogo·GetArgv |
+libgogo·Exit |

go...@googlecode.com

unread,
Aug 17, 2010, 10:22:40 PM8/17/10
to go...@googlegroups.com
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
Reply all
Reply to author
Forward
0 new messages