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

Side by Side Diff: src/x64/macro-assembler-x64.h

Issue 10778029: Allow uint32 value on optimized frames if they are consumed by safe operations. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: arm and x64 ports Created 8 years, 4 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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 310
311 // Leave the current exit frame. Expects/provides the return value in 311 // Leave the current exit frame. Expects/provides the return value in
312 // register rax (untouched). 312 // register rax (untouched).
313 void LeaveApiExitFrame(); 313 void LeaveApiExitFrame();
314 314
315 // Push and pop the registers that can hold pointers. 315 // Push and pop the registers that can hold pointers.
316 void PushSafepointRegisters() { Pushad(); } 316 void PushSafepointRegisters() { Pushad(); }
317 void PopSafepointRegisters() { Popad(); } 317 void PopSafepointRegisters() { Popad(); }
318 // Store the value in register src in the safepoint register stack 318 // Store the value in register src in the safepoint register stack
319 // slot for register dst. 319 // slot for register dst.
320 void StoreToSafepointRegisterSlot(Register dst, const Immediate& imm);
320 void StoreToSafepointRegisterSlot(Register dst, Register src); 321 void StoreToSafepointRegisterSlot(Register dst, Register src);
321 void LoadFromSafepointRegisterSlot(Register dst, Register src); 322 void LoadFromSafepointRegisterSlot(Register dst, Register src);
322 323
323 void InitializeRootRegister() { 324 void InitializeRootRegister() {
324 ExternalReference roots_array_start = 325 ExternalReference roots_array_start =
325 ExternalReference::roots_array_start(isolate()); 326 ExternalReference::roots_array_start(isolate());
326 movq(kRootRegister, roots_array_start); 327 movq(kRootRegister, roots_array_start);
327 addq(kRootRegister, Immediate(kRootRegisterBias)); 328 addq(kRootRegister, Immediate(kRootRegisterBias));
328 } 329 }
329 330
(...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 // jcc instructions (je, ja, jae, jb, jbe, je, and jz). 938 // jcc instructions (je, ja, jae, jb, jbe, je, and jz).
938 void FCmp(); 939 void FCmp();
939 940
940 void ClampUint8(Register reg); 941 void ClampUint8(Register reg);
941 942
942 void ClampDoubleToUint8(XMMRegister input_reg, 943 void ClampDoubleToUint8(XMMRegister input_reg,
943 XMMRegister temp_xmm_reg, 944 XMMRegister temp_xmm_reg,
944 Register result_reg, 945 Register result_reg,
945 Register temp_reg); 946 Register temp_reg);
946 947
948 void LoadUint32(XMMRegister dst, Register src, XMMRegister scratch);
949
947 void LoadInstanceDescriptors(Register map, Register descriptors); 950 void LoadInstanceDescriptors(Register map, Register descriptors);
948 951
949 // Abort execution if argument is not a number. Used in debug code. 952 // Abort execution if argument is not a number. Used in debug code.
950 void AbortIfNotNumber(Register object); 953 void AbortIfNotNumber(Register object);
951 954
952 // Abort execution if argument is a smi. Used in debug code. 955 // Abort execution if argument is a smi. Used in debug code.
953 void AbortIfSmi(Register object); 956 void AbortIfSmi(Register object);
954 957
955 // Abort execution if argument is not a smi. Used in debug code. 958 // Abort execution if argument is not a smi. Used in debug code.
956 void AbortIfNotSmi(Register object); 959 void AbortIfNotSmi(Register object);
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
1482 masm->popfd(); \ 1485 masm->popfd(); \
1483 } \ 1486 } \
1484 masm-> 1487 masm->
1485 #else 1488 #else
1486 #define ACCESS_MASM(masm) masm-> 1489 #define ACCESS_MASM(masm) masm->
1487 #endif 1490 #endif
1488 1491
1489 } } // namespace v8::internal 1492 } } // namespace v8::internal
1490 1493
1491 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_ 1494 #endif // V8_X64_MACRO_ASSEMBLER_X64_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698