[6.30 x86] Inconsistency in quad variable depending on the backend
Posted: Sun Mar 01, 2026 12:57 pm
See the code.
Code: Select all
CompilerIf #PB_Compiler_Processor <> #PB_Processor_x86
CompilerError "Use PB x86"
CompilerEndIf
Procedure a(*p)
Protected s.q = $1122334455667788
Protected key.q = $224488ffaabbccdd
Protected r.q = ((s + *p) ! key)
; v_r=(((integer)(((quad)v_s+(quad)(integer)p_p))^v_key));
; fixed code.
; ! v_r=(((quad)(((quad)v_s+(quad)(integer)p_p))^v_key));
Debug Hex(r, #PB_Quad) ; 3366BBBBFC99140B Asm backend
; 224488FFFC99140B C backend
; ShowMemoryViewer(@r, 8)
; CallDebugger
EndProcedure
a(12345678)