1
0
mirror of https://github.com/golang/go synced 2024-10-04 04:21:22 -06:00

[dev.power64] runtime: fix reflect.call

The code to copy out the results was incorrect.

LGTM=minux
R=minux
CC=golang-codereviews
https://golang.org/cl/122530043
This commit is contained in:
Russ Cox 2014-08-13 16:26:43 -04:00
parent 404472e50b
commit b7a6fd28db

View File

@ -368,29 +368,26 @@ TEXT runtime·NAME(SB), WRAPPER, $MAXSIZE-24; \
MOVBZU R6, 1(R5); \ MOVBZU R6, 1(R5); \
BR -4(PC); \ BR -4(PC); \
/* call function */ \ /* call function */ \
MOVD f+0(FP), R31; \ MOVD f+0(FP), R11; \
MOVD (R31), R31; \ MOVD (R11), R31; \
MOVD R31, CTR; \ MOVD R31, CTR; \
PCDATA $PCDATA_StackMapIndex, $0; \ PCDATA $PCDATA_StackMapIndex, $0; \
BL (CTR); \ BL (CTR); \
/* copy return values back */ \ /* copy return values back */ \
MOVD argptr+8(FP), R3; \ MOVD argptr+8(FP), R3; \
MOVW argsize+16(FP), R4; \ MOVW argsize+16(FP), R4; \
MOVW retoffset+20(FP), R5; \ MOVW retoffset+20(FP), R6; \
MOVD R1, R6; \ MOVD R1, R5; \
ADD $(8-1), R6; \ ADD R6, R5; \
ADD R5, R6; \ ADD R6, R3; \
ADD R5, R3; \ SUB R6, R4; \
SUB R5, R4; \ ADD $(8-1), R5; \
CMP R4, $0; \
BEQ 9(PC); \
SUB $1, R3; \ SUB $1, R3; \
SUB $1, R6; \ ADD R5, R4; \
ADD R3, R4; \ CMP R5, R4; \
CMP R3, R4; \
BEQ 4(PC); \ BEQ 4(PC); \
MOVBZU 1(R3), R5; \ MOVBZU 1(R5), R6; \
MOVBZU R5, 1(R6); \ MOVBZU R6, 1(R3); \
BR -4(PC); \ BR -4(PC); \
RETURN RETURN