From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 018FF6EC43; Sat, 30 May 2026 19:07:19 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 018FF6EC43 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1780157239; bh=4RNjf74YVE/r9fHrW+Buu26/dmFuagOiiQ6OFfYbo/Y=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=us7NQ7ofoV6/cW/ph7nCJpw8u3P2AAuBbIrKG3Um7ky6C9Wnjnv6yt0BKxQ9MSCoM 3ROgZ7HsiRxqhC3PtPN2AvhJskP1E6nG7m8gZh/sPv4UZKnTwzJhNIewQABrAFbTvg iaxe1HqsoM1IX3kXfXRXqKfOAw8fidmZ5CV1HQQw= Received: from send35.i.mail.ru (send35.i.mail.ru [89.221.237.130]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id D29736EC43 for ; Sat, 30 May 2026 19:04:50 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D29736EC43 Received: by exim-smtp-5b85998476-w27zp with esmtpa (envelope-from ) id 1wTMB7-00000000NxS-2lmx; Sat, 30 May 2026 19:04:50 +0300 To: Sergey Bronnikov , Evgeniy Temirgaleev Date: Sat, 30 May 2026 19:04:09 +0300 Message-ID: <20260530160409.4043089-6-skaplun@tarantool.org> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260530160409.4043089-1-skaplun@tarantool.org> References: <20260530160409.4043089-1-skaplun@tarantool.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9402BF17F4A9A44D6AB4A47E9487FB91F7FF0118EE6368A1C00894C459B0CD1B999E3078420F2B8AA66FA44935DFD4124028DDE2966729B638063F32B492FEB806412C2FA36F3267F X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE716FAD50E497B9C14EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637FE9EFE935CD7C6AE8638F802B75D45FF914D58D5BE9E6BC1A93B80C6DEB9DEE97C6FB206A91F05B252892991922CB6162E070BE324C7D3C4EFBD18C40E0D3259F6B57BC7E64490618DEB871D839B73339E8FC8737B5C224936DA1BED736F9328CC7F00164DA146DAFE8445B8C89999729449624AB7ADAF37F6B57BC7E64490611E7FA7ABCAF51C92176DF2183F8FC7C078FCF50C7EAF9C588941B15DA834481F9449624AB7ADAF372E808ACE2090B5E14AD6D5ED66289B5259CC434672EE63711DD303D21008E298D5E8D9A59859A8B6B372FE9A2E580EFC725E5C173C3A84C37727919777A35F2B35872C767BF85DA2F004C90652538430E4A6367B16DE6309 X-C1DE0DAB: 0D63561A33F958A536906D4B51DBDA805002B1117B3ED696F285AA62C7916D4A4A0A47EBA01A636A823CB91A9FED034534781492E4B8EEADA3FB0D9844EF8EC5C79554A2A72441328621D336A7BC284946AD531847A6065A535571D14F44ED41 X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659C2A9FAF39700A69DC07E6CD134186D14CADE2441BC7559BD2D21126565B66104D0DD308608F88E4CB8341EE9D5BE9A0AA5BD694E91DC219A4EEFE4E6A881BF00B9836EF4DB0D0FB5C7CEAA0681F5848F4C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRI2994ruhLUFfbjm61pNwg= X-DA7885C5: 15B97C3EC9D89DA7F255D290C0D534F9FF1E12BC1F50AB8911DBF03497D8393443D7137DBED8D39D5B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393520AF17B8A65FDE2091DA405D32CD4F908715E8504D67BFADA760A32BB476C71E49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: [Tarantool-patches] [PATCH luajit 5/5] FFI/MacOS: Fix calling convention for enums. X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" From: Mike Pall Thanks to Sergey Kaplun. (cherry picked from commit b925b3e3fc6771171602323b45fbe9fb8fc90369) This patch fixes the regression in the arm64 OSX FFI behaviour when the fundamental C types are passed via the stack. The given arguments should occupy the "packed" size on the stack if they are fundamental C types [1]. Structures require the pointer-size alignment like it was done in the previous commit. This patch fixes that (not only for enums but for other data types too). This fixes the tests that were failing after the previous commit. [1]: https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Pass-arguments-to-functions-correctly Sergey Kaplun: * added the description for the problem Part of tarantool/tarantool#12480 --- src/lj_ccall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lj_ccall.c b/src/lj_ccall.c index 1beccc10..7c3ec1e5 100644 --- a/src/lj_ccall.c +++ b/src/lj_ccall.c @@ -1082,7 +1082,7 @@ static int ccall_set_args(lua_State *L, CTState *cts, CType *ct, if (CCALL_ALIGN_STACKARG) { /* Align argument on stack. */ MSize align = (1u << ctype_align(ccall_struct_align(cts, d))) - 1; #if LJ_TARGET_ARM64 && LJ_TARGET_OSX - isva = 1; + isva = ctype_isstruct(d->info); #endif if (rp || (CCALL_PACK_STACKARG && isva && align < CTSIZE_PTR-1)) align = CTSIZE_PTR-1; -- 2.54.0