Mercurial > hg > graal-compiler
changeset 13587:40e81cba9e08
renamed movzx/movsx instructions; removed duplicate movswl; added movzbl
author | twisti |
---|---|
date | Thu, 09 Jan 2014 20:14:11 -0800 |
parents | 7737fbb055b0 |
children | 8aee7169dbe4 |
files | graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Arithmetic.java graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CharArrayEqualsOp.java graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java |
diffstat | 5 files changed, 20 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Thu Jan 09 20:04:55 2014 -0800 +++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Thu Jan 09 20:14:11 2014 -0800 @@ -787,7 +787,6 @@ emitByte(0x70 | cc.getValue()); emitByte((int) ((disp - shortSize) & 0xFF)); } else { - l.addPatchAt(codeBuffer.position()); emitByte(0x70 | cc.getValue()); emitByte(0); @@ -1021,14 +1020,14 @@ } } - public final void movsxb(Register dst, AMD64Address src) { + public final void movsbl(Register dst, AMD64Address src) { prefix(src, dst); emitByte(0x0F); emitByte(0xBE); emitOperandHelper(dst, src); } - public final void movsxb(Register dst, Register src) { + public final void movsbl(Register dst, Register src) { int encode = prefixAndEncode(dst.encoding, src.encoding, true); emitByte(0x0F); emitByte(0xBE); @@ -1098,20 +1097,13 @@ emitOperandHelper(dst, src); } - public final void movsxw(Register dst, Register src) { + public final void movswl(Register dst, Register src) { int encode = prefixAndEncode(dst.encoding, src.encoding); emitByte(0x0F); emitByte(0xBF); emitByte(0xC0 | encode); } - public final void movsxw(Register dst, AMD64Address src) { - prefix(src, dst); - emitByte(0x0F); - emitByte(0xBF); - emitOperandHelper(dst, src); - } - public final void movw(AMD64Address dst, int imm16) { emitByte(0x66); // switch to 16-bit mode prefix(dst); @@ -1127,7 +1119,14 @@ emitOperandHelper(src, dst); } - public final void movzxl(Register dst, AMD64Address src) { + public final void movzbl(Register dst, AMD64Address src) { + prefix(src, dst); + emitByte(0x0F); + emitByte(0xB6); + emitOperandHelper(dst, src); + } + + public final void movzwl(Register dst, AMD64Address src) { prefix(src, dst); emitByte(0x0F); emitByte(0xB7);
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java Thu Jan 09 20:04:55 2014 -0800 +++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java Thu Jan 09 20:14:11 2014 -0800 @@ -168,7 +168,7 @@ } public final void signExtendShort(Register reg) { - movsxw(reg, reg); + movswl(reg, reg); } public void movflt(Register dst, Register src) {
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Arithmetic.java Thu Jan 09 20:04:55 2014 -0800 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Arithmetic.java Thu Jan 09 20:14:11 2014 -0800 @@ -496,10 +496,10 @@ break; case I2B: - masm.movsxb(asIntReg(dst), asIntReg(src)); + masm.movsbl(asIntReg(dst), asIntReg(src)); break; case I2S: - masm.movsxw(asIntReg(dst), asIntReg(src)); + masm.movswl(asIntReg(dst), asIntReg(src)); break; case I2L: masm.movslq(asLongReg(dst), asIntReg(src)); @@ -756,10 +756,10 @@ break; case I2B: - masm.movsxb(asIntReg(dst), (AMD64Address) crb.asIntAddr(src)); + masm.movsbl(asIntReg(dst), (AMD64Address) crb.asIntAddr(src)); break; case I2S: - masm.movsxw(asIntReg(dst), (AMD64Address) crb.asIntAddr(src)); + masm.movswl(asIntReg(dst), (AMD64Address) crb.asIntAddr(src)); break; case I2L: masm.movslq(asLongReg(dst), (AMD64Address) crb.asIntAddr(src));
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CharArrayEqualsOp.java Thu Jan 09 20:04:55 2014 -0800 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CharArrayEqualsOp.java Thu Jan 09 20:14:11 2014 -0800 @@ -145,8 +145,8 @@ masm.bind(compareChar); masm.testl(result, 0x2); // tail char masm.jccb(ConditionFlag.Zero, trueLabel); - masm.movzxl(temp, new AMD64Address(array1, 0)); - masm.movzxl(length, new AMD64Address(array2, 0)); + masm.movzwl(temp, new AMD64Address(array1, 0)); + masm.movzwl(length, new AMD64Address(array2, 0)); masm.cmpl(temp, length); masm.jccb(ConditionFlag.NotEqual, falseLabel);
--- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Thu Jan 09 20:04:55 2014 -0800 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Thu Jan 09 20:14:11 2014 -0800 @@ -140,10 +140,10 @@ switch (kind) { case Boolean: case Byte: - masm.movsxb(asRegister(result), address.toAddress()); + masm.movsbl(asRegister(result), address.toAddress()); break; case Char: - masm.movzxl(asRegister(result), address.toAddress()); + masm.movzwl(asRegister(result), address.toAddress()); break; case Short: masm.movswl(asRegister(result), address.toAddress());