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:
parent
404472e50b
commit
b7a6fd28db
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user