views:

91

answers:

1

I have a function written for th e x64 microsft macro assembler in visual studio 2005. The function recieves 3 arguments:

theFunction PROC firstP:QWORD, secondP:QWORD, thirdP:QWORD

the x64 calling convention state the the first 4 arguments will reside in registers rcx, rdx, r8 & r9. When I'm using the arguments in the function, I'm referencing the register them self and not the parameters:

mov r10, rcx   ; Move firstP to r10

This causes the following warning:

warning A6004: procedure argument or local not referenced

How can I avoid or surpress this warning? Is there any way to reference the parameters inside the function instead of using the registers?

A: 

Found the solution: I didn't need to declare the PROC the way I did. No need to declare the parameters that are passed to the function.

theFunction PROC
mov r10, rcx       ;Move firstP to r10
Eldad