diff --git a/bindings/python/sample.py b/bindings/python/sample.py index 2e2830ee..3112b26f 100755 --- a/bindings/python/sample.py +++ b/bindings/python/sample.py @@ -24,9 +24,9 @@ def test_ks(arch, mode, code, syntax=0): def test_sym_resolver(): def sym_resolver(symbol, value): # is this the missing symbol we want to handle? - if symbol == "_l1": + if symbol == b"_l2": # put value of this symbol in @value - value = 0x1002 + value.contents.value = 0x1002 # we handled this symbol, so return true return True @@ -38,7 +38,7 @@ def sym_resolver(symbol, value): # register callback for symbol resolver ks.sym_resolver = sym_resolver - CODE = b"jmp _l1; nop; _l1:" + CODE = b"jmp _l2; nop; _l1:" encoding, count = ks.asm(CODE, 0x1000) print("%s = [ " % CODE, end='') diff --git a/llvm/keystone/ks.cpp b/llvm/keystone/ks.cpp index 453df774..bfb0f6a8 100644 --- a/llvm/keystone/ks.cpp +++ b/llvm/keystone/ks.cpp @@ -522,7 +522,6 @@ ks_err ks_close(ks_engine *ks) KEYSTONE_EXPORT ks_err ks_option(ks_engine *ks, ks_opt_type type, size_t value) { - ks->MAI->setRadix(16); switch(type) { case KS_OPT_SYNTAX: if (ks->arch != KS_ARCH_X86) diff --git a/llvm/lib/MC/MCAsmInfo.cpp b/llvm/lib/MC/MCAsmInfo.cpp index 0939eb86..d7c83243 100644 --- a/llvm/lib/MC/MCAsmInfo.cpp +++ b/llvm/lib/MC/MCAsmInfo.cpp @@ -27,6 +27,7 @@ MCAsmInfo::MCAsmInfo() { CalleeSaveStackSlotSize = 4; IsLittleEndian = true; + Radix = 10; StackGrowsUp = false; HasSubsectionsViaSymbols = false; HasMachoZeroFillDirective = false; diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index 2e656e7d..4972cbc5 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -208,7 +208,7 @@ bool MCAssembler::evaluateFixup(const MCAsmLayout &Layout, ks_sym_resolver resolver = (ks_sym_resolver)KsSymResolver; if (resolver(Sym.getName().str().c_str(), &imm)) { // resolver handled this symbol - Value = imm; + Value += imm; IsResolved = true; } else { // resolver did not handle this symbol diff --git a/suite/regress/arm_sym_resolver.py b/suite/regress/arm_sym_resolver.py index d43e1530..89dfb8ec 100755 --- a/suite/regress/arm_sym_resolver.py +++ b/suite/regress/arm_sym_resolver.py @@ -12,11 +12,11 @@ class TestARM(regress.RegressTest): def runTest(self): def sym_resolver(symbol, value): - if symbol == "symBackward": + if symbol == b"symBackward": value[0] = 0x0 return True - if symbol == "symForward": + if symbol == b"symForward": value[0] = 0x20 return True diff --git a/suite/regress/arm_sym_resolver_thumb.py b/suite/regress/arm_sym_resolver_thumb.py index 47a3da2a..3cecc87d 100755 --- a/suite/regress/arm_sym_resolver_thumb.py +++ b/suite/regress/arm_sym_resolver_thumb.py @@ -12,11 +12,11 @@ class TestARM(regress.RegressTest): def runTest(self): def sym_resolver(symbol, value): - if symbol == "symBackward": + if symbol == b"symBackward": value[0] = 0x0 return True - if symbol == "symForward": + if symbol == b"symForward": value[0] = 0x20 return True diff --git a/suite/regress/x64_sym_resolver.py b/suite/regress/x64_sym_resolver.py index 1bf6a121..4f44561a 100755 --- a/suite/regress/x64_sym_resolver.py +++ b/suite/regress/x64_sym_resolver.py @@ -13,11 +13,11 @@ class TestX86(regress.RegressTest): def runTest(self): def sym_resolver(symbol, value): # is this the missing symbol we want to handle? - if symbol == "ZwQueryInformationProcess": + if symbol == b"ZwQueryInformationProcess": # put value of this symbol in @value - value = 0x7FF98A050840 + value.contents.value = 0x7FF98A050840 # we handled this symbol, so return true - print 'sym_resolver called!' + print('sym_resolver called!') return True # we did not handle this symbol, so return false diff --git a/suite/regress/x86_call_ptr_sym.py b/suite/regress/x86_call_ptr_sym.py index 0d3afb71..4470b216 100755 --- a/suite/regress/x86_call_ptr_sym.py +++ b/suite/regress/x86_call_ptr_sym.py @@ -12,7 +12,7 @@ def sym_resolver(symbol, value): if symbol == b'GetPhoneBuildString': - value = 0x41b000 + value.contents.value = 0x41b000 return True return False diff --git a/suite/regress/x86_issue293.py b/suite/regress/x86_issue293.py index b1037deb..cf9863b8 100755 --- a/suite/regress/x86_issue293.py +++ b/suite/regress/x86_issue293.py @@ -17,7 +17,7 @@ def runTest(self): try: # An exception should be raised from the jnz exit:; being bad encoding, count = ks.asm(b"jnz exit:; add eax, ebx; exit: ret") - except Exception, e: + except Exception as e: return raise Exception