WebKit Bugzilla
Attachment 360611 Details for
Bug 194041
: [JSC] Make disassembler data structures constant read-only data
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194041-20190130134225.patch (text/plain), 6.36 KB, created by
Yusuke Suzuki
on 2019-01-30 13:42:26 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Yusuke Suzuki
Created:
2019-01-30 13:42:26 PST
Size:
6.36 KB
patch
obsolete
>Subversion Revision: 240726 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 05d017e200fcf9d29ce30cca63d7c33024f63771..2a27fdd7b8f88bc26096ce4a54eb6fa549dea238 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,24 @@ >+2019-01-30 Yusuke Suzuki <ysuzuki@apple.com> >+ >+ [JSC] Make disassembler data structures constant ro data >+ https://bugs.webkit.org/show_bug.cgi?id=194041 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Bunch of disassembler data structures are not marked "const", which prevents the loader to put them in RO region. >+ This patch makes them "const". >+ >+ * disassembler/ARM64/A64DOpcode.cpp: >+ * disassembler/udis86/ud_itab.py: >+ (UdItabGenerator.genOpcodeTablesLookupIndex): >+ (UdItabGenerator.genInsnTable): >+ (UdItabGenerator.genMnemonicsList): >+ (genItabH): >+ * disassembler/udis86/udis86_decode.h: >+ * disassembler/udis86/udis86_syn.c: >+ * disassembler/udis86/udis86_syn.h: >+ * disassembler/udis86/udis86_types.h: >+ > 2019-01-30 Yusuke Suzuki <ysuzuki@apple.com> > > Unreviewed, update the builtin test results >diff --git a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp >index 543052629a70d87db08d9b64c2084b53f3e7e50a..e28d5f990924dc446eaf77fa1cc0d0893540f550 100644 >--- a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp >+++ b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp >@@ -64,7 +64,7 @@ struct OpcodeGroupInitializer { > #define OPCODE_GROUP_ENTRY(groupIndex, groupClass) \ > { groupIndex, groupClass::mask, groupClass::pattern, groupClass::format } > >-static OpcodeGroupInitializer opcodeGroupList[] = { >+static const OpcodeGroupInitializer opcodeGroupList[] = { > OPCODE_GROUP_ENTRY(0x08, A64DOpcodeLoadStoreRegisterPair), > OPCODE_GROUP_ENTRY(0x08, A64DOpcodeLoadStoreExclusive), > OPCODE_GROUP_ENTRY(0x09, A64DOpcodeLoadStoreRegisterPair), >diff --git a/Source/JavaScriptCore/disassembler/udis86/ud_itab.py b/Source/JavaScriptCore/disassembler/udis86/ud_itab.py >index ef011d2ec42cf674d03431428ff40fd3b2b42007..41f710e868d4d7034809950beb1988dfb9d7845c 100644 >--- a/Source/JavaScriptCore/disassembler/udis86/ud_itab.py >+++ b/Source/JavaScriptCore/disassembler/udis86/ud_itab.py >@@ -249,7 +249,7 @@ def genOpcodeTables(self): > > def genOpcodeTablesLookupIndex(self): > self.ItabC.write( "\n\n" ); >- self.ItabC.write( "struct ud_lookup_table_list_entry ud_lookup_table_list[] = {\n" ) >+ self.ItabC.write( "const struct ud_lookup_table_list_entry ud_lookup_table_list[] = {\n" ) > for table in self.tables.getTableList(): > f0 = self.getTableName(table) + "," > f1 = table.label() + "," >@@ -260,7 +260,7 @@ def genOpcodeTablesLookupIndex(self): > > > def genInsnTable( self ): >- self.ItabC.write( "struct ud_itab_entry ud_itab[] = {\n" ); >+ self.ItabC.write( "const struct ud_itab_entry ud_itab[] = {\n" ); > for insn in self.tables.getInsnList(): > opr_c = [ "O_NONE", "O_NONE", "O_NONE", "O_NONE" ] > pfx_c = [] >@@ -293,7 +293,7 @@ def getMnemonicsList(self): > def genMnemonicsList(self): > mnemonics = self.getMnemonicsList() > self.ItabC.write( "\n\n" ); >- self.ItabC.write( "const char* ud_mnemonics_str[] = {\n " ) >+ self.ItabC.write( "const char* const ud_mnemonics_str[] = {\n " ) > self.ItabC.write( ",\n ".join( [ "\"%s\"" % m for m in mnemonics ] ) ) > self.ItabC.write( "\n};\n" ) > >@@ -323,7 +323,7 @@ def genItabH( self, filePath ): > self.ItabH.write( enum ) > self.ItabH.write( "\n" ) > >- self.ItabH.write( "extern const char * ud_mnemonics_str[];\n" ) >+ self.ItabH.write( "extern const char * const ud_mnemonics_str[];\n" ) > > self.ItabH.write( "\n#endif /* UD_ITAB_H */\n" ) > >diff --git a/Source/JavaScriptCore/disassembler/udis86/udis86_decode.h b/Source/JavaScriptCore/disassembler/udis86/udis86_decode.h >index 411c8830ec46de92b7ba81f29d72dc87eb99d3e1..d925d1054c693eaa20dd335a89d97927a8035101 100644 >--- a/Source/JavaScriptCore/disassembler/udis86/udis86_decode.h >+++ b/Source/JavaScriptCore/disassembler/udis86/udis86_decode.h >@@ -185,8 +185,8 @@ struct ud_lookup_table_list_entry { > const char *meta; > }; > >-extern struct ud_itab_entry ud_itab[]; >-extern struct ud_lookup_table_list_entry ud_lookup_table_list[]; >+extern const struct ud_itab_entry ud_itab[]; >+extern const struct ud_lookup_table_list_entry ud_lookup_table_list[]; > > #endif /* UD_DECODE_H */ > >diff --git a/Source/JavaScriptCore/disassembler/udis86/udis86_syn.c b/Source/JavaScriptCore/disassembler/udis86/udis86_syn.c >index 4417d9997c2148236a696b28e631f2f2616bb668..e9e0ad3c08c9dc4a384d66144d6e35d33015b9d9 100644 >--- a/Source/JavaScriptCore/disassembler/udis86/udis86_syn.c >+++ b/Source/JavaScriptCore/disassembler/udis86/udis86_syn.c >@@ -37,7 +37,7 @@ > * Register Table - Order Matters (types.h)! > * > */ >-const char* ud_reg_tab[] = >+const char* const ud_reg_tab[] = > { > "al", "cl", "dl", "bl", > "ah", "ch", "dh", "bh", >diff --git a/Source/JavaScriptCore/disassembler/udis86/udis86_syn.h b/Source/JavaScriptCore/disassembler/udis86/udis86_syn.h >index 712ec37aea4b2ef9cfbd023971f4330e77cd8c70..73f42511dc6c19acdb5e3c02736803c5e8815d4e 100644 >--- a/Source/JavaScriptCore/disassembler/udis86/udis86_syn.h >+++ b/Source/JavaScriptCore/disassembler/udis86/udis86_syn.h >@@ -31,7 +31,7 @@ > # include <stdarg.h> > #endif /* __UD_STANDALONE__ */ > >-extern const char* ud_reg_tab[]; >+extern const char* const ud_reg_tab[]; > > uint64_t ud_syn_rel_target(struct ud*, struct ud_operand*); > >diff --git a/Source/JavaScriptCore/disassembler/udis86/udis86_types.h b/Source/JavaScriptCore/disassembler/udis86/udis86_types.h >index 604f08e5102206f0a0befdcf084c810992d829e9..45bd75f8fe256c1d32d401e3f5ab2ddca63c04ca 100644 >--- a/Source/JavaScriptCore/disassembler/udis86/udis86_types.h >+++ b/Source/JavaScriptCore/disassembler/udis86/udis86_types.h >@@ -231,8 +231,8 @@ struct ud > uint8_t vex_b2; > uint8_t primary_opcode; > void * user_opaque_data; >- struct ud_itab_entry * itab_entry; >- struct ud_lookup_table_list_entry *le; >+ const struct ud_itab_entry * itab_entry; >+ const struct ud_lookup_table_list_entry *le; > }; > > /* -----------------------------------------------------------------------------
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mark.lam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194041
: 360611