Page 1 of 1

[6.30 x86] Inconsistency in quad variable depending on the backend

Posted: Sun Mar 01, 2026 12:57 pm
by breeze4me
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)

Re: [6.30 x86] Inconsistency in quad variable depending on the backend

Posted: Sun Mar 01, 2026 2:10 pm
by mk-soft
Solution until repair.

Code: Select all

Procedure a(p.q)