Ensure builtin binaries are aligned to ibf_header

Since IBF result string size should be multiple of 4, this should not
increase the binary size actually.
This commit is contained in:
Nobuyoshi Nakada 2025-04-06 12:24:23 +09:00
parent b5ac483d95
commit e25889951f
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
Notes: git 2025-04-06 05:32:39 +00:00

View File

@ -5,19 +5,24 @@
% unless ARGV.include?('--cross=yes') % unless ARGV.include?('--cross=yes')
% ary = RubyVM.enum_for(:each_builtin).to_a % ary = RubyVM.enum_for(:each_builtin).to_a
% ary.each{|feature, iseq| % ary.each{|feature, iseq|
% bin = iseq.to_binary
static const unsigned char <%= feature %>_bin[] = { static const union {
% iseq \ unsigned char binary[<%= bin.bytesize %>];
% . to_binary \ uint32_t align_as_ibf_header;
} <%= feature %>_builtin = {
.binary = {
% bin \
% . each_byte \ % . each_byte \
% . each_slice(12) {|a| % . each_slice(12) {|a|
<%= a.map{ '0x%02x,' % _1 }.join(' ') %> <%= a.map{ '0x%02x,' % _1 }.join(' ') %>
% } % }
}
}; };
% } % }
#define BUILTIN_BIN(feature) \ #define BUILTIN_BIN(feature) \
{ #feature, feature ## _bin, sizeof(feature ## _bin), } { #feature, feature ## _builtin.binary, sizeof(feature ## _builtin.binary), }
static const struct builtin_binary builtin_binary[] = { static const struct builtin_binary builtin_binary[] = {
% ary.each{|feature, | % ary.each{|feature, |
BUILTIN_BIN(<%= feature %>), BUILTIN_BIN(<%= feature %>),