mirror of
https://github.com/golang/go
synced 2024-10-04 02:21:21 -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); \
|
||||
BR -4(PC); \
|
||||
/* call function */ \
|
||||
MOVD f+0(FP), R31; \
|
||||
MOVD (R31), R31; \
|
||||
MOVD f+0(FP), R11; \
|
||||
MOVD (R11), R31; \
|
||||
MOVD R31, CTR; \
|
||||
PCDATA $PCDATA_StackMapIndex, $0; \
|
||||
BL (CTR); \
|
||||
/* copy return values back */ \
|
||||
MOVD argptr+8(FP), R3; \
|
||||
MOVW argsize+16(FP), R4; \
|
||||
MOVW retoffset+20(FP), R5; \
|
||||
MOVD R1, R6; \
|
||||
ADD $(8-1), R6; \
|
||||
ADD R5, R6; \
|
||||
ADD R5, R3; \
|
||||
SUB R5, R4; \
|
||||
CMP R4, $0; \
|
||||
BEQ 9(PC); \
|
||||
MOVW retoffset+20(FP), R6; \
|
||||
MOVD R1, R5; \
|
||||
ADD R6, R5; \
|
||||
ADD R6, R3; \
|
||||
SUB R6, R4; \
|
||||
ADD $(8-1), R5; \
|
||||
SUB $1, R3; \
|
||||
SUB $1, R6; \
|
||||
ADD R3, R4; \
|
||||
CMP R3, R4; \
|
||||
ADD R5, R4; \
|
||||
CMP R5, R4; \
|
||||
BEQ 4(PC); \
|
||||
MOVBZU 1(R3), R5; \
|
||||
MOVBZU R5, 1(R6); \
|
||||
MOVBZU 1(R5), R6; \
|
||||
MOVBZU R6, 1(R3); \
|
||||
BR -4(PC); \
|
||||
RETURN
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user