Search code examples
visual-studio-2005assembly64-bitmasmwinpe

ml64 - warning A6004: procedure argument or local not referenced


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?


Solution

  • 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