Guest User

Untitled

a guest
Aug 10th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. Demonstrating the bug.
  2.  
  3. The hipe_bug.S file was generated using the new SSA-based compiler.
  4.  
  5. Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
  6.  
  7. Eshell V10.0 (abort with ^G)
  8. 1> c(hipe_bug, [from_asm,native]), hipe_bug:run().
  9. ** exception error: {badmap,{cons,{arg,0},nil}}
  10. in function hipe_bug:dig_out_fc/1
  11. 2> c(hipe_bug, [from_asm]), hipe_bug:run().
  12. {cons,{arg,0},nil}
  13. 3>
  14.  
  15. The problem seems to be in the following instruction:
  16.  
  17. {get_map_elements,{f,5},
  18. {x,0},
  19. {list,[{literal,{x,1}},{x,0},{literal,{x,0}},{x,1}]}}.
  20.  
  21. Note that the source register for the map ({x,0}) is also one of the destinations.
  22. BEAM has no problem with this, as it executes the instruction atomically.
Add Comment
Please, Sign In to add comment