]> Zhao Yanbai Git Server - minix.git/commit
cdecl calling convention expects the callee to pop the hidden pointer on
authorLorenzo Cavallaro <lorenzo@minix3.org>
Wed, 24 Mar 2010 17:25:17 +0000 (17:25 +0000)
committerLorenzo Cavallaro <lorenzo@minix3.org>
Wed, 24 Mar 2010 17:25:17 +0000 (17:25 +0000)
commita16308efdb1534588207e6c098409d19ea500289
tree6210920a96562bb34f632ba85dfb4d7b51ca6bba
parent5fd3f342739fb7ba4425c47e71d52dd264572501
cdecl calling convention expects the callee to pop the hidden pointer on
struct return. For example, GCC and LLVM comply with this (tested on IA32).

ACK doesn't seem to follow this convention and expects the caller to clean up
the stack. Compiling hand-written ACK-compliant assembly code (returning a
struct) with GCC or LLVM used to break things (4-bytes misaligned stack).

The patch fixes this problem.
include/Makefile
include/minix/compiler-ack.h [new file with mode: 0644]
include/minix/compiler.h [new file with mode: 0644]
lib/libc/arch/i386/int64/add64.S
lib/libc/arch/i386/int64/add64u.S
lib/libc/arch/i386/int64/cvu64.S
lib/libc/arch/i386/int64/make64.S
lib/libc/arch/i386/int64/mul64u.S
lib/libc/arch/i386/int64/sub64.S
lib/libc/arch/i386/int64/sub64u.S