Looks like there is one PUSH to much if I am reading that right:
Code:
; bar(1,2,3,4,5,6,7,text,9,#PI) | ; bar(1,2,3,4,5,6,7,Str(a),9,#PI)
SUB rsp,8 | PUSH qword [PB_StringBasePosition]
PUSH qword 9 | PUSH qword 9
| PUSH qword [PB_StringBasePosition]
| SUB rsp,8
| PUSH qword [PB_StringBasePosition]
| PUSH qword [v_a]
| POP rdi
| POP rsi
| CALL PB_Str
| ADD rsp,8
PUSH qword [v_text] | ADD qword [PB_StringBasePosition],2
PUSH qword 7 | PUSH qword 7
FLD qword [D1] | FLD qword [D1]
SUB rsp,8 | SUB rsp,8
FSTP qword [rsp] | FSTP qword [rsp]
PUSH qword 6 | PUSH qword 6
PUSH qword 5 | PUSH qword 5
PUSH qword 4 | PUSH qword 4
PUSH qword 3 | PUSH qword 3
PUSH qword 2 | PUSH qword 2
PUSH qword 1 | PUSH qword 1
| MOV rsi,[PB_StringBase]
| ADD [rsp+56],rsi
POP rdi | POP rdi
POP rsi | POP rsi
POP rdx | POP rdx
POP rcx | POP rcx
POP r8 | POP r8
POP r9 | POP r9
MOVSD xmm0,qword [rsp] | MOVSD xmm0,qword [rsp]
ADD rsp,8 | ADD rsp,8
CALL _Procedure0 | CALL _Procedure0
ADD rsp,32 | ADD rsp,24
| SUB rsp,8