OLD | NEW |
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 are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // 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 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 : ((hint == not_taken) ? taken : not_taken); | 187 : ((hint == not_taken) ? taken : not_taken); |
188 } | 188 } |
189 | 189 |
190 | 190 |
191 // ----------------------------------------------------------------------------- | 191 // ----------------------------------------------------------------------------- |
192 // Machine instruction Immediates | 192 // Machine instruction Immediates |
193 | 193 |
194 class Immediate BASE_EMBEDDED { | 194 class Immediate BASE_EMBEDDED { |
195 public: | 195 public: |
196 inline explicit Immediate(int x); | 196 inline explicit Immediate(int x); |
197 inline explicit Immediate(const char* s); | |
198 inline explicit Immediate(const ExternalReference& ext); | 197 inline explicit Immediate(const ExternalReference& ext); |
199 inline explicit Immediate(Handle<Object> handle); | 198 inline explicit Immediate(Handle<Object> handle); |
200 inline explicit Immediate(Smi* value); | 199 inline explicit Immediate(Smi* value); |
201 | 200 |
202 static Immediate CodeRelativeOffset(Label* label) { | 201 static Immediate CodeRelativeOffset(Label* label) { |
203 return Immediate(label); | 202 return Immediate(label); |
204 } | 203 } |
205 | 204 |
206 bool is_zero() const { return x_ == 0 && rmode_ == RelocInfo::NONE; } | 205 bool is_zero() const { return x_ == 0 && rmode_ == RelocInfo::NONE; } |
207 bool is_int8() const { | 206 bool is_int8() const { |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 void cmov(Condition cc, Register dst, int32_t imm32); | 543 void cmov(Condition cc, Register dst, int32_t imm32); |
545 void cmov(Condition cc, Register dst, Handle<Object> handle); | 544 void cmov(Condition cc, Register dst, Handle<Object> handle); |
546 void cmov(Condition cc, Register dst, const Operand& src); | 545 void cmov(Condition cc, Register dst, const Operand& src); |
547 | 546 |
548 // Flag management. | 547 // Flag management. |
549 void cld(); | 548 void cld(); |
550 | 549 |
551 // Repetitive string instructions. | 550 // Repetitive string instructions. |
552 void rep_movs(); | 551 void rep_movs(); |
553 void rep_stos(); | 552 void rep_stos(); |
| 553 void stos(); |
554 | 554 |
555 // Exchange two registers | 555 // Exchange two registers |
556 void xchg(Register dst, Register src); | 556 void xchg(Register dst, Register src); |
557 | 557 |
558 // Arithmetics | 558 // Arithmetics |
559 void adc(Register dst, int32_t imm32); | 559 void adc(Register dst, int32_t imm32); |
560 void adc(Register dst, const Operand& src); | 560 void adc(Register dst, const Operand& src); |
561 | 561 |
562 void add(Register dst, const Operand& src); | 562 void add(Register dst, const Operand& src); |
563 void add(const Operand& dst, const Immediate& x); | 563 void add(const Operand& dst, const Immediate& x); |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
932 private: | 932 private: |
933 Assembler* assembler_; | 933 Assembler* assembler_; |
934 #ifdef DEBUG | 934 #ifdef DEBUG |
935 int space_before_; | 935 int space_before_; |
936 #endif | 936 #endif |
937 }; | 937 }; |
938 | 938 |
939 } } // namespace v8::internal | 939 } } // namespace v8::internal |
940 | 940 |
941 #endif // V8_IA32_ASSEMBLER_IA32_H_ | 941 #endif // V8_IA32_ASSEMBLER_IA32_H_ |
OLD | NEW |