This reverts commit 
28b48688 ("x86, boot: use .code16gcc instead
of .code16").
Versions of binutils older than 2.16 are already not working, so this
workaround is no longer necessary either.  At the same time, some of
the transformations that .code16gcc does can be *extremely*
counterintuitive to a human programmer.
[ hpa: folded ret -> retl and call -> calll fixes from followup patch ]
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Link: http://lkml.kernel.org/r/1388788242.2391.75.camel@shinybook.infradead.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
  * touching registers they shouldn't be.
  */
 
-       .code16gcc
+       .code16
        .text
        .globl  intcall
        .type   intcall, @function
 
  * Memory copy routines
  */
 
-       .code16gcc
+       .code16
        .text
 
 GLOBAL(memcpy)
        rep; movsb
        popw    %di
        popw    %si
-       ret
+       retl
 ENDPROC(memcpy)
 
 GLOBAL(memset)
        andw    $3, %cx
        rep; stosb
        popw    %di
-       ret
+       retl
 ENDPROC(memset)
 
 GLOBAL(copy_from_fs)
        pushw   %ds
        pushw   %fs
        popw    %ds
-       call    memcpy
+       calll   memcpy
        popw    %ds
-       ret
+       retl
 ENDPROC(copy_from_fs)
 
 GLOBAL(copy_to_fs)
        pushw   %es
        pushw   %fs
        popw    %es
-       call    memcpy
+       calll   memcpy
        popw    %es
-       ret
+       retl
 ENDPROC(copy_to_fs)
 
 #if 0 /* Not currently used, but can be enabled as needed */
        pushw   %ds
        pushw   %gs
        popw    %ds
-       call    memcpy
+       calll   memcpy
        popw    %ds
-       ret
+       retl
 ENDPROC(copy_from_gs)
 
 GLOBAL(copy_to_gs)
        pushw   %es
        pushw   %gs
        popw    %es
-       call    memcpy
+       calll   memcpy
        popw    %es
-       ret
+       retl
 ENDPROC(copy_to_gs)
 #endif