Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
2366-beam_disasm-Resolve-live-registers.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2366-beam_disasm-Resolve-live-registers.patch of Package erlang
From 68c509c99a89631cedfabc426a5298894048b2e0 Mon Sep 17 00:00:00 2001 From: Michael Davis <mcarsondavis@gmail.com> Date: Thu, 10 Nov 2022 15:49:47 -0600 Subject: [PATCH 6/8] beam_disasm: Resolve live registers `beam_validator:validate_live/2` expects live registers to be a non-negative integer. This change unwraps the `{u,_}` tag for some instructions which did not previously do this unwrapping: - bs_get_tail/3 - bs_get_position/3 - bs_start_match4/4 --- lib/compiler/src/beam_disasm.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/compiler/src/beam_disasm.erl b/lib/compiler/src/beam_disasm.erl index f7fd1b509c..6a5ec15d31 100644 --- a/lib/compiler/src/beam_disasm.erl +++ b/lib/compiler/src/beam_disasm.erl @@ -1239,9 +1239,9 @@ resolve_inst({put_tuple2,[Dst,{{z,1},{u,_},List0}]},_,_,_) -> {put_tuple2,Dst,{list,List}}; resolve_inst({bs_start_match3=I,[Fail,Bin,{u,Live},Dst]},_,_,_) -> {test,I,Fail,Live,[Bin],Dst}; -resolve_inst({bs_get_tail,[Src,Dst,Live]},_,_,_) -> +resolve_inst({bs_get_tail,[Src,Dst,{u,Live}]},_,_,_) -> {bs_get_tail,Src,Dst,Live}; -resolve_inst({bs_get_position,[Src,Dst,Live]},_,_,_) -> +resolve_inst({bs_get_position,[Src,Dst,{u,Live}]},_,_,_) -> {bs_get_position,Src,Dst,Live}; resolve_inst({bs_set_position,[Src,Dst]},_,_,_) -> {bs_set_position,Src,Dst}; @@ -1250,7 +1250,7 @@ resolve_inst({bs_set_position,[Src,Dst]},_,_,_) -> %% OTP 23. %% -resolve_inst({bs_start_match4,[Fail,Live,Src,Dst]},_,_,_) -> +resolve_inst({bs_start_match4,[Fail,{u,Live},Src,Dst]},_,_,_) -> {bs_start_match4,Fail,Live,Src,Dst}; resolve_inst({swap,[_,_]=List},_,_,_) -> [R1,R2] = resolve_args(List), -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor