Changeset 134332 in webkit for trunk/Source/JavaScriptCore/assembler/X86Assembler.h
- Timestamp:
- Nov 12, 2012, 5:55:42 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/assembler/X86Assembler.h
r133953 r134332 1884 1884 } 1885 1885 1886 #if CPU(X86_64) 1887 static void revertJumpTo_movq_i64r(void* instructionStart, int64_t imm, RegisterID dst) 1888 { 1889 const int rexBytes = 1; 1890 const int opcodeBytes = 1; 1891 ASSERT(rexBytes + opcodeBytes <= maxJumpReplacementSize()); 1892 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart); 1893 ptr[0] = PRE_REX | (1 << 3) | (dst >> 3); 1894 ptr[1] = OP_MOV_EAXIv | (dst & 7); 1895 1896 union { 1897 uint64_t asWord; 1898 uint8_t asBytes[8]; 1899 } u; 1900 u.asWord = imm; 1901 for (unsigned i = rexBytes + opcodeBytes; i < static_cast<unsigned>(maxJumpReplacementSize()); ++i) 1902 ptr[i] = u.asBytes[i - rexBytes - opcodeBytes]; 1903 } 1904 #endif 1905 1906 static void revertJumpTo_cmpl_im_force32(void* instructionStart, int32_t imm, int offset, RegisterID dst) 1907 { 1908 ASSERT_UNUSED(offset, !offset); 1909 const int opcodeBytes = 1; 1910 const int modRMBytes = 1; 1911 ASSERT(opcodeBytes + modRMBytes <= maxJumpReplacementSize()); 1912 uint8_t* ptr = reinterpret_cast<uint8_t*>(instructionStart); 1913 ptr[0] = OP_GROUP1_EvIz; 1914 ptr[1] = (X86InstructionFormatter::ModRmMemoryNoDisp << 6) | (GROUP1_OP_CMP << 3) | dst; 1915 union { 1916 uint32_t asWord; 1917 uint8_t asBytes[4]; 1918 } u; 1919 u.asWord = imm; 1920 for (unsigned i = opcodeBytes + modRMBytes; i < static_cast<unsigned>(maxJumpReplacementSize()); ++i) 1921 ptr[i] = u.asBytes[i - opcodeBytes - modRMBytes]; 1922 } 1923 1886 1924 static void replaceWithLoad(void* instructionStart) 1887 1925 { … … 1982 2020 1983 2021 public: 2022 2023 enum ModRmMode { 2024 ModRmMemoryNoDisp, 2025 ModRmMemoryDisp8, 2026 ModRmMemoryDisp32, 2027 ModRmRegister, 2028 }; 1984 2029 1985 2030 // Legacy prefix bytes: … … 2353 2398 #endif 2354 2399 2355 enum ModRmMode {2356 ModRmMemoryNoDisp,2357 ModRmMemoryDisp8,2358 ModRmMemoryDisp32,2359 ModRmRegister,2360 };2361 2362 2400 void putModRm(ModRmMode mode, int reg, RegisterID rm) 2363 2401 {
Note:
See TracChangeset
for help on using the changeset viewer.