This PR provides @qpu decorator without ast.parse and compile.
Inconveniently, current @qpu decorator hides file & line where raises AssembleError.
Traceback (most recent call last):
File "test.py", line 33, in <module>
print_qbin(boilerplate, None, int_ops, 0, 0)
File "/home/pi/py-videocore/videocore/assembler.py", line 1176, in print_qbin
program = assemble(program, *args, **kwargs)
File "/home/pi/py-videocore/videocore/assembler.py", line 1170, in assemble
f(asm, *args, **kwargs)
File "<qpu>", line 265, in boilerplate
File "<qpu>", line 259, in int_ops
File "/home/pi/py-videocore/videocore/assembler.py", line 848, in _emit_add
return self._add._emit(*args, **kwargs)
File "/home/pi/py-videocore/videocore/assembler.py", line 530, in _emit
self._encode_read_operands(opd1, opd2)
File "/home/pi/py-videocore/videocore/assembler.py", line 497, in _encode_read_operands
raise AssembleError('Too many regfile A source operand')
videocore.assembler.AssembleError: Too many regfile A source operand
By this PR, backtrace can keep this information.
Traceback (most recent call last):
File "test.py", line 33, in <module>
print_qbin(boilerplate, None, int_ops, 0, 0)
File "/home/pi/py-videocore/videocore/assembler.py", line 1149, in print_qbin
program = assemble(program, *args, **kwargs)
File "/home/pi/py-videocore/videocore/assembler.py", line 1143, in assemble
f(asm, *args, **kwargs)
File "/home/pi/py-videocore/videocore/assembler.py", line 1135, in decorated
f(asm, *args, **kwargs)
File "test.py", line 17, in boilerplate
f(asm)
File "/home/pi/py-videocore/videocore/assembler.py", line 1135, in decorated
f(asm, *args, **kwargs)
File "test.py", line 26, in int_ops
bxor(null, ra0, ra1)
File "/home/pi/py-videocore/videocore/assembler.py", line 848, in _emit_add
return self._add._emit(*args, **kwargs)
File "/home/pi/py-videocore/videocore/assembler.py", line 530, in _emit
self._encode_read_operands(opd1, opd2)
File "/home/pi/py-videocore/videocore/assembler.py", line 497, in _encode_read_operands
raise AssembleError('Too many regfile A source operand')
videocore.assembler.AssembleError: Too many regfile A source operand
This PR provides
@qpu
decorator withoutast.parse
andcompile
.Inconveniently, current
@qpu
decorator hides file & line where raisesAssembleError
.By this PR, backtrace can keep this information.