Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (240729 => 240730)
--- trunk/Source/_javascript_Core/ChangeLog 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-01-30 22:12:52 UTC (rev 240730)
@@ -1,5 +1,26 @@
2019-01-30 Yusuke Suzuki <[email protected]>
+ [JSC] Make disassembler data structures constant read-only data
+ https://bugs.webkit.org/show_bug.cgi?id=194041
+
+ Reviewed by Mark Lam.
+
+ Bunch of disassembler data structures are not marked "const", which prevents the loader to put them in read-only 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 <[email protected]>
+
Unreviewed, update the builtin test results
https://bugs.webkit.org/show_bug.cgi?id=194015
Modified: trunk/Source/_javascript_Core/disassembler/ARM64/A64DOpcode.cpp (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/ARM64/A64DOpcode.cpp 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/ARM64/A64DOpcode.cpp 2019-01-30 22:12:52 UTC (rev 240730)
@@ -64,7 +64,7 @@
#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),
Modified: trunk/Source/_javascript_Core/disassembler/udis86/ud_itab.py (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/udis86/ud_itab.py 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/udis86/ud_itab.py 2019-01-30 22:12:52 UTC (rev 240730)
@@ -249,7 +249,7 @@
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 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 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 @@
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" )
Modified: trunk/Source/_javascript_Core/disassembler/udis86/udis86_decode.h (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/udis86/udis86_decode.h 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/udis86/udis86_decode.h 2019-01-30 22:12:52 UTC (rev 240730)
@@ -185,8 +185,8 @@
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 */
Modified: trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.c (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.c 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.c 2019-01-30 22:12:52 UTC (rev 240730)
@@ -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",
Modified: trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.h (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.h 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/udis86/udis86_syn.h 2019-01-30 22:12:52 UTC (rev 240730)
@@ -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*);
Modified: trunk/Source/_javascript_Core/disassembler/udis86/udis86_types.h (240729 => 240730)
--- trunk/Source/_javascript_Core/disassembler/udis86/udis86_types.h 2019-01-30 21:46:52 UTC (rev 240729)
+++ trunk/Source/_javascript_Core/disassembler/udis86/udis86_types.h 2019-01-30 22:12:52 UTC (rev 240730)
@@ -231,8 +231,8 @@
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;
};
/* -----------------------------------------------------------------------------