mirror of
https://github.com/herumi/xbyak
synced 2024-11-20 16:06:14 -07:00
fix fatal error of sub rsp, 1000
This commit is contained in:
parent
412ddc63e0
commit
2965c4c0ba
6 changed files with 417 additions and 1927 deletions
|
@ -1,5 +1,5 @@
|
|||
|
||||
C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 2.25
|
||||
C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 2.26
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
◎概要
|
||||
|
@ -199,6 +199,7 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から
|
|||
-----------------------------------------------------------------------------
|
||||
◎履歴
|
||||
|
||||
2010/05/24 ver 2.26 fix sub(rsp, 1000)
|
||||
2010/04/26 ver 2.25 add jc/jnc(I forgot to implement them...)
|
||||
2010/04/16 ver 2.24 change the prototype of rewrite() method
|
||||
2010/04/15 ver 2.23 fix align() and xbyak_util.h for Mac
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
Xbyak 2.25 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
|
||||
Xbyak 2.26 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
<Abstract>
|
||||
|
@ -148,6 +148,7 @@ http://www.opensource.org/licenses/bsd-license.php
|
|||
-----------------------------------------------------------------------------
|
||||
<History>
|
||||
|
||||
2010/May/24 ver 2.26 fix sub(rsp, 1000)
|
||||
2010/Apr/26 ver 2.25 add jc/jnc(I forgot to implement them...)
|
||||
2010/Apr/16 ver 2.24 change the prototype of rewrite() method
|
||||
2010/Apr/15 ver 2.23 fix align() and xbyak_util.h for Mac
|
||||
|
@ -183,5 +184,5 @@ http://www.opensource.org/licenses/bsd-license.php
|
|||
MITSUNARI Shigeo(herumi at nifty dot com)
|
||||
|
||||
---
|
||||
$Revision: 1.45 $
|
||||
$Date: 2010/04/26 06:40:29 $
|
||||
$Revision: 1.46 $
|
||||
$Date: 2010/05/24 06:13:44 $
|
||||
|
|
|
@ -746,6 +746,8 @@ class Test {
|
|||
|
||||
put(p, REG64|RAX, IMM8|NEG8);
|
||||
put(p, REG64|RAX, "0x12345678", "0x12345678");
|
||||
put(p, REG64|RAX, "192", "192");
|
||||
put(p, REG64|RAX, "0x1234", "0x1234");
|
||||
put(p, REG32|EAX, IMM8|IMM32|NEG8);
|
||||
put(p, REG16|AX, IMM8|IMM16|NEG8|NEG16);
|
||||
put(p, REG8|REG8_3|AL, IMM|NEG8);
|
||||
|
|
2320
test/nm.cpp
2320
test/nm.cpp
File diff suppressed because it is too large
Load diff
|
@ -4,9 +4,9 @@
|
|||
@file xbyak.h
|
||||
@brief Xbyak ; JIT assembler for x86(IA32)/x64 by C++
|
||||
@author herumi
|
||||
@version $Revision: 1.186 $
|
||||
@version $Revision: 1.188 $
|
||||
@url http://homepage1.nifty.com/herumi/soft/xbyak.html
|
||||
@date $Date: 2010/04/26 06:40:29 $
|
||||
@date $Date: 2010/05/24 06:13:44 $
|
||||
@note modified new BSD license
|
||||
http://www.opensource.org/licenses/bsd-license.php
|
||||
*/
|
||||
|
@ -55,7 +55,7 @@ namespace Xbyak {
|
|||
|
||||
enum {
|
||||
DEFAULT_MAX_CODE_SIZE = 2048,
|
||||
VERSION = 0x2250, /* 0xABCD = A.BC(D) */
|
||||
VERSION = 0x2260, /* 0xABCD = A.BC(D) */
|
||||
};
|
||||
|
||||
#ifndef MIE_INTEGER_TYPE_DEFINED
|
||||
|
@ -987,7 +987,7 @@ private:
|
|||
uint32 immBit = inner::IsInDisp8(imm) ? 8 : isInDisp16(imm) ? 16 : 32;
|
||||
if (op.getBit() < immBit) throw ERR_IMM_IS_TOO_BIG;
|
||||
if (op.isREG()) {
|
||||
if (immBit == 16 && op.isBit(32)) immBit = 32; /* don't use MEM16 if 32bit mode */
|
||||
if (immBit == 16 && op.isBit(32|64)) immBit = 32; /* don't use MEM16 if 32/64bit mode */
|
||||
}
|
||||
if (op.isREG() && op.getIdx() == 0 && (op.getBit() == immBit || (op.isBit(64) && immBit == 32))) { // rax, eax, ax, al
|
||||
rex(op);
|
||||
|
@ -1394,7 +1394,7 @@ public:
|
|||
bool hasUndefinedLabel() const { return label_.hasUndefinedLabel(); }
|
||||
const uint8 *getCode() const
|
||||
{
|
||||
// assert(!hasUndefinedLabel());
|
||||
assert(!hasUndefinedLabel());
|
||||
// if (hasUndefinedLabel()) throw ERR_LABEL_IS_NOT_FOUND;
|
||||
return top_;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const char *getVersionString() const { return "2.25"; }
|
||||
const char *getVersionString() const { return "2.26"; }
|
||||
void packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); }
|
||||
void packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); }
|
||||
void packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); }
|
||||
|
|
Loading…
Reference in a new issue