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

Side by Side Diff: src/arm/assembler-arm.cc

Issue 1985013002: [arm] Fix platform requirements for ldrd and strd. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 7 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 | src/arm/macro-assembler-arm.cc » ('j') | 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 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are 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 2054 matching lines...) Expand 10 before | Expand all | Expand 10 after
2065 } 2065 }
2066 2066
2067 2067
2068 void Assembler::ldrsh(Register dst, const MemOperand& src, Condition cond) { 2068 void Assembler::ldrsh(Register dst, const MemOperand& src, Condition cond) {
2069 addrmod3(cond | L | B7 | S6 | H | B4, dst, src); 2069 addrmod3(cond | L | B7 | S6 | H | B4, dst, src);
2070 } 2070 }
2071 2071
2072 2072
2073 void Assembler::ldrd(Register dst1, Register dst2, 2073 void Assembler::ldrd(Register dst1, Register dst2,
2074 const MemOperand& src, Condition cond) { 2074 const MemOperand& src, Condition cond) {
2075 DCHECK(IsEnabled(ARMv7));
2076 DCHECK(src.rm().is(no_reg)); 2075 DCHECK(src.rm().is(no_reg));
2077 DCHECK(!dst1.is(lr)); // r14. 2076 DCHECK(!dst1.is(lr)); // r14.
2078 DCHECK_EQ(0, dst1.code() % 2); 2077 DCHECK_EQ(0, dst1.code() % 2);
2079 DCHECK_EQ(dst1.code() + 1, dst2.code()); 2078 DCHECK_EQ(dst1.code() + 1, dst2.code());
2080 addrmod3(cond | B7 | B6 | B4, dst1, src); 2079 addrmod3(cond | B7 | B6 | B4, dst1, src);
2081 } 2080 }
2082 2081
2083 2082
2084 void Assembler::strd(Register src1, Register src2, 2083 void Assembler::strd(Register src1, Register src2,
2085 const MemOperand& dst, Condition cond) { 2084 const MemOperand& dst, Condition cond) {
2086 DCHECK(dst.rm().is(no_reg)); 2085 DCHECK(dst.rm().is(no_reg));
2087 DCHECK(!src1.is(lr)); // r14. 2086 DCHECK(!src1.is(lr)); // r14.
2088 DCHECK_EQ(0, src1.code() % 2); 2087 DCHECK_EQ(0, src1.code() % 2);
2089 DCHECK_EQ(src1.code() + 1, src2.code()); 2088 DCHECK_EQ(src1.code() + 1, src2.code());
2090 DCHECK(IsEnabled(ARMv7));
2091 addrmod3(cond | B7 | B6 | B5 | B4, src1, dst); 2089 addrmod3(cond | B7 | B6 | B5 | B4, src1, dst);
2092 } 2090 }
2093 2091
2094 2092
2095 // Preload instructions. 2093 // Preload instructions.
2096 void Assembler::pld(const MemOperand& address) { 2094 void Assembler::pld(const MemOperand& address) {
2097 // Instruction details available in ARM DDI 0406C.b, A8.8.128. 2095 // Instruction details available in ARM DDI 0406C.b, A8.8.128.
2098 // 1111(31-28) | 0111(27-24) | U(23) | R(22) | 01(21-20) | Rn(19-16) | 2096 // 1111(31-28) | 0111(27-24) | U(23) | R(22) | 01(21-20) | Rn(19-16) |
2099 // 1111(15-12) | imm5(11-07) | type(6-5) | 0(4)| Rm(3-0) | 2097 // 1111(15-12) | imm5(11-07) | type(6-5) | 0(4)| Rm(3-0) |
2100 DCHECK(address.rm().is(no_reg)); 2098 DCHECK(address.rm().is(no_reg));
(...skipping 2161 matching lines...) Expand 10 before | Expand all | Expand 10 after
4262 DCHECK(is_uint12(offset)); 4260 DCHECK(is_uint12(offset));
4263 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); 4261 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset));
4264 } 4262 }
4265 } 4263 }
4266 4264
4267 4265
4268 } // namespace internal 4266 } // namespace internal
4269 } // namespace v8 4267 } // namespace v8
4270 4268
4271 #endif // V8_TARGET_ARCH_ARM 4269 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698