insns_info.inc: position independent
* template/insns_info.inc.tmpl (insn_name_info): make position independent for large strings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61589 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a1bbb2a780
commit
7acd7b2771
@ -13,13 +13,6 @@
|
||||
#define <%=t%> '<%=c%>'
|
||||
% end
|
||||
|
||||
#if !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L)
|
||||
static const char *insn_name_info[] = {
|
||||
% @insns.each do |insn|
|
||||
"<%= insn.name %>",
|
||||
% end
|
||||
};
|
||||
#else
|
||||
static const unsigned short insn_name_info_offset[] = {
|
||||
% insn_name_length = @insns.inject(0) do |ofs, insn|
|
||||
<%= ofs %>,
|
||||
@ -29,14 +22,17 @@ static const unsigned short insn_name_info_offset[] = {
|
||||
|
||||
ASSERT_VM_INSTRUCTION_SIZE(insn_name_info_offset);
|
||||
|
||||
static const char insn_name_info_base[<%=insn_name_length%>] = ""
|
||||
% @insns.each do |insn|
|
||||
"<%= insn.name %>\0"
|
||||
static const struct {
|
||||
% @insns.each_with_index do |insn, i|
|
||||
char L<%=i%>[<%= insn.name.size+1 %>];
|
||||
% end
|
||||
;
|
||||
} insn_name_info_base = {
|
||||
% @insns.each do |insn|
|
||||
"<%= insn.name %>",
|
||||
% end
|
||||
};
|
||||
|
||||
#define insn_name_info insn_name_info_base+insn_name_info_offset
|
||||
#endif
|
||||
#define insn_name_info insn_name_info_base.L0+insn_name_info_offset
|
||||
|
||||
static const char insn_operand_info[][8] = {
|
||||
% @insns.each do |insn|
|
||||
|
Loading…
x
Reference in New Issue
Block a user