Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Side by Side Diff: src/assembler.h

Issue 2930833002: [wasm] Wasm Memory/Table relocations should not be GC'ed enums (Closed)
Patch Set: Mircea's review Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 static const int kMaxCallSize = 6; 341 static const int kMaxCallSize = 6;
342 342
343 // The maximum pc delta that will use the short encoding. 343 // The maximum pc delta that will use the short encoding.
344 static const int kMaxSmallPCDelta; 344 static const int kMaxSmallPCDelta;
345 345
346 enum Mode { 346 enum Mode {
347 // Please note the order is important (see IsCodeTarget, IsGCRelocMode). 347 // Please note the order is important (see IsCodeTarget, IsGCRelocMode).
348 CODE_TARGET, 348 CODE_TARGET,
349 CODE_TARGET_WITH_ID, 349 CODE_TARGET_WITH_ID,
350 EMBEDDED_OBJECT, 350 EMBEDDED_OBJECT,
351 // To relocate pointers into the wasm memory embedded in wasm code 351 // Wasm entries are to relocate pointers into the wasm memory embedded in
352 // wasm code. Everything after WASM_MEMORY_REFERENCE (inclusive) is not
353 // GC'ed.
352 WASM_MEMORY_REFERENCE, 354 WASM_MEMORY_REFERENCE,
353 WASM_GLOBAL_REFERENCE, 355 WASM_GLOBAL_REFERENCE,
354 WASM_MEMORY_SIZE_REFERENCE, 356 WASM_MEMORY_SIZE_REFERENCE,
355 WASM_FUNCTION_TABLE_SIZE_REFERENCE, 357 WASM_FUNCTION_TABLE_SIZE_REFERENCE,
356 WASM_PROTECTED_INSTRUCTION_LANDING, 358 WASM_PROTECTED_INSTRUCTION_LANDING,
357 CELL, 359 CELL,
358 360
359 // Everything after runtime_entry (inclusive) is not GC'ed.
360 RUNTIME_ENTRY, 361 RUNTIME_ENTRY,
361 COMMENT, 362 COMMENT,
362 363
363 // Additional code inserted for debug break slot. 364 // Additional code inserted for debug break slot.
364 DEBUG_BREAK_SLOT_AT_POSITION, 365 DEBUG_BREAK_SLOT_AT_POSITION,
365 DEBUG_BREAK_SLOT_AT_RETURN, 366 DEBUG_BREAK_SLOT_AT_RETURN,
366 DEBUG_BREAK_SLOT_AT_CALL, 367 DEBUG_BREAK_SLOT_AT_CALL,
367 DEBUG_BREAK_SLOT_AT_TAIL_CALL, 368 DEBUG_BREAK_SLOT_AT_TAIL_CALL,
368 369
369 EXTERNAL_REFERENCE, // The address of an external C++ function. 370 EXTERNAL_REFERENCE, // The address of an external C++ function.
(...skipping 19 matching lines...) Expand all
389 // Pseudo-types 390 // Pseudo-types
390 NUMBER_OF_MODES, 391 NUMBER_OF_MODES,
391 NONE32, // never recorded 32-bit value 392 NONE32, // never recorded 32-bit value
392 NONE64, // never recorded 64-bit value 393 NONE64, // never recorded 64-bit value
393 CODE_AGE_SEQUENCE, // Not stored in RelocInfo array, used explictly by 394 CODE_AGE_SEQUENCE, // Not stored in RelocInfo array, used explictly by
394 // code aging. 395 // code aging.
395 396
396 FIRST_REAL_RELOC_MODE = CODE_TARGET, 397 FIRST_REAL_RELOC_MODE = CODE_TARGET,
397 LAST_REAL_RELOC_MODE = VENEER_POOL, 398 LAST_REAL_RELOC_MODE = VENEER_POOL,
398 LAST_CODE_ENUM = CODE_TARGET_WITH_ID, 399 LAST_CODE_ENUM = CODE_TARGET_WITH_ID,
399 LAST_GCED_ENUM = WASM_FUNCTION_TABLE_SIZE_REFERENCE, 400 LAST_GCED_ENUM = EMBEDDED_OBJECT,
400 FIRST_SHAREABLE_RELOC_MODE = CELL, 401 FIRST_SHAREABLE_RELOC_MODE = CELL,
401 }; 402 };
402 403
403 STATIC_ASSERT(NUMBER_OF_MODES <= kBitsPerInt); 404 STATIC_ASSERT(NUMBER_OF_MODES <= kBitsPerInt);
404 405
405 RelocInfo() = default; 406 RelocInfo() = default;
406 407
407 RelocInfo(byte* pc, Mode rmode, intptr_t data, Code* host) 408 RelocInfo(byte* pc, Mode rmode, intptr_t data, Code* host)
408 : pc_(pc), rmode_(rmode), data_(data), host_(host) {} 409 : pc_(pc), rmode_(rmode), data_(data), host_(host) {}
409 410
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 std::vector<ConstantPoolEntry> shared_entries; 1290 std::vector<ConstantPoolEntry> shared_entries;
1290 }; 1291 };
1291 1292
1292 Label emitted_label_; // Records pc_offset of emitted pool 1293 Label emitted_label_; // Records pc_offset of emitted pool
1293 PerTypeEntryInfo info_[ConstantPoolEntry::NUMBER_OF_TYPES]; 1294 PerTypeEntryInfo info_[ConstantPoolEntry::NUMBER_OF_TYPES];
1294 }; 1295 };
1295 1296
1296 } // namespace internal 1297 } // namespace internal
1297 } // namespace v8 1298 } // namespace v8
1298 #endif // V8_ASSEMBLER_H_ 1299 #endif // V8_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698