Title: [240730] trunk/Source/_javascript_Core
Revision
240730
Author
[email protected]
Date
2019-01-30 14:12:52 -0800 (Wed, 30 Jan 2019)

Log Message

[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:

Modified Paths

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;
 };
 
 /* -----------------------------------------------------------------------------
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to