1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
diff -crB decuda/Instruction.py decudaplus/Instruction.py
*** decuda/Instruction.py 2010-07-24 05:28:03.000000000 -0700
--- decudaplus/Instruction.py 2010-09-27 12:52:24.000000000 -0700
***************
*** 401,406 ****
--- 401,409 ----
value = self.bits(0,0x001F0000)
else:
value = self.bits(0,0x007F0000)
+ if len(self.inst)==2:
+ if self.bits(1,0x00200000):
+ t_offset = 0
if opt_imm and self.fullinst and self.bits(1,0x00100000):
# Operand 3 is immediate
diff -crB decuda/Operand.py decudaplus/Operand.py
*** decuda/Operand.py 2010-07-24 05:28:03.000000000 -0700
--- decudaplus/Operand.py 2010-09-27 12:52:24.000000000 -0700
***************
*** 176,183 ****
rv.write(("0x%06x") % value)
elif self.offset != None:
rv.write(("%s[$ofs%i%s%s0x%0"+width+"x]") % (_indir[self.indirection], self.offset, _ofs_inc[self.offset_inc], times, value))
! elif self.indirection == OP_INDIRECTION_SHARED and self.size==16 and value in _param_space:
! rv.write(_param_space[value])
elif self.indirection == OP_INDIRECTION_INTERNAL and value in _ldgpu_ops:
rv.write(_ldgpu_ops[value])
else:
--- 176,183 ----
rv.write(("0x%06x") % value)
elif self.offset != None:
rv.write(("%s[$ofs%i%s%s0x%0"+width+"x]") % (_indir[self.indirection], self.offset, _ofs_inc[self.offset_inc], times, value))
! elif self.indirection == OP_INDIRECTION_SHARED and self.size==16 and value/2 in _param_space:
! rv.write(_param_space[value/2])
elif self.indirection == OP_INDIRECTION_INTERNAL and value in _ldgpu_ops:
rv.write(_ldgpu_ops[value])
else:
|