summaryrefslogtreecommitdiff
path: root/test cases/common/126 llvm ir and assembly/square-x86_64.S
blob: 09cc7a4d02c30cf632925cc46e68264f4bc255e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "symbol-underscore.h"

#ifdef _MSC_VER /* MSVC on Windows */

PUBLIC SYMBOL_NAME(square_unsigned)
_TEXT   SEGMENT

SYMBOL_NAME(square_unsigned) PROC
        mov     eax, ecx
	imul	eax, eax
	ret
SYMBOL_NAME(square_unsigned) ENDP

_TEXT   ENDS
END

#else

.text
.globl SYMBOL_NAME(square_unsigned)
# ifdef __linux__
.type square_unsigned, %function
#endif

# if defined(_WIN32) || defined(__CYGWIN__) /* msabi */
SYMBOL_NAME(square_unsigned):
	imull	%ecx, %ecx
	movl	%ecx, %eax
	retq
# else /* sysvabi */
SYMBOL_NAME(square_unsigned):
	imull	%edi, %edi
	movl	%edi, %eax
	retq
# endif

#endif