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

Side by Side Diff: src/IceAssemblerX86Base.h

Issue 1231903002: Adds tests to the AssemblerX8632. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 5 years, 5 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 | « Makefile.standalone ('k') | unittest/IceAssemblerX8632Test.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===// 1 //===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===//
2 // 2 //
3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
4 // for details. All rights reserved. Use of this source code is governed by a 4 // for details. All rights reserved. Use of this source code is governed by a
5 // BSD-style license that can be found in the LICENSE file. 5 // BSD-style license that can be found in the LICENSE file.
6 // 6 //
7 // Modified by the Subzero authors. 7 // Modified by the Subzero authors.
8 // 8 //
9 //===----------------------------------------------------------------------===// 9 //===----------------------------------------------------------------------===//
10 // 10 //
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 void popl(const typename Traits::Address &address); 325 void popl(const typename Traits::Address &address);
326 326
327 void pushal(); 327 void pushal();
328 void popal(); 328 void popal();
329 329
330 void setcc(typename Traits::Cond::BrCond condition, 330 void setcc(typename Traits::Cond::BrCond condition,
331 typename Traits::ByteRegister dst); 331 typename Traits::ByteRegister dst);
332 void setcc(typename Traits::Cond::BrCond condition, 332 void setcc(typename Traits::Cond::BrCond condition,
333 const typename Traits::Address &address); 333 const typename Traits::Address &address);
334 334
335 // All mov() overloads are tested.
335 void mov(Type Ty, typename Traits::GPRRegister dst, const Immediate &src); 336 void mov(Type Ty, typename Traits::GPRRegister dst, const Immediate &src);
336 void mov(Type Ty, typename Traits::GPRRegister dst, 337 void mov(Type Ty, typename Traits::GPRRegister dst,
337 typename Traits::GPRRegister src); 338 typename Traits::GPRRegister src);
338
339 void mov(Type Ty, typename Traits::GPRRegister dst, 339 void mov(Type Ty, typename Traits::GPRRegister dst,
340 const typename Traits::Address &src); 340 const typename Traits::Address &src);
341 void mov(Type Ty, const typename Traits::Address &dst, 341 void mov(Type Ty, const typename Traits::Address &dst,
342 typename Traits::GPRRegister src); 342 typename Traits::GPRRegister src);
343 void mov(Type Ty, const typename Traits::Address &dst, const Immediate &imm); 343 void mov(Type Ty, const typename Traits::Address &dst, const Immediate &imm);
344 344
345 void movzx(Type Ty, typename Traits::GPRRegister dst, 345 void movzx(Type Ty, typename Traits::GPRRegister dst,
346 typename Traits::GPRRegister src); 346 typename Traits::GPRRegister src);
347 void movzx(Type Ty, typename Traits::GPRRegister dst, 347 void movzx(Type Ty, typename Traits::GPRRegister dst,
348 const typename Traits::Address &src); 348 const typename Traits::Address &src);
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 817
818 void ret(); 818 void ret();
819 void ret(const Immediate &imm); 819 void ret(const Immediate &imm);
820 820
821 // 'size' indicates size in bytes and must be in the range 1..8. 821 // 'size' indicates size in bytes and must be in the range 1..8.
822 void nop(int size = 1); 822 void nop(int size = 1);
823 void int3(); 823 void int3();
824 void hlt(); 824 void hlt();
825 void ud2(); 825 void ud2();
826 826
827 // j(Label) is fully tested.
828 // j(ConstantRelocatable) is not tested as the test can not easily create such
829 // an argument.
827 void j(typename Traits::Cond::BrCond condition, Label *label, 830 void j(typename Traits::Cond::BrCond condition, Label *label,
828 bool near = kFarJump); 831 bool near = kFarJump);
829 void j(typename Traits::Cond::BrCond condition, 832 void j(typename Traits::Cond::BrCond condition,
830 const ConstantRelocatable *label); 833 const ConstantRelocatable *label);
831 834
832 void jmp(typename Traits::GPRRegister reg); 835 void jmp(typename Traits::GPRRegister reg);
833 void jmp(Label *label, bool near = kFarJump); 836 void jmp(Label *label, bool near = kFarJump);
834 void jmp(const ConstantRelocatable *label); 837 void jmp(const ConstantRelocatable *label);
835 838
836 void mfence(); 839 void mfence();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
946 emitUint8(0x66); 949 emitUint8(0x66);
947 } 950 }
948 951
949 } // end of namespace X86Internal 952 } // end of namespace X86Internal
950 953
951 } // end of namespace Ice 954 } // end of namespace Ice
952 955
953 #include "IceAssemblerX86BaseImpl.h" 956 #include "IceAssemblerX86BaseImpl.h"
954 957
955 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H 958 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H
OLDNEW
« no previous file with comments | « Makefile.standalone ('k') | unittest/IceAssemblerX8632Test.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698