Skip to content
Snippets Groups Projects
Commit e3f6b60d authored by Ian Lance Taylor's avatar Ian Lance Taylor
Browse files

reflect: Use C style comments in 386 assembly for Solaris assembler.

From Rainer Orth.

From-SVN: r203249
parent 19e9b2a3
No related branches found
No related tags found
No related merge requests found
# Copyright 2013 The Go Authors. All rights reserved. /* Copyright 2013 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file. license that can be found in the LICENSE file.
# MakeFunc 386 assembly code. MakeFunc 386 assembly code. */
#include "config.h" #include "config.h"
.global reflect.makeFuncStub .globl reflect.makeFuncStub
#ifdef __ELF__ #ifdef __ELF__
.type reflect.makeFuncStub,@function .type reflect.makeFuncStub,@function
...@@ -15,25 +15,26 @@ ...@@ -15,25 +15,26 @@
reflect.makeFuncStub: reflect.makeFuncStub:
.LFB1: .LFB1:
# Go does not provide any equivalent to the regparm function /* Go does not provide any equivalent to the regparm function
# attribute, so on Go we do not need to worry about passing attribute, so on Go we do not need to worry about passing
# parameters in registers. We just pass a pointer to the parameters in registers. We just pass a pointer to the
# arguments on the stack. arguments on the stack.
#
# We do need to pick up the return values, though, so we pass We do need to pick up the return values, though, so we pass
# a pointer to a struct that looks like this. a pointer to a struct that looks like this.
# struct { struct {
# esp uint32 // 0x0 esp uint32 // 0x0
# eax uint32 // 0x4 eax uint32 // 0x4
# st0 uint64 // 0x8 st0 uint64 // 0x8
# } }
*/
pushl %ebp pushl %ebp
.LCFI0: .LCFI0:
movl %esp, %ebp movl %esp, %ebp
.LCFI1: .LCFI1:
pushl %ebx # In case this is PIC. pushl %ebx /* In case this is PIC. */
subl $36, %esp # Enough for args and to align stack. subl $36, %esp /* Enough for args and to align stack. */
.LCFI2: .LCFI2:
#ifdef __PIC__ #ifdef __PIC__
...@@ -41,7 +42,7 @@ reflect.makeFuncStub: ...@@ -41,7 +42,7 @@ reflect.makeFuncStub:
addl $_GLOBAL_OFFSET_TABLE_, %ebx addl $_GLOBAL_OFFSET_TABLE_, %ebx
#endif #endif
leal 8(%ebp), %eax # Set esp field in struct. leal 8(%ebp), %eax /* Set esp field in struct. */
movl %eax, -24(%ebp) movl %eax, -24(%ebp)
#ifdef __PIC__ #ifdef __PIC__
...@@ -61,14 +62,14 @@ reflect.makeFuncStub: ...@@ -61,14 +62,14 @@ reflect.makeFuncStub:
call reflect.MakeFuncStubGo call reflect.MakeFuncStubGo
#endif #endif
# Set return registers. /* Set return registers. */
movl -20(%ebp), %eax movl -20(%ebp), %eax
fldl -16(%ebp) fldl -16(%ebp)
#ifdef __SSE2__ #ifdef __SSE2__
# In case we are compiling with -msseregparm. This won't work /* In case we are compiling with -msseregparm. This won't work
# correctly if only SSE1 is supported, but that seems unlikely. correctly if only SSE1 is supported, but that seems unlikely. */
movsd -16(%ebp), %xmm0 movsd -16(%ebp), %xmm0
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment