| Index: src/x64/assembler-x64.h
|
| diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h
|
| index b4882571e21af0782772b69b9aa4cce37979a945..b75602c75ca904ebbabdaf6e7eca9f961562f7d4 100644
|
| --- a/src/x64/assembler-x64.h
|
| +++ b/src/x64/assembler-x64.h
|
| @@ -77,7 +77,7 @@ static inline bool is_int32(int64_t x) {
|
|
|
| struct Register {
|
| static Register toRegister(int code) {
|
| - Register r = {code};
|
| + Register r = { code };
|
| return r;
|
| }
|
| bool is_valid() const { return 0 <= code_ && code_ < 16; }
|
| @@ -89,11 +89,11 @@ struct Register {
|
| return code_;
|
| }
|
| int bit() const {
|
| - UNIMPLEMENTED();
|
| - return 0;
|
| + return 1 << code_;
|
| }
|
|
|
| - // (unfortunately we can't make this private in a struct)
|
| + // (unfortunately we can't make this private in a struct when initializing
|
| + // by assignment.)
|
| int code_;
|
| };
|
|
|
| @@ -250,7 +250,7 @@ enum ScaleFactor {
|
| class Operand BASE_EMBEDDED {
|
| public:
|
| // [base + disp/r]
|
| - INLINE(Operand(Register base, int32_t disp));
|
| + Operand(Register base, int32_t disp);
|
|
|
| // [base + index*scale + disp/r]
|
| Operand(Register base,
|
| @@ -434,7 +434,8 @@ class Assembler : public Malloced {
|
|
|
| // Move 64 bit register value to 64-bit memory location.
|
| void movq(const Operand& dst, Register src);
|
| -
|
| + // Move sign extended immediate to memory location.
|
| + void movq(const Operand& dst, Immediate value);
|
| // New x64 instructions to load a 64-bit immediate into a register.
|
| // All 64-bit immediates must have a relocation mode.
|
| void movq(Register dst, void* ptr, RelocInfo::Mode rmode);
|
| @@ -444,7 +445,6 @@ class Assembler : public Malloced {
|
| void movq(Register dst, ExternalReference ext);
|
| void movq(Register dst, Handle<Object> handle, RelocInfo::Mode rmode);
|
|
|
| -
|
| // New x64 instruction to load from an immediate 64-bit pointer into RAX.
|
| void load_rax(void* ptr, RelocInfo::Mode rmode);
|
| void load_rax(ExternalReference ext);
|
| @@ -647,6 +647,7 @@ class Assembler : public Malloced {
|
| void testl(const Operand& op, Immediate mask);
|
| void testq(const Operand& op, Register reg);
|
| void testq(Register dst, Register src);
|
| + void testq(Register dst, Immediate mask);
|
|
|
| void xor_(Register dst, Register src) {
|
| arithmetic_op(0x33, dst, src);
|
|
|