summaryrefslogtreecommitdiff
path: root/rdrand.asm
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2016-10-12 00:54:34 -0400
committerJeffrey Walton <noloader@gmail.com>2016-10-12 00:54:34 -0400
commitbd2b022d305d12bf8da7fc7de0ed7a61b066dc5a (patch)
tree3a6ff1b37466a3d34d1bae2be577ec7dfdc889cc /rdrand.asm
parent4bee0519f5dabe36427a35fc764496e766b38137 (diff)
downloadcryptopp-git-bd2b022d305d12bf8da7fc7de0ed7a61b066dc5a.tar.gz
Fix X86 MASM assembly under Visual Studio 2013 (Issue 321)
Diffstat (limited to 'rdrand.asm')
-rw-r--r--rdrand.asm42
1 files changed, 28 insertions, 14 deletions
diff --git a/rdrand.asm b/rdrand.asm
index 9fcf6e0a..76c07646 100644
--- a/rdrand.asm
+++ b/rdrand.asm
@@ -74,12 +74,13 @@ OPTION LANGUAGE:C
OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE
-;; Base relative (in): arg1, byte* buffer
-;; Base relative (in): arg2, size_t bsize
-;; Base relative (in): arg3, unsigned int safety
+;; Caller pushes on stack following CDECL (right to left)
+;; arg1: byte* buffer
+;; arg2: size_t bsize
+;; arg3: unsigned int safety
;; EAX (out): success (1), failure (0)
-MASM_RRA_GenerateBlock PROC arg1:DWORD,arg2:DWORD,arg3:DWORD
+MASM_RRA_GenerateBlock PROC ;; arg1:DWORD, arg2:DWORD, arg3:DWORD
MWSIZE EQU 04h ;; machine word size
buffer EQU edi
@@ -88,9 +89,9 @@ MASM_RRA_GenerateBlock PROC arg1:DWORD,arg2:DWORD,arg3:DWORD
Load_Arguments:
- mov buffer, arg1
- mov bsize, arg2
- mov safety, arg3
+ mov buffer, [esp+04h] ;; arg1
+ mov bsize, [esp+08h] ;; arg2
+ mov safety, [esp+0Ch] ;; arg3
Validate_Pointer:
@@ -182,6 +183,9 @@ MASM_RRA_GenerateBlock ENDP
ENDIF ;; _M_X86
+OPTION PROLOGUE:PrologueDef
+OPTION EPILOGUE:EpilogueDef
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -307,6 +311,9 @@ MASM_RRA_GenerateBlock ENDP
ENDIF ;; _M_X64
+OPTION PROLOGUE:PrologueDef
+OPTION EPILOGUE:EpilogueDef
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -318,12 +325,13 @@ OPTION LANGUAGE:C
OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE
-;; Base relative (in): arg1, byte* buffer
-;; Base relative (in): arg2, size_t bsize
-;; Base relative (in): arg3, unsigned int safety
+;; Caller pushes on stack following CDECL (right to left)
+;; arg1: byte* buffer
+;; arg2: size_t bsize
+;; arg3: unsigned int safety
;; EAX (out): success (1), failure (0)
-MASM_RSA_GenerateBlock PROC arg1:DWORD,arg2:DWORD,arg3:DWORD
+MASM_RSA_GenerateBlock PROC ;; arg1:DWORD, arg2:DWORD, arg3:DWORD
MWSIZE EQU 04h ;; machine word size
buffer EQU edi
@@ -332,9 +340,9 @@ MASM_RSA_GenerateBlock PROC arg1:DWORD,arg2:DWORD,arg3:DWORD
Load_Arguments:
- mov buffer, arg1
- mov bsize, arg2
- mov safety, arg3
+ mov buffer, [esp+04h] ;; arg1
+ mov bsize, [esp+08h] ;; arg2
+ mov safety, [esp+0Ch] ;; arg3
Validate_Pointer:
@@ -426,6 +434,9 @@ MASM_RSA_GenerateBlock ENDP
ENDIF ;; _M_X86
+OPTION PROLOGUE:PrologueDef
+OPTION EPILOGUE:EpilogueDef
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -551,6 +562,9 @@ MASM_RSA_GenerateBlock ENDP
ENDIF ;; _M_X64
+OPTION PROLOGUE:PrologueDef
+OPTION EPILOGUE:EpilogueDef
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;