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

Side by Side Diff: src/arm64/instructions-arm64.cc

Issue 318773009: ARM64: Clean up support for explicit literal load. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #define ARM64_DEFINE_FP_STATICS 9 #define ARM64_DEFINE_FP_STATICS
10 10
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 break; 273 break;
274 } 274 }
275 default: UNREACHABLE(); 275 default: UNREACHABLE();
276 } 276 }
277 SetInstructionBits(Mask(~imm_mask) | branch_imm); 277 SetInstructionBits(Mask(~imm_mask) | branch_imm);
278 } 278 }
279 279
280 280
281 void Instruction::SetImmLLiteral(Instruction* source) { 281 void Instruction::SetImmLLiteral(Instruction* source) {
282 ASSERT(IsAligned(DistanceTo(source), kInstructionSize)); 282 ASSERT(IsAligned(DistanceTo(source), kInstructionSize));
283 ptrdiff_t offset = DistanceTo(source) >> kLiteralEntrySizeLog2; 283 ptrdiff_t offset = DistanceTo(source) >> kLoadLiteralScaleLog2;
284 Instr imm = Assembler::ImmLLiteral(offset); 284 Instr imm = Assembler::ImmLLiteral(offset);
285 Instr mask = ImmLLiteral_mask; 285 Instr mask = ImmLLiteral_mask;
286 286
287 SetInstructionBits(Mask(~mask) | imm); 287 SetInstructionBits(Mask(~mask) | imm);
288 } 288 }
289 289
290 290
291 // TODO(jbramley): We can't put this inline in the class because things like 291 // TODO(jbramley): We can't put this inline in the class because things like
292 // xzr and Register are not defined in that header. Consider adding 292 // xzr and Register are not defined in that header. Consider adding
293 // instructions-arm64-inl.h to work around this. 293 // instructions-arm64-inl.h to work around this.
(...skipping 14 matching lines...) Expand all
308 uint64_t payload = ImmMoveWide(); 308 uint64_t payload = ImmMoveWide();
309 // TODO(all): If we extend ::InlineData() to support bigger data, we need 309 // TODO(all): If we extend ::InlineData() to support bigger data, we need
310 // to update this method too. 310 // to update this method too.
311 return payload; 311 return payload;
312 } 312 }
313 313
314 314
315 } } // namespace v8::internal 315 } } // namespace v8::internal
316 316
317 #endif // V8_TARGET_ARCH_ARM64 317 #endif // V8_TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698