Ignore:
Timestamp:
Jan 30, 2019, 2:12:52 PM (6 years ago)
Author:
[email protected]
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:
Location:
trunk/Source/JavaScriptCore/disassembler
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp

    r237136 r240730  
    6565{ groupIndex, groupClass::mask, groupClass::pattern, groupClass::format }
    6666
    67 static OpcodeGroupInitializer opcodeGroupList[] = {
     67static const OpcodeGroupInitializer opcodeGroupList[] = {
    6868    OPCODE_GROUP_ENTRY(0x08, A64DOpcodeLoadStoreRegisterPair),
    6969    OPCODE_GROUP_ENTRY(0x08, A64DOpcodeLoadStoreExclusive),
  • trunk/Source/JavaScriptCore/disassembler/udis86/ud_itab.py

    r198832 r240730  
    250250    def genOpcodeTablesLookupIndex(self):
    251251        self.ItabC.write( "\n\n"  );
    252         self.ItabC.write( "struct ud_lookup_table_list_entry ud_lookup_table_list[] = {\n" )
     252        self.ItabC.write( "const struct ud_lookup_table_list_entry ud_lookup_table_list[] = {\n" )
    253253        for table in self.tables.getTableList():
    254254            f0 = self.getTableName(table) + ","
     
    261261
    262262    def genInsnTable( self ):
    263         self.ItabC.write( "struct ud_itab_entry ud_itab[] = {\n" );
     263        self.ItabC.write( "const struct ud_itab_entry ud_itab[] = {\n" );
    264264        for insn in self.tables.getInsnList():
    265265            opr_c = [ "O_NONE", "O_NONE", "O_NONE", "O_NONE" ]
     
    294294        mnemonics = self.getMnemonicsList()
    295295        self.ItabC.write( "\n\n"  );
    296         self.ItabC.write( "const char* ud_mnemonics_str[] = {\n    " )
     296        self.ItabC.write( "const char* const ud_mnemonics_str[] = {\n    " )
    297297        self.ItabC.write( ",\n    ".join( [ "\"%s\"" % m for m in mnemonics ] ) )
    298298        self.ItabC.write( "\n};\n" )
     
    324324        self.ItabH.write( "\n" )
    325325
    326         self.ItabH.write( "extern const char * ud_mnemonics_str[];\n" )
     326        self.ItabH.write( "extern const char * const ud_mnemonics_str[];\n" )
    327327
    328328        self.ItabH.write( "\n#endif /* UD_ITAB_H */\n" )
  • trunk/Source/JavaScriptCore/disassembler/udis86/udis86_decode.h

    r198832 r240730  
    186186};
    187187     
    188 extern struct ud_itab_entry ud_itab[];
    189 extern struct ud_lookup_table_list_entry ud_lookup_table_list[];
     188extern const struct ud_itab_entry ud_itab[];
     189extern const struct ud_lookup_table_list_entry ud_lookup_table_list[];
    190190
    191191#endif /* UD_DECODE_H */
  • trunk/Source/JavaScriptCore/disassembler/udis86/udis86_syn.c

    r198832 r240730  
    3838 *
    3939 */
    40 const char* ud_reg_tab[] =
     40const char* const ud_reg_tab[] =
    4141{
    4242  "al",   "cl",   "dl",   "bl",
  • trunk/Source/JavaScriptCore/disassembler/udis86/udis86_syn.h

    r198832 r240730  
    3232#endif /* __UD_STANDALONE__ */
    3333
    34 extern const char* ud_reg_tab[];
     34extern const char* const ud_reg_tab[];
    3535
    3636uint64_t ud_syn_rel_target(struct ud*, struct ud_operand*);
  • trunk/Source/JavaScriptCore/disassembler/udis86/udis86_types.h

    r198832 r240730  
    232232  uint8_t   primary_opcode;
    233233  void *    user_opaque_data;
    234   struct ud_itab_entry * itab_entry;
    235   struct ud_lookup_table_list_entry *le;
     234  const struct ud_itab_entry * itab_entry;
     235  const struct ud_lookup_table_list_entry *le;
    236236};
    237237
Note: See TracChangeset for help on using the changeset viewer.