DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦a9d4fb5bd⟧ TextFile

    Length: 65729 (0x100c1)
    Types: TextFile
    Notes: R1k Text-file segment

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦416b74742⟧ 
            └─⟦this⟧ 

TextFile

VERSION #3


\- OPCODE ASSIGNMENTS					          July 16, 1986


\- 0000 00xx xxxx xxxx	general purpose instruction
\-
\-   0000 0011 xxxx xxxx	     declarative instruction
\-   0000 0010 1xxx xxxx	     declarative instruction
\-
\-   0000 0010 0xxx xxxx	     execute
\-   0000 0001 xxxx xxxx	     execute
\-
\-   0000 0000 xxxx xxxx	     action



\- Instructions containing arguments:

\- @nonzero_lex_delta or @zero_lex_delta may also be given as argument forms
    
111l_llld_dddd_dddd	load,@lex_level_delta          !other_group !2/5..13
110l_llld_dddd_dddd	store,@lex_level_delta         !store_group 

101l_llzd_dddd_dddd	store_unchecked,@nonzero_lex_delta  !store_group
1010_000d_dddd_dddd	reference,@zero_lex_delta      !other_group !2

100l_llld_dddd_dddd	call,@lex_level_delta          !frame_group !inhibit_ibuff_fill  !5/7/9

0111_1ddd_dddd_dddd	jump,@pc_displacement          !jump_group !inhibit_ibuff_fill !3
0111_0ddd_dddd_dddd	jump_nonzero,@pc_displacement  !jump_group !2/3
0110_1ddd_dddd_dddd	jump_zero,@pc_displacement     !jump_group !2/3

0110_0ddd_dddd_dddd	indirect_literal,discrete,@pc_displacement !other_group !2
0101_1ddd_dddd_dddd	indirect_literal,float,@pc_displacement    !other_group !2
0101_0ddd_dddd_dddd	indirect_literal,any,@pc_displacement      !other_group 

0100_1vvv_vvvv_vvvv	short_literal,@literal_value  !other_group !1

0100_011c_cccc_cccc	jump_case,@case_maximum       !jump_group !inhibit_ibuff_fill !5

0100_0101_pppp_pppp	exit_subprogram,@new_top_offset   !frame_group !inhibit_ibuff_fill !6
0100_0100_pppp_pppp	exit_subprogram,@new_top_offset,with_result    !frame_group !inhibit_ibuff_fill !8
0100_0011_pppp_pppp	exit_subprogram,@new_top_offset,from_utility   !frame_group !inhibit_ibuff_fill !7
0100_0010_ffff_ffff	exit_subprogram,@new_top_offset,from_utility,with_result  !frame_group !inhibit_ibuff_fill !9
0100_0001_pppp_pppp	end_rendezvous,@parameter_count  !rendezvous_group  !inhibit_ibuff_fill 

0100_0000_ffff_ffff	unused

0011_111d_dddd_dddd	loop_increasing,@loop_displacement  !jump_group !inhibit_ibuff_fill !3/5

0011_1101_ffff_ffff	unused

0011_1100_ffff_ffff	execute,record,field_read,@field_number  !other_group !4/5

0011_1011_ffff_ffff	unused
0011_1010_ffff_ffff	unused
0011_1001_ffff_ffff	unused

0011_1000_ffff_ffff	execute,record,field_write,@field_number  !store_group 

0011_011d_dddd_dddd	loop_decreasing,@loop_displacement  !jump_group !inhibit_ibuff_fill !3/5

0011_0101_ffff_ffff	unused

0011_0100_ffff_ffff	execute,record,field_reference,@field_number   !other_group !2

0011_0011_ffff_ffff	unused
0011_0010_ffff_ffff	unused
0011_0001_ffff_ffff	unused

0011_0000_ffff_ffff	execute,record,field_type,@field_number   !other_group !2


0010_1111_ffff_ffff	execute,variant_record,field_append,variant,indirect,@field_number  !other_group 
0010_1110_ffff_ffff	execute,variant_record,field_read,variant,direct,@field_number      !other_group !5..8+

0010_1101_ffff_ffff	execute,variant_record,field_append,fixed,indirect,@field_number    !other_group 
0010_1100_ffff_ffff	execute,variant_record,field_read,fixed,direct,@field_number        !other_group !4..7

0010_1011_ffff_ffff	execute,variant_record,field_write,variant,indirect,@field_number      !store_group 
0010_1010_ffff_ffff	execute,variant_record,field_write,variant,direct,@field_number        !store_group 
0010_1001_ffff_ffff	execute,variant_record,field_write,fixed,indirect,@field_number        !store_group 
0010_1000_ffff_ffff	execute,variant_record,field_write,fixed,direct,@field_number          !store_group 

0010_0111_ffff_ffff	execute,variant_record,field_reference,variant,indirect,@field_number  !other_group !7..+
0010_0110_ffff_ffff	execute,variant_record,field_reference,variant,direct,@field_number    !other_group !5/6+
0010_0101_ffff_ffff	execute,variant_record,field_reference,fixed,indirect,@field_number    !other_group !5
0010_0100_ffff_ffff	execute,variant_record,field_reference,fixed,direct,@field_number      !other_group !2

0010_0011_ffff_ffff	execute,variant_record,field_type,@field_number        !other_group 
0010_0010_ffff_ffff	execute,variant_record,field_constrain,@field_number   !other_group 
0010_0001_ffff_ffff	execute,variant_record,set_bounds,@field_number        !other_group 
0010_0000_ffff_ffff	execute,variant_record,set_variant,@field_number       !other_group 

0001_1111_ffff_ffff	unused
0001_1110_ffff_ffff	unused
0001_1101_ffff_ffff	execute_immediate,reference_lex_1,@unsigned_immediate  !declare_group  !4/6/9
0001_1100_ffff_ffff	execute_immediate,run_utility,@unsigned_immediate  !frame_group  !9/13/5

0001_1011_ffff_ffff	execute,package,field_read,@field_number      !declare_group !3/9..13
0001_1010_ffff_ffff	execute,package,field_write,@field_number     !store_group 
0001_1001_ffff_ffff	execute,package,field_reference,@field_number !other_group !4
0001_1000_ffff_ffff	execute,package,field_execute,@field_number   !frame_group !inhibit_ibuff_fill  !5/10

0001_0111_ffff_ffff	execute,task,entry_call,@field_number         !rendezvous_group !inhibit_ibuff_fill 
0001_0110_ffff_ffff	execute,task,conditional_call,@field_number   !rendezvous_group 
0001_0101_ffff_ffff	execute,task,timed_call,@field_number         !rendezvous_group !inhibit_ibuff_fill 
0001_0100_ffff_ffff	execute,task,family_call,@field_number        !rendezvous_group !inhibit_ibuff_fill 
0001_0011_ffff_ffff	execute,task,family_cond,@field_number        !rendezvous_group 
0001_0010_ffff_ffff	execute,task,family_timed,@field_number       !rendezvous_group !inhibit_ibuff_fill 

0001_0001_ffff_ffff	execute,select,member_write,@field_number   !other_group !12/13
0001_0000_ffff_ffff	execute,select,guard_write,@field_number    !other_group !7

0000_1111_ffff_ffff	execute_immediate,equal,@unsigned_immediate          !other_group !1
0000_1110_ffff_ffff	execute_immediate,not_equal,@unsigned_immediate      !other_group !1
0000_1101_ffff_ffff	execute_immediate,less,@unsigned_immediate           !other_group !1
0000_1100_ffff_ffff	execute_immediate,greater_equal,@unsigned_immediate  !other_group !2
0000_1011_ffff_ffff	execute_immediate,case_compare,@unsigned_immediate   !other_group !1
0000_1010_1fff_ffff	execute_immediate,plus,@negative_immediate           !other_group !1
0000_1010_0fff_ffff	execute_immediate,plus,@positive_immediate           !other_group !1

0000_1001_11ff_ffff	execute_immediate,binary_scale,@limited_negative  !other_group !2/4
0000_1001_10ff_ffff	execute_immediate,logical_shift,@limited_positive !other_group !2
0000_1001_01ff_ffff	execute_immediate,logical_shift,@limited_negative !other_group !2
0000_1001_00ff_ffff	execute_immediate,binary_scale,@limited_positive  !other_group !3/4

0000_1000_ffff_ffff	execute_immediate,raise,@unsigned_immediate !jump_group !inhibit_ibuff_fill

0000_0111_ffff_ffff	execute_immediate,set_value,@unsigned_immediate  !declare_group
0000_0110_ffff_ffff	execute_immediate,set_value_unchecked,@unsigned_immediate  !declare_group
0000_0101_ffff_ffff	execute_immediate,set_value_visible,@unsigned_immediate  !declare_group
0000_0100_ffff_ffff	execute_immediate,set_value_visible_unchecked,@unsigned_immediate  !declare_group

\f



\- Discrete declarative instructions

0000_0011_1111_1111	unused
0000_0011_1111_1110	declare_type,discrete,defined,visible  !declare_group !8..10
0000_0011_1111_1101	declare_type,discrete,defined          !declare_group !8..10
0000_0011_1111_1100	unused
0000_0011_1111_1011	declare_type,discrete,defined,visible,with_size  !declare_group !10..12
0000_0011_1111_1010	declare_type,discrete,defined,with_size          !declare_group !10..12
0000_0011_1111_1001	declare_type,discrete,constrained,visible  !declare_group !10
0000_0011_1111_1000	declare_type,discrete,constrained          !declare_group !10
0000_0011_1111_0111	unused
0000_0011_1111_0110	declare_type,discrete,incomplete,visible  !declare_group !6
0000_0011_1111_0101	declare_type,discrete,incomplete          !declare_group !6

0000_0011_1111_0100	unused
0000_0011_1111_0011	declare_type,discrete,incomplete,visible,unsigned  !declare_group !6
0000_0011_1111_0010	declare_type,discrete,incomplete,unsigned          !declare_group !6

0000_0011_1111_0001	declare_variable,discrete,with_value          !declare_group
0000_0011_1111_0000	declare_variable,discrete,visible,with_value  !declare_group

0000_0011_1110_1111	complete_type,discrete,by_defining       !declare_group !9..13
0000_0011_1110_1110	complete_type,discrete,by_renaming       !declare_group !13
0000_0011_1110_1101	complete_type,discrete,by_constraining   !declare_group !14..15
0000_0011_1110_1100	declare_variable,discrete,with_value,with_constraint  !declare_group

0000_0011_1110_1011	declare_variable,discrete             !declare_group !1
0000_0011_1110_1010	declare_variable,discrete,visible     !declare_group !2
0000_0011_1110_1001	declare_variable,discrete,duplicate   !declare_group !1
0000_0011_1110_1000	declare_variable,discrete,visible,with_value,with_constraint  !declare_group

\f



\- Float declarative instructions

0000_0011_1110_0111	unused
0000_0011_1110_0110	declare_type,float,defined,visible      !declare_group 
0000_0011_1110_0101	declare_type,float,defined              !declare_group 
0000_0011_1110_0100	declare_type,float,constrained,visible  !declare_group 
0000_0011_1110_0011	declare_type,float,constrained          !declare_group 
0000_0011_1110_0010	unused
0000_0011_1110_0001	declare_type,float,incomplete,visible   !declare_group 
0000_0011_1110_0000	declare_type,float,incomplete           !declare_group 

0000_0011_1101_1111	declare_variable,float,with_value       !declare_group
0000_0011_1101_1110	complete_type,float,by_defining         !declare_group 
0000_0011_1101_1101	complete_type,float,by_renaming         !declare_group 
0000_0011_1101_1100	complete_type,float,by_constraining     !declare_group 

0000_0011_1101_1011	declare_variable,float,visible,with_value  !declare_group

0000_0011_1101_1010	declare_variable,float            !declare_group 
0000_0011_1101_1001	declare_variable,float,visible    !declare_group 
0000_0011_1101_1000	declare_variable,float,duplicate  !declare_group 

\f



\- Access declarative instructions

0000_0011_1101_0111	unused
0000_0011_1101_0110	declare_type,access,defined,visible  !declare_group 
0000_0011_1101_0101	declare_type,access,defined          !declare_group 
0000_0011_1101_0100	declare_type,access,defined,visible,accesses_protected  !declare_group 
0000_0011_1101_0011	declare_type,access,defined,accesses_protected         !declare_group 
0000_0011_1101_0010	declare_type,access,constrained,visible !declare_group 
0000_0011_1101_0001	declare_type,access,constrained         !declare_group 
0000_0011_1101_0000	unused

0000_0011_1100_1111	declare_type,access,incomplete,visible  !declare_group 
0000_0011_1100_1110	declare_type,access,incomplete          !declare_group 
0000_0011_1100_1101	declare_type,access,incomplete,visible,accesses_protected   !declare_group 
0000_0011_1100_1100	declare_type,access,incomplete,accesses_protected           !declare_group 

0000_0011_1100_1011	unused
0000_0011_1100_1010	unused
0000_0011_1100_1001	unused
0000_0011_1100_1000	unused

0000_0011_1100_0111	complete_type,access,by_defining      !declare_group 
0000_0011_1100_0110	complete_type,access,by_renaming      !declare_group 
0000_0011_1100_0101	complete_type,access,by_constraining  !declare_group 
0000_0011_1100_0100	complete_type,access,by_component_completion  !declare_group 

0000_0011_1100_0011	unused
0000_0011_1100_0010	unused
0000_0011_1100_0001	unused
0000_0011_1100_0000	unused

0000_0011_1011_1111	declare_variable,access             !declare_group 
0000_0011_1011_1110	declare_variable,access,visible     !declare_group 
0000_0011_1011_1101	declare_variable,access,duplicate   !declare_group 
0000_0011_1011_1100	declare_variable,access,by_allocation           !declare_group 
0000_0011_1011_1011	declare_variable,access,visible,by_allocation   !declare_group 
0000_0011_1011_1010	declare_variable,access,by_allocation,with_constraint   !declare_group 
0000_0011_1011_1001	declare_variable,access,visible,by_allocation,with_constraint   !declare_group 
0000_0011_1011_1000	declare_variable,access,by_allocation,with_subtype   !declare_group 
0000_0011_1011_0111	declare_variable,access,visible,by_allocation,with_subtype   !declare_group 
0000_0011_1011_0110	declare_variable,access,by_allocation,with_value   !declare_group 
0000_0011_1011_0101	declare_variable,access,visible,by_allocation,with_value   !declare_group 

0000_0011_1011_0100	unused
0000_0011_1011_0011	unused
0000_0011_1011_0010	unused
0000_0011_1011_0001	unused
0000_0011_1011_0000	unused

\f



\-Heap access declarative instructions

0000_0011_1010_1111	unused
0000_0011_1010_1110	declare_type,heap_access,defined,visible      !declare_group 
0000_0011_1010_1101	declare_type,heap_access,defined              !declare_group 
0000_0011_1010_1100	declare_type,heap_access,constrained,visible  !declare_group 
0000_0011_1010_1011	declare_type,heap_access,constrained          !declare_group 
0000_0011_1010_1010	unused
0000_0011_1010_1001	declare_type,heap_access,incomplete,visible   !declare_group 
0000_0011_1010_1000	declare_type,heap_access,incomplete           !declare_group 

0000_0011_1010_0111	declare_type,heap_access,incomplete,visible,values_relative,with_size  !declare_group 
0000_0011_1010_0110	declare_type,heap_access,incomplete,visible,values_relative            !declare_group 
0000_0011_1010_0101	declare_type,heap_access,incomplete,values_relative                    !declare_group
0000_0011_1010_0100	declare_type,heap_access,incomplete,values_relative,with_size          !declare_group

0000_0011_1010_0011	complete_type,heap_access,by_defining        !declare_group 
0000_0011_1010_0010	complete_type,heap_access,by_renaming        !declare_group 
0000_0011_1010_0001	complete_type,heap_access,by_constraining    !declare_group 
0000_0011_1010_0000	complete_type,heap_access,by_component_completion  !declare_group 

0000_0011_1001_1111	declare_variable,heap_access             !declare_group 
0000_0011_1001_1110	declare_variable,heap_access,visible     !declare_group 
0000_0011_1001_1101	declare_variable,heap_access,duplicate   !declare_group 
0000_0011_1001_1100	declare_variable,heap_access,by_allocation           !declare_group 
0000_0011_1001_1011	declare_variable,heap_access,visible,by_allocation   !declare_group 
0000_0011_1001_1010	declare_variable,heap_access,by_allocation,with_constraint   !declare_group 
0000_0011_1001_1001	declare_variable,heap_access,visible,by_allocation,with_constraint   !declare_group 
0000_0011_1001_1000	declare_variable,heap_access,by_allocation,with_subtype   !declare_group 
0000_0011_1001_0111	declare_variable,heap_access,visible,by_allocation,with_subtype   !declare_group 
0000_0011_1001_0110	declare_variable,heap_access,by_allocation,with_value   !declare_group 
0000_0011_1001_0101	declare_variable,heap_access,visible,by_allocation,with_value   !declare_group 

0000_0011_1001_0100	unused

0000_0011_1001_0011	unused
0000_0011_1001_0010	unused
0000_0011_1001_0001	unused
0000_0011_1001_0000	unused

\f



\- Package declarative instructions

0000_0011_1000_1111	declare_type,package,defined,visible  !declare_group 
0000_0011_1000_1110	declare_type,package,defined          !declare_group 
0000_0011_1000_1101	declare_type,package,defined,visible,not_elaborated  !declare_group 
0000_0011_1000_1100	declare_type,package,defined,not_elaborated          !declare_group 

0000_0011_1000_1011	unused
0000_0011_1000_1010	unused
0000_0011_1000_1001	unused
0000_0011_1000_1000	unused

0000_0011_1000_0111	declare_variable,package           !declare_group !inhibit_ibuff_fill 
0000_0011_1000_0110	declare_variable,package,visible   !declare_group !inhibit_ibuff_fill 
0000_0011_1000_0101	declare_variable,package,on_processor   !declare_group !inhibit_ibuff_fill 
0000_0011_1000_0100	declare_variable,package,visible,on_processor   !declare_group !inhibit_ibuff_fill 

0000_0011_1000_0011	unused
0000_0011_1000_0010	unused
0000_0011_1000_0001	unused
0000_0011_1000_0000	unused

\f



\- Task declarative instructions

0000_0011_0111_1111	unused
0000_0011_0111_1110	declare_type,task,defined,visible  !declare_group 
0000_0011_0111_1101	declare_type,task,defined          !declare_group 
0000_0011_0111_1100	unused
0000_0011_0111_1011	declare_type,task,defined,visible,not_elaborated  !declare_group 
0000_0011_0111_1010	declare_type,task,defined,not_elaborated          !declare_group 
0000_0011_0111_1001	unused
0000_0011_0111_1000	declare_type,task,incomplete,visible  !declare_group 
0000_0011_0111_0111	declare_type,task,incomplete          !declare_group 
0000_0011_0111_0110	unused
0000_0011_0111_0101	unused
0000_0011_0111_0100	complete_type,task,by_renaming        !declare_group 

0000_0011_0111_0011	unused
0000_0011_0111_0010	unused
0000_0011_0111_0001	unused
0000_0011_0111_0000	unused

0000_0011_0110_1111	declare_variable,task                           !declare_group !inhibit_ibuff_fill 
0000_0011_0110_1110	declare_variable,task,visible                   !declare_group !inhibit_ibuff_fill 
0000_0011_0110_1101	declare_variable,task,on_processor              !declare_group !inhibit_ibuff_fill 
0000_0011_0110_1100	declare_variable,task,visible,on_processor      !declare_group !inhibit_ibuff_fill 
0000_0011_0110_1011	declare_variable,task,as_component              !declare_group !inhibit_ibuff_fill 
0000_0011_0110_1010	declare_variable,task,on_processor,as_component !declare_group !inhibit_ibuff_fill 

0000_0011_0110_1001	unused
0000_0011_0110_1000	unused

0000_0011_0110_0111	unused
0000_0011_0110_0110	unused
0000_0011_0110_0101	unused
0000_0011_0110_0100	unused
0000_0011_0110_0011	unused
0000_0011_0110_0010	unused
0000_0011_0110_0001	unused
0000_0011_0110_0000	unused

\f



\- Array declarative instructions

0000_0011_0101_1111	unused
0000_0011_0101_1110	declare_type,array,defined,visible      !declare_group 
0000_0011_0101_1101	declare_type,array,defined              !declare_group 
0000_0011_0101_1100	declare_type,array,constrained,visible  !declare_group 

0000_0011_0101_1011	declare_type,array,constrained          !declare_group 
0000_0011_0101_1010	unused
0000_0011_0101_1001	declare_type,array,incomplete,visible   !declare_group 
0000_0011_0101_1000	declare_type,array,incomplete           !declare_group 

0000_0011_0101_0111	unused
0000_0011_0101_0110	declare_type,array,defined_incomplete,visible  !declare_group 
0000_0011_0101_0101	declare_type,array,defined_incomplete          !declare_group 
0000_0011_0101_0100	declare_type,array,constrained_incomplete,visible  !declare_group 

0000_0011_0101_0011	declare_type,array,constrained_incomplete          !declare_group 
0000_0011_0101_0010	unused
0000_0011_0101_0001	declare_type,array,defined,visible,bounds_with_object  !declare_group 
0000_0011_0101_0000	declare_type,array,defined,bounds_with_object          !declare_group 

0000_0011_0100_1111	declare_type,array,constrained,visible,bounds_with_object  !declare_group 
0000_0011_0100_1110	declare_type,array,constrained,bounds_with_object          !declare_group 
0000_0011_0100_1101	unused
0000_0011_0100_1100	declare_type,array,incomplete,visible,bounds_with_object   !declare_group

0000_0011_0100_1011	declare_type,array,incomplete,bounds_with_object           !declare_group 
0000_0011_0100_1010	unused
0000_0011_0100_1001	declare_type,array,defined_incomplete,visible,bounds_with_object  !declare_group
0000_0011_0100_1000	declare_type,array,defined_incomplete,bounds_with_object          !declare_group

0000_0011_0100_0111	declare_type,array,constrained_incomplete,visible,bounds_with_object  !declare_group
0000_0011_0100_0110	declare_type,array,constrained_incomplete,bounds_with_object          !declare_group 

0000_0011_0100_0101	unused
0000_0011_0100_0100	unused

0000_0011_0100_0011	complete_type,array,by_defining       !declare_group 
0000_0011_0100_0010	complete_type,array,by_renaming       !declare_group 
0000_0011_0100_0001	complete_type,array,by_constraining   !declare_group 
0000_0011_0100_0000	complete_type,array,by_component_completion   !declare_group 

0000_0011_0011_1111	unused
0000_0011_0011_1110	unused
0000_0011_0011_1101	unused
0000_0011_0011_1100	unused

0000_0011_0011_1011	unused
0000_0011_0011_1010	unused
0000_0011_0011_1001	unused
0000_0011_0011_1000	unused

0000_0011_0011_0111	declare_variable,array                  !declare_group
0000_0011_0011_0110	declare_variable,array,visible          !declare_group
0000_0011_0011_0101	declare_variable,array,duplicate        !declare_group
0000_0011_0011_0100	declare_variable,array,with_constraint  !declare_group
0000_0011_0011_0011	declare_variable,array,visible,with_constraint  !declare_group 

0000_0011_0011_0010	unused
0000_0011_0011_0001	unused
0000_0011_0011_0000	unused

\f



\- Record declarative instructions

0000_0011_0010_1111     unused
0000_0011_0010_1110	declare_type,record,defined,visible     !declare_group
0000_0011_0010_1101	declare_type,record,defined             !declare_group
0000_0011_0010_1100	unused

0000_0011_0010_1011	declare_type,record,incomplete,visible  !declare_group
0000_0011_0010_1010	declare_type,record,incomplete          !declare_group
0000_0011_0010_1001	unused
0000_0011_0010_1000	declare_type,record,defined_incomplete,visible  !declare_group

0000_0011_0010_0111	declare_type,record,defined_incomplete          !declare_group
0000_0011_0010_0110	complete_type,record,by_defining   !declare_group
0000_0011_0010_0101	complete_type,record,by_renaming   !declare_group
0000_0011_0010_0100	complete_type,record,by_component_completion  !declare_group

0000_0011_0010_0011	unused

0000_0011_0010_0010	declare_variable,record            !declare_group !3..11+
0000_0011_0010_0001	declare_variable,record,visible    !declare_group !3..11+
0000_0011_0010_0000	declare_variable,record,duplicate  !declare_group !5+..8+

\f



\- Variant record declarative instructions

0000_0011_0001_1111	unused
0000_0011_0001_1110	declare_type,variant_record,defined,visible      !declare_group
0000_0011_0001_1101	declare_type,variant_record,defined              !declare_group
0000_0011_0001_1100	declare_type,variant_record,constrained,visible  !declare_group

0000_0011_0001_1011	declare_type,variant_record,constrained          !declare_group
0000_0011_0001_1010	unused
0000_0011_0001_1001	declare_type,variant_record,incomplete,visible   !declare_group
0000_0011_0001_1000	declare_type,variant_record,incomplete           !declare_group

0000_0011_0001_0111	unused
0000_0011_0001_0110	declare_type,variant_record,defined_incomplete,visible  !declare_group
0000_0011_0001_0101	declare_type,variant_record,defined_incomplete          !declare_group

\-formerly declare_type,variant_record,constrained_incomplete,visible  !declare_group
0000_0011_0001_0100	unused
\-formerly declare_type,variant_record,constrained_incomplete          !declare_group
0000_0011_0001_0011	unused

\-formerly declare_type,variant_record,incomplete,visible,constrained  !declare_group
0000_0011_0001_0010	declare_type,variant_record,constrained_incomplete,visible  !declare_group
\-formerly declare_type,variant_record,incomplete,constrained          !declare_group
0000_0011_0001_0001	declare_type,variant_record,constrained_incomplete          !declare_group

0000_0011_0001_0000	unused
0000_0011_0000_1111	unused
0000_0011_0000_1110	unused
0000_0011_0000_1101	unused
0000_0011_0000_1100	unused
0000_0011_0000_1011	unused
0000_0011_0000_1010	unused
0000_0011_0000_1001	unused
0000_0011_0000_1000	unused

0000_0011_0000_0111	complete_type,variant_record,by_defining  !declare_group
0000_0011_0000_0110	complete_type,variant_record,by_renaming  !declare_group
0000_0011_0000_0101	complete_type,variant_record,by_constraining_incomplete !declare_group
0000_0011_0000_0100	complete_type,variant_record,by_completing_constraint   !declare_group
0000_0011_0000_0011	complete_type,variant_record,by_component_completion    !declare_group

0000_0011_0000_0010	unused
0000_0011_0000_0001	unused
0000_0011_0000_0000	unused

0000_0010_1111_1111	declare_variable,variant_record          !declare_group
0000_0010_1111_1110	declare_variable,variant_record,visible  !declare_group
0000_0010_1111_1101	declare_variable,variant_record,duplicate       !declare_group
0000_0010_1111_1100	declare_variable,variant_record,with_constraint  !declare_group
0000_0010_1111_1011	declare_variable,variant_record,visible,with_constraint  !declare_group

0000_0010_1111_1010	unused
0000_0010_1111_1001	unused
0000_0010_1111_1000	unused

\f



0000_0010_1111_0111	unused
0000_0010_1111_0110	unused
0000_0010_1111_0101	unused
0000_0010_1111_0100	unused
0000_0010_1111_0011	unused
0000_0010_1111_0010	unused
0000_0010_1111_0001	unused
0000_0010_1111_0000	unused

0000_0010_1110_1111	unused
0000_0010_1110_1110	unused
0000_0010_1110_1101	unused
0000_0010_1110_1100	unused
0000_0010_1110_1011	unused
0000_0010_1110_1010	unused
0000_0010_1110_1001	unused
0000_0010_1110_1000	unused

0000_0010_1110_0111	unused
0000_0010_1110_0110	unused
0000_0010_1110_0101	unused
0000_0010_1110_0100	unused
0000_0010_1110_0011	unused
0000_0010_1110_0010	unused
0000_0010_1110_0001	unused
0000_0010_1110_0000	unused

0000_0010_1101_1111	unused
0000_0010_1101_1110	unused
0000_0010_1101_1101	unused
0000_0010_1101_1100	unused
0000_0010_1101_1011	unused
0000_0010_1101_1010	unused
0000_0010_1101_1001	unused
0000_0010_1101_1000	unused

0000_0010_1101_0111	unused
0000_0010_1101_0110	unused
0000_0010_1101_0101	unused
0000_0010_1101_0100	unused
0000_0010_1101_0011	unused
0000_0010_1101_0010	unused
0000_0010_1101_0001	unused
0000_0010_1101_0000	unused

\f



\- Select, entry, and family declarative instructions

0000_0010_1100_1111	declare_variable,select              !declare_group
0000_0010_1100_1110	declare_variable,select,choice_open  !declare_group

0000_0010_1100_1101	unused
0000_0010_1100_1100	unused

0000_0010_1100_1011	declare_variable,entry   !declare_group
0000_0010_1100_1010	unused

0000_0010_1100_1001	declare_variable,family  !declare_group
0000_0010_1100_1000	unused


\- Any class declarative instructions

0000_0010_1100_0111	declare_variable,any          !declare_group
0000_0010_1100_0110	declare_variable,any,visible  !declare_group

0000_0010_1100_0101	unused
0000_0010_1100_0100	unused
0000_0010_1100_0011	unused
0000_0010_1100_0010	unused
0000_0010_1100_0001	unused
0000_0010_1100_0000	unused

0000_0010_1011_1111	declare_variable,float,with_value,with_constraint  !declare_group
0000_0010_1011_1110	declare_variable,float,visible,with_value,with_constraint  !declare_group
0000_0010_1011_1101	unused
0000_0010_1011_1100	unused
0000_0010_1011_1011	unused
0000_0010_1011_1010	unused
0000_0010_1011_1001	unused
0000_0010_1011_1000	unused

0000_0010_1011_0111	unused
0000_0010_1011_0110	unused
0000_0010_1011_0101	unused
0000_0010_1011_0100	unused
0000_0010_1011_0011	unused
0000_0010_1011_0010	unused
0000_0010_1011_0001	unused
0000_0010_1011_0000	unused

\f



\- Subprogram declarative instructions

0000_0010_1010_1111	unused
0000_0010_1010_1110	unused
0000_0010_1010_1101	unused
0000_0010_1010_1100	unused

0000_0010_1010_1011	declare_subprogram,for_call,with_address          !declare_group !3
0000_0010_1010_1010	declare_subprogram,for_call,visible,with_address  !declare_group !4
0000_0010_1010_1001	declare_subprogram,for_call,unelaborated,with_address  !declare_group !3
0000_0010_1010_1000	declare_subprogram,for_call,visible,unelaborated,with_address  !declare_group !4

0000_0010_1010_0111	unused
0000_0010_1010_0110	unused
0000_0010_1010_0101	declare_subprogram,for_outer_call,with_address          !declare_group !3
0000_0010_1010_0100	declare_subprogram,for_outer_call,visible,with_address  !declare_group !3

0000_0010_1010_0011	unused
0000_0010_1010_0010	declare_subprogram,for_accept,with_address  !declare_group !4

0000_0010_1010_0001	unused
0000_0010_1010_0000	declare_subprogram,null_subprogram  !declare_group !1


0000_0010_1001_1111	declare_subprogram,for_call                             !declare_group !3/6
0000_0010_1001_1110	declare_subprogram,for_call,unelaborated                !declare_group !3/6
0000_0010_1001_1101	declare_subprogram,for_outer_call  !declare_group !3/6
0000_0010_1001_1100	declare_subprogram,for_outer_call,visible               !declare_group !3/6
0000_0010_1001_1011	declare_subprogram,for_outer_call,unelaborated          !declare_group !3/6
0000_0010_1001_1010	declare_subprogram,for_outer_call,visible,unelaborated  !declare_group !3/6
0000_0010_1001_1001	declare_subprogram,for_accept  !declare_group !4

0000_0010_1001_1000	unused

0000_0010_1001_0111	unused
0000_0010_1001_0110	unused
0000_0010_1001_0101	unused
0000_0010_1001_0100	unused
0000_0010_1001_0011	unused
0000_0010_1001_0010	unused
0000_0010_1001_0001	unused
0000_0010_1001_0000	unused

0000_0010_1000_xxxx	unused

\f



\- Discrete operations

0000_0010_0111_1111	execute,discrete,equal            !other_group !1
0000_0010_0111_1110	execute,discrete,not_equal        !other_group !1
0000_0010_0111_1101	execute,discrete,greater          !other_group !1
0000_0010_0111_1100	execute,discrete,less             !other_group !1
0000_0010_0111_1011	execute,discrete,greater_equal    !other_group !1
0000_0010_0111_1010	execute,discrete,less_equal       !other_group !1
0000_0010_0111_1001	execute,discrete,and              !other_group !1
0000_0010_0111_1000	execute,discrete,or               !other_group !1
0000_0010_0111_0111	execute,discrete,xor              !other_group !1
0000_0010_0111_0110	execute,discrete,complement       !other_group !1
0000_0010_0111_0101	execute,discrete,unary_minus      !other_group !1
0000_0010_0111_0100	execute,discrete,absolute_value   !other_group !1
0000_0010_0111_0011	execute,discrete,plus             !other_group !1
0000_0010_0111_0010	execute,discrete,minus            !other_group !1
0000_0010_0111_0001	execute,discrete,times            !other_group !2/8..17
0000_0010_0111_0000	execute,discrete,divide           !other_group !5/8

0000_0010_0110_1111	execute,discrete,remainder        !other_group !6..10
0000_0010_0110_1110	execute,discrete,modulo           !other_group !6..10
0000_0010_0110_1101	execute,discrete,exponentiate     !other_group 
0000_0010_0110_1100	execute,discrete,minimum          !other_group !2
0000_0010_0110_1011	execute,discrete,maximum          !other_group !2

0000_0010_0110_1010	execute,discrete,first            !other_group !2
0000_0010_0110_1001	execute,discrete,last             !other_group !2

0000_0010_0110_1000	execute,discrete,successor        !other_group !3/9
0000_0010_0110_0111	execute,discrete,predecessor      !other_group !3/9
0000_0010_0110_0110	execute,discrete,bounds           !other_group !3
0000_0010_0110_0101	execute,discrete,reverse_bounds   !other_group !3
0000_0010_0110_0100	execute,discrete,below_bound      !other_group !1/4
0000_0010_0110_0011	execute,discrete,above_bound      !other_group !1/4
0000_0010_0110_0010	execute,discrete,in_range         !other_group !2/3
0000_0010_0110_0001	execute,discrete,not_in_range     !other_group !2/3
0000_0010_0110_0000	execute,discrete,in_type          !other_group !2/4
 
0000_0010_0101_1111	execute,discrete,not_in_type          !other_group !2/4
0000_0010_0101_1110	execute,discrete,convert              !declare_group !2
0000_0010_0101_1101	execute,discrete,bounds_check         !other_group !3
0000_0010_0101_1100	execute,discrete,reverse_bounds_check !other_group !3
0000_0010_0101_1011	execute,discrete,check_in_type        !other_group !2
0000_0010_0101_1010	execute,discrete,write_unchecked      !store_group !7/9
0000_0010_0101_1001	execute,discrete,test_and_set_previous  !other_group !11/13/14
0000_0010_0101_1000	execute,discrete,test_and_set_next      !other_group !11/13/14
 
0000_0010_0101_0111	execute,discrete,raise !jump_group !inhibit_ibuff_fill 
0000_0010_0101_0110	execute,discrete,instruction_read     !other_group !3

0000_0010_0101_0101	execute,discrete,partial_plus         !other_group !5
0000_0010_0101_0100	execute,discrete,partial_minus        !other_group !5
0000_0010_0101_0011	execute,discrete,binary_scale         !other_group !3/6
0000_0010_0101_0010	execute,discrete,arithmetic_shift     !other_group !3
0000_0010_0101_0001	execute,discrete,logical_shift        !other_group !2
0000_0010_0101_0000	execute,discrete,rotate               !other_group !2

0000_0010_0100_1111	execute,discrete,insert_bits          !other_group !4
0000_0010_0100_1110	execute,discrete,extract_bits         !other_group !4/5
0000_0010_0100_1101	execute,discrete,count_nonzero_bits   !other_group !3/8..23
0000_0010_0100_1100	execute,discrete,count_leading_zeros  !other_group !2
0000_0010_0100_1011	execute,discrete,count_trailing_zeros !other_group !3/4
0000_0010_0100_1010	execute,discrete,is_unsigned          !other_group !2

0000_0010_0100_1001	execute,discrete,case_in_range        !other_group
0000_0010_0100_1000	execute,discrete,check_in_integer     !other_group

\f



\- Float operations

0000_0010_0100_0111	execute,float,equal           !other_group !1
0000_0010_0100_0110	execute,float,not_equal       !other_group !1
0000_0010_0100_0101	execute,float,greater         !other_group !2/3
0000_0010_0100_0100	execute,float,less            !other_group !2/3
0000_0010_0100_0011	execute,float,greater_equal   !other_group !2/3
0000_0010_0100_0010	execute,float,less_equal      !other_group !2/3
0000_0010_0100_0001	execute,float,first           !other_group !2
0000_0010_0100_0000	execute,float,last            !other_group !2

0000_0010_0011_1111	execute,float,unary_minus     !other_group !2/3
0000_0010_0011_1110	execute,float,absolute_value  !other_group !1
0000_0010_0011_1101	execute,float,plus            !other_group !12/13
0000_0010_0011_1100	execute,float,minus           !other_group !12/13
0000_0010_0011_1011	execute,float,times           !other_group !15/18/22
0000_0010_0011_1010	execute,float,divide          !other_group !61/62
0000_0010_0011_1001	execute,float,exponentiate    !other_group 
0000_0010_0011_1000	execute,float,convert         !declare_group !2/4

0000_0010_0011_0111	execute,float,convert_from_discrete !declare_group !3/5/7
0000_0010_0011_0110	execute,float,truncate_to_discrete  !declare_group !4/5
0000_0010_0011_0101	execute,float,round_to_discrete     !declare_group !5/6
0000_0010_0011_0100	execute,float,in_type         !other_group !2/4/5/6
0000_0010_0011_0011	execute,float,not_in_type     !other_group !2/4/5/6
0000_0010_0011_0010	execute,float,check_in_type   !other_group !2/4
0000_0010_0011_0001	execute,float,write_unchecked !store_group !7/8
0000_0010_0011_0000	execute,float,in_range        !other_group !3/4/5/6

\f



\- Access operations

0000_0010_0010_1111	execute,access,equal           !other_group !2
0000_0010_0010_1110	execute,access,not_equal       !other_group !2
0000_0010_0010_1101	execute,access,is_null         !other_group !1
0000_0010_0010_1100	execute,access,not_null        !other_group !1
0000_0010_0010_1011	execute,access,set_null        !store_group !6/7/9
0000_0010_0010_1010	execute,access,element_type    !other_group !3/6
0000_0010_0010_1001	execute,access,all_read        !other_group !3/6/7
0000_0010_0010_1000	execute,access,all_write       !store_group !2+/6+
0000_0010_0010_0111	execute,access,all_reference   !other_group !2
0000_0010_0010_0110	execute,access,convert         !declare_group !2/3+
0000_0010_0010_0101	execute,access,in_type         !other_group !1/2+
0000_0010_0010_0100	execute,access,not_in_type     !other_group !1/2+
0000_0010_0010_0011	execute,access,check_in_type   !other_group !1/2+
0000_0010_0010_0010	execute,access,convert_reference  !other_group  !5

0000_0010_0010_0001	execute,access,allow_deallocate  !declare_group !unimplemented
0000_0010_0010_0000	execute,access,deallocate        !other_group   !unimplemented


\- Heap access operations 

0000_0010_0001_1111	execute,heap_access,equal          !other_group !2
0000_0010_0001_1110	execute,heap_access,not_equal      !other_group !2
0000_0010_0001_1101	execute,heap_access,is_null        !other_group !1
0000_0010_0001_1100	execute,heap_access,not_null       !other_group !1
0000_0010_0001_1011	execute,heap_access,set_null       !other_group !6/7/9
0000_0010_0001_1010	execute,heap_access,element_type   !other_group !3/6
0000_0010_0001_1001	execute,heap_access,all_read       !other_group !3/6/7

0000_0010_0001_1000	execute,heap_access,all_write      !store_group !2+/6+
0000_0010_0001_0111	execute,heap_access,all_reference  !other_group !2
0000_0010_0001_0110	execute,heap_access,convert        !declare_group !2/3+
0000_0010_0001_0101	execute,heap_access,in_type        !other_group !1/2+
0000_0010_0001_0100	execute,heap_access,not_in_type    !other_group !1/2+
0000_0010_0001_0011	execute,heap_access,check_in_type  !other_group !1/2+
0000_0010_0001_0010	execute,heap_access,address        !other_group !1
0000_0010_0001_0001	execute,heap_access,convert_reference  !other_group !5
0000_0010_0001_0000	execute,heap_access,get_segment        !other_group

\f



\- Module operations

0000_0010_0000_1111	execute,module,activate        !declare_group !inhibit_ibuff_fill 
0000_0010_0000_1110	execute,module,augment_imports !other_group 
0000_0010_0000_1101	execute,module,elaborate       !other_group 
0000_0010_0000_1100	execute,module,is_callable     !other_group 

0000_0010_0000_1011	execute,module,is_terminated   !other_group 
0000_0010_0000_1010	execute,module,get_name        !other_group 
0000_0010_0000_1001	execute,task,abort             !other_group 

0000_0010_0000_1000	execute,task,abort_multiple    !other_group !unimplemented
0000_0010_0000_0111	unused
0000_0010_0000_0110	execute,module,check_elaborated	 !other_group  !3/10

0000_0010_0000_0101	unused
0000_0010_0000_0100	unused
0000_0010_0000_0011	unused
0000_0010_0000_0010	unused
0000_0010_0000_0001	unused
0000_0010_0000_0000	unused

\f



\- Array operations

0000_0001_1111_1111	execute,array,equal           !other_group 
0000_0001_1111_1110	execute,array,not_equal       !other_group 
0000_0001_1111_1101	execute,array,first           !other_group 
0000_0001_1111_1100	execute,array,last            !other_group 
0000_0001_1111_1011	execute,array,length          !other_group 
0000_0001_1111_1010	execute,array,bounds          !other_group 
0000_0001_1111_1001	execute,array,reverse_bounds  !other_group 
0000_0001_1111_1000	execute,array,element_type    !other_group 

0000_0001_1111_0111	execute,array,field_read             !other_group 
0000_0001_1111_0110	execute,array,field_write            !store_group 
0000_0001_1111_0101	execute,array,field_reference        !other_group 
0000_0001_1111_0100	execute,array,structure_write        !store_group 
0000_0001_1111_0011	execute,array,subarray               !other_group 

0000_0001_1111_0010	unused
0000_0001_1111_0001	unused
0000_0001_1111_0000     unused

0000_0001_1110_1111	execute,array,convert            !declare_group 
0000_0001_1110_1110	execute,array,convert_to_formal  !declare_group 
0000_0001_1110_1101	execute,array,in_type            !other_group 
0000_0001_1110_1100	execute,array,not_in_type        !other_group 
0000_0001_1110_1011	execute,array,check_in_type      !other_group 

0000_0001_1110_1010	unused
0000_0001_1110_1001	unused
0000_0001_1110_1000	unused

0000_0001_1110_0111	unused
0000_0001_1110_0110	unused
0000_0001_1110_0101	unused
0000_0001_1110_0100	unused
0000_0001_1110_0011	unused
0000_0001_1110_0010	unused
0000_0001_1110_0001	unused
0000_0001_1110_0000	unused

\f



\- Vector operations

0000_0001_1101_1111	execute,vector,equal             !other_group !9+
0000_0001_1101_1110	execute,vector,not_equal         !other_group !9+
0000_0001_1101_1101	execute,vector,first             !other_group !3..5
0000_0001_1101_1100	execute,vector,last              !other_group !5..6
0000_0001_1101_1011	execute,vector,length            !other_group !3..5
0000_0001_1101_1010	execute,vector,bounds            !other_group !5..7
0000_0001_1101_1001	execute,vector,reverse_bounds    !other_group !5..7
0000_0001_1101_1000	execute,vector,element_type      !other_group !3

0000_0001_1101_0111	execute,vector,field_read        !other_group !6..13
0000_0001_1101_0110	execute,vector,field_write       !store_group !4+..10+
0000_0001_1101_0101	execute,vector,field_reference   !other_group !4..10
0000_0001_1101_0100	execute,vector,structure_write   !store_group !2+
0000_0001_1101_0011	execute,vector,and               !other_group 
0000_0001_1101_0010	execute,vector,or                !other_group 
0000_0001_1101_0001	execute,vector,xor               !other_group 
0000_0001_1101_0000	execute,vector,complement        !other_group 

0000_0001_1100_1111	execute,vector,slice_read        !other_group !13..23+
0000_0001_1100_1110	execute,vector,slice_write       !store_group !15+
0000_0001_1100_1101	execute,vector,slice_reference   !store_group !9..13
0000_0001_1100_1100	execute,vector,catenate          !other_group 
0000_0001_1100_1011	execute,vector,append            !other_group 
0000_0001_1100_1010	execute,vector,prepend           !other_group 
0000_0001_1100_1001	unused
0000_0001_1100_1000	unused

0000_0001_1100_0111	execute,vector,convert           !declare_group !11+
0000_0001_1100_0110	execute,vector,convert_to_formal !declare_group !11+
0000_0001_1100_0101	execute,vector,in_type           !other_group !6..14
0000_0001_1100_0100	execute,vector,not_in_type       !other_group !6..14
0000_0001_1100_0011	execute,vector,check_in_type     !other_group !6..14

0000_0001_1100_0010	execute,vector,greater           !other_group 
0000_0001_1100_0001	execute,vector,less              !other_group 
0000_0001_1100_0000	execute,vector,greater_equal     !other_group 

0000_0001_1011_1111	execute,vector,less_equal        !other_group 
0000_0001_1011_1110	execute,vector,hash		 !other_group  !15-17

0000_0001_1011_1101	unused
0000_0001_1011_1100	unused
0000_0001_1011_1011	unused
0000_0001_1011_1010	unused
0000_0001_1011_1001	unused
0000_0001_1011_1000	unused

0000_0001_1011_0111	unused
0000_0001_1011_0110	unused
0000_0001_1011_0101	unused
0000_0001_1011_0100	unused
0000_0001_1011_0011	unused
0000_0001_1011_0010	unused
0000_0001_1011_0001	unused
0000_0001_1011_0000	unused

\f



\- Matrix operations


0000_0001_1010_1111	execute,matrix,equal               !other_group 
0000_0001_1010_1110	execute,matrix,not_equal           !other_group 
0000_0001_1010_1101	execute,matrix,first               !other_group 
0000_0001_1010_1100	execute,matrix,last                !other_group 
0000_0001_1010_1011	execute,matrix,length              !other_group 
0000_0001_1010_1010	execute,matrix,bounds              !other_group 
0000_0001_1010_1001	execute,matrix,reverse_bounds      !other_group 
0000_0001_1010_1000	execute,matrix,element_type        !other_group 

0000_0001_1010_0111	execute,matrix,field_read          !other_group 
0000_0001_1010_0110	execute,matrix,field_write            !store_group 
0000_0001_1010_0101	execute,matrix,field_reference     !other_group 
0000_0001_1010_0100	execute,matrix,structure_write     !store_group 
0000_0001_1010_0011	execute,matrix,subarray            !other_group 
0000_0001_1010_0010	unused
0000_0001_1010_0001	unused
0000_0001_1010_0000	unused

0000_0001_1001_1111	execute,matrix,convert             !declare_group 
0000_0001_1001_1110	execute,matrix,convert_to_formal   !declare_group 
0000_0001_1001_1101	execute,matrix,in_type             !other_group 
0000_0001_1001_1100	execute,matrix,not_in_type         !other_group 
0000_0001_1001_1011	execute,matrix,check_in_type       !other_group 
0000_0001_1001_1010	unused
0000_0001_1001_1001	unused
0000_0001_1001_1000	unused

0000_0001_1001_0111	unused
0000_0001_1001_0110	unused
0000_0001_1001_0101	unused
0000_0001_1001_0100	unused
0000_0001_1001_0011	unused
0000_0001_1001_0010	unused
0000_0001_1001_0001	unused
0000_0001_1001_0000	unused

\f



\- Subarray and subvector operations

0000_0001_1000_1111	execute,subarray,field_read        !other_group 
0000_0001_1000_1110	execute,subarray,field_write       !store_group 
0000_0001_1000_1101	execute,subarray,field_reference   !other_group 
0000_0001_1000_1100	execute,subarray,structure_write   !store_group !unimplemented
0000_0001_1000_1011	execute,subvector,field_read       !other_group 
0000_0001_1000_1010	execute,subvector,field_write      !store_group 
0000_0001_1000_1001	execute,subvector,field_reference  !other_group 
0000_0001_1000_1000	execute,subvector,structure_write  !store_group !unimplemented

0000_0001_1000_0111	unused
0000_0001_1000_0110	unused
0000_0001_1000_0101	unused
0000_0001_1000_0100	unused
0000_0001_1000_0011	unused
0000_0001_1000_0010	unused
0000_0001_1000_0001	unused
0000_0001_1000_0000	unused

\f



\- Record operations

0000_0001_0111_1111	execute,record,equal              !other_group !4+
0000_0001_0111_1110	execute,record,not_equal          !other_group !4+
0000_0001_0111_1101	execute,record,structure_write    !store_group !5+
0000_0001_0111_1100	execute,record,component_offset   !other_group !3
0000_0001_0111_1011	execute,record,convert            !declare_group !5/8+ 

0000_0001_0111_1010	execute,record,field_read_dynamic   !other_group 
0000_0001_0111_1001	execute,record,field_write_dynamic  !store_group 
0000_0001_0111_1000	execute,record,field_reference_dynamic  !other_group 
0000_0001_0111_0111	execute,record,field_type_dynamic   !other_group 

0000_0001_0111_0110	unused
0000_0001_0111_0101	unused
0000_0001_0111_0100	unused
0000_0001_0111_0011	unused
0000_0001_0111_0010	unused
0000_0001_0111_0001	unused
0000_0001_0111_0000	unused

\f



\- Variant_record operations

0000_0001_0110_1111	execute,variant_record,equal               !other_group
0000_0001_0110_1110	execute,variant_record,not_equal           !other_group
0000_0001_0110_1101	execute,variant_record,structure_write     !store_group
0000_0001_0110_1100	execute,variant_record,is_constrained      !other_group
0000_0001_0110_1011	execute,variant_record,read_variant        !other_group
0000_0001_0110_1010	execute,variant_record,indirects_appended  !other_group
0000_0001_0110_1001	execute,variant_record,read_discriminant_constraint  !other_group
0000_0001_0110_1000	execute,variant_record,reference_makes_copy          !other_group

0000_0001_0110_0111	execute,variant_record,structure_query        !other_group
0000_0001_0110_0110	execute,variant_record,component_offset       !other_group
0000_0001_0110_0101	execute,variant_record,convert                !declare_group
0000_0001_0110_0100	execute,variant_record,in_type                !other_group
0000_0001_0110_0011	execute,variant_record,not_in_type            !other_group
0000_0001_0110_0010	execute,variant_record,check_in_type          !other_group
0000_0001_0110_0001	execute,variant_record,check_in_formal_type   !other_group

0000_0001_0110_0000	execute,variant_record,field_read_dynamic   !other_group
0000_0001_0101_1111	execute,variant_record,field_write_dynamic  !store_group
0000_0001_0101_1110	execute,variant_record,field_reference_dynamic  !other_group
0000_0001_0101_1101	execute,variant_record,field_type_dynamic   !other_group
0000_0001_0101_1100	execute,variant_record,is_constrained_object !other_group !3
0000_0001_0101_1011	execute,variant_record,make_constrained !other_group !1

0000_0001_0101_1010	unused
0000_0001_0101_1001	unused
0000_0001_0101_1000	unused
0000_0001_0101_0111	unused
0000_0001_0101_0110	unused
0000_0001_0101_0101	unused
0000_0001_0101_0100	unused
0000_0001_0101_0011	unused
0000_0001_0101_0010	unused
0000_0001_0101_0001	unused
0000_0001_0101_0000	unused

\f



\- Miscellaneous operations which overflowed from their logical grouping

0000_0001_0100_1111	execute,float,not_in_range        !other_group 
0000_0001_0100_1110	execute,float,equal_zero          !other_group
0000_0001_0100_1101	execute,float,not_equal_zero      !other_group
0000_0001_0100_1100	execute,float,greater_zero        !other_group
0000_0001_0100_1011	execute,float,less_zero           !other_group
0000_0001_0100_1010	execute,float,greater_equal_zero  !other_group
0000_0001_0100_1001	execute,float,less_equal_zero     !other_group


0000_0001_0100_1000	execute,heap_access,get_offset         !other_group !1
0000_0001_0100_0111	execute,heap_access,construct_segment  !other_group !2
0000_0001_0100_0110	execute,heap_access,hash            !other_group !3/5
0000_0001_0100_0101	execute,heap_access,diana_tree_kind !other_group !3/4/5

0000_0001_0100_0100	execute,heap_access,get_name !other_group  !2

0000_0001_0100_0011	execute,heap_access,adaptive_balanced_tree_lookup  !other_group  !9+5/7per
0000_0001_0100_0010	execute,heap_access,diana_find_permanent_attribute !other_group  !5+4/5per

0000_0001_0100_0001	execute,discrete,multiply_and_scale  !other_group
0000_0001_0100_0000	execute,discrete,divide_and_scale    !other_group

\f



\- Select, entry, and family operations

0000_0001_0011_1111	execute,select,rendezvous              !rendezvous_group 
0000_0001_0011_1110	execute,select,timed_guard_write       !other_group !4
0000_0001_0011_1101	execute,select,timed_duration_write    !other_group !6
0000_0001_0011_1100	execute,select,terminate_guard_write   !other_group !4
0000_0001_0011_1011	unused
0000_0001_0011_1010	unused
0000_0001_0011_1001	unused
0000_0001_0011_1000	unused

0000_0001_0011_0111	execute,entry,rendezvous    !rendezvous_group 
0000_0001_0011_0110	execute,entry,count         !other_group 
0000_0001_0011_0101	unused
0000_0001_0011_0100	unused
0000_0001_0011_0011	execute,family,rendezvous   !rendezvous_group 
0000_0001_0011_0010	execute,family,count        !other_group 
0000_0001_0011_0001	unused
0000_0001_0011_0000	unused

\f



\- Any class operations

0000_0001_0010_1111	execute,any,equal           !other_group 
0000_0001_0010_1110	execute,any,not_equal       !other_group 
0000_0001_0010_1101	execute,any,address         !other_group 
0000_0001_0010_1100	execute,any,size            !other_group 

\- execute,any,is_deallocation_allowed
0000_0001_0010_1011	execute,any,spare14  !other_group

0000_0001_0010_1010	execute,any,change_utility  !other_group 
0000_0001_0010_1001	execute,any,make_visible    !declare_group 
0000_0001_0010_1000	unused

0000_0001_0010_0111	execute,any,run_initialization_utility  !frame_group
0000_0001_0010_0110	execute,any,has_default_initialization  !other_group

0000_0001_0010_0101	execute,any,set_constraint  !other_group 
0000_0001_0010_0100	execute,any,is_constrained  !other_group 
0000_0001_0010_0011	execute,any,make_aligned    !other_group 
0000_0001_0010_0010	execute,any,make_root_type  !other_group 
0000_0001_0010_0001	execute,any,is_default      !other_group 
0000_0001_0010_0000	execute,any,is_value        !other_group 

0000_0001_0001_1111	execute,any,is_scalar       !other_group 
0000_0001_0001_1110	execute,any,convert            !declare_group 
0000_0001_0001_1101	execute,any,convert_to_formal  !declare_group 
0000_0001_0001_1100	execute,any,convert_unchecked  !declare_group 
0000_0001_0001_1011	execute,any,in_type              !other_group 
0000_0001_0001_1010	execute,any,not_in_type          !other_group 
0000_0001_0001_1001	execute,any,check_in_formal_type !other_group 
0000_0001_0001_1000	execute,any,write_unchecked      !store_group 

0000_0001_0001_0111	execute,any,structure_query      !other_group 
0000_0001_0001_0110	execute,any,address_of_type	 !other_group
0000_0001_0001_0101	execute,any,structure_clear      !declare_group


\-  A few more miscellaneous operations

0000_0001_0001_0100	execute,access,size       !other_group
0000_0001_0001_0011	execute,heap_access,size  !other_group
0000_0001_0001_0010	execute,any,make_constrained  !other_group 

0000_0001_0001_0001	execute,any,has_repeated_initialization  !other_group
0000_0001_0001_0000	execute,any,is_initialization_repeated   !other_group

\f



\- Exception operations
\-	the exception raise instruction depends on the last 8 bits being 0

0000_0001_0000_1111	execute,exception,equal                !other_group !2
0000_0001_0000_1110	execute,exception,is_constraint_error  !other_group !4/5
0000_0001_0000_1101	execute,exception,is_numeric_error     !other_group !4/5
0000_0001_0000_1100	execute,exception,is_program_error     !other_group !4/5
0000_0001_0000_1011	execute,exception,is_storage_error     !other_group !4/5
0000_0001_0000_1010	execute,exception,is_tasking_error     !other_group !4/5
0000_0001_0000_1001	execute,exception,is_instruction_error !other_group !4/5

0000_0001_0000_1000	unused

0000_0001_0000_0111	execute,exception,get_name       !other_group !2
0000_0001_0000_0110	execute,exception,address        !other_group !3

0000_0001_0000_0101	unused
0000_0001_0000_0100	unused
0000_0001_0000_0011	unused
0000_0001_0000_0010	unused
\- 
0000_0001_0000_0001	execute,exception,reraise        !inhibit_ibuff_fill 
0000_0001_0000_0000	execute,exception,raise          !inhibit_ibuff_fill 

\f



\- Actions

0000_0000_1111_1111	load_encached,value_31  !declare_group !1
0000_0000_1111_1110	load_encached,value_30  !declare_group !1
0000_0000_1111_1101	load_encached,value_29  !declare_group !1
0000_0000_1111_1100	load_encached,value_28  !declare_group !1
0000_0000_1111_1011	load_encached,value_27  !declare_group !1
0000_0000_1111_1010	load_encached,value_26  !declare_group !1
0000_0000_1111_1001	load_encached,value_25  !declare_group !1
0000_0000_1111_1000	load_encached,value_24  !declare_group !1

0000_0000_1111_0111	load_encached,value_23  !declare_group !1
0000_0000_1111_0110	load_encached,value_22  !declare_group !1
0000_0000_1111_0101	load_encached,value_21  !declare_group !1
0000_0000_1111_0100	load_encached,value_20  !declare_group !1
0000_0000_1111_0011	load_encached,value_19  !declare_group !1
0000_0000_1111_0010	load_encached,value_18  !declare_group !1
0000_0000_1111_0001	load_encached,value_17  !declare_group !1
0000_0000_1111_0000	load_encached,value_16  !declare_group !1 

0000_0000_1110_1111	load_encached,value_15  !declare_group !1
0000_0000_1110_1110	load_encached,value_14  !declare_group !1
0000_0000_1110_1101	load_encached,value_13  !declare_group !1
0000_0000_1110_1100	load_encached,value_12  !declare_group !1
0000_0000_1110_1011	load_encached,value_11  !declare_group !1
0000_0000_1110_1010	load_encached,value_10  !declare_group !1
0000_0000_1110_1001	load_encached,value_09  !declare_group !1
0000_0000_1110_1000	load_encached,value_08  !declare_group !1

0000_0000_1110_0111	load_encached,value_07  !declare_group !1
0000_0000_1110_0110	load_encached,value_06  !declare_group !1
0000_0000_1110_0101	load_encached,value_05  !declare_group !1
0000_0000_1110_0100	load_encached,value_04  !declare_group !1
0000_0000_1110_0011	load_encached,value_03  !declare_group !1
0000_0000_1110_0010	load_encached,value_02  !declare_group !1
0000_0000_1110_0001	load_encached,value_01  !declare_group !1
0000_0000_1110_0000	load_encached,value_00  !declare_group !1

0000_0000_1101_1111	unused
0000_0000_1101_1110	load_top,at_offset_6      !other_group !1
0000_0000_1101_1101	load_top,at_offset_5      !other_group !1
0000_0000_1101_1100	load_top,at_offset_4      !other_group !1
0000_0000_1101_1011	load_top,at_offset_3      !other_group !1
0000_0000_1101_1010	load_top,at_offset_2      !other_group !1
0000_0000_1101_1001	load_top,at_offset_1      !other_group !1
0000_0000_1101_1000	load_top,at_offset_0      !other_group !1

0000_0000_1101_0111	pop_control,pop_count_7   !action_group !7
0000_0000_1101_0110	pop_control,pop_count_6   !action_group !6
0000_0000_1101_0101	pop_control,pop_count_5   !action_group !5
0000_0000_1101_0100	pop_control,pop_count_4   !action_group !4
0000_0000_1101_0011	pop_control,pop_count_3   !action_group !3
0000_0000_1101_0010	pop_control,pop_count_2   !action_group !2
0000_0000_1101_0001	pop_control,pop_count_1   !action_group !1 
0000_0000_1101_0000	action,swap_control       !action_group !2 

0000_0000_1100_1111	action,mark_auxiliary     !action_group !8
0000_0000_1100_1110	action,pop_auxiliary      !action_group !5/7

\- action  compress_control
0000_0000_1100_1101	action,spare6_action      !action_group !2 

0000_0000_1100_1100	action,pop_block              !frame_group !6
0000_0000_1100_1011	action,pop_block_with_result  !frame_group !9
0000_0000_1100_1010	action,exit_nullary_function  !frame_group !inhibit_ibuff_fill !7
0000_0000_1100_1001	action,pop_auxiliary_loop     !action_group
0000_0000_1100_1000	action,pop_auxiliary_range    !action_group

\f



0000_0000_1100_0111	action,elaborate_subprogram   !declare_group !5
0000_0000_1100_0110	action,check_subprogram_elaborated   !declare_group !3
0000_0000_1100_0101	action,set_block_start	      !other_group !7
0000_0000_1100_0100	action,make_default           !declare_group 

0000_0000_1100_0011	unused
0000_0000_1100_0010	unused
0000_0000_1100_0001	unused
0000_0000_1100_0000	unused

0000_0000_1011_1111	action,accept_activation    !action_group !inhibit_ibuff_fill 
0000_0000_1011_1110	action,activate_tasks       !action_group 
0000_0000_1011_1101	action,activate_heap_tasks  !action_group 
0000_0000_1011_1100	action,signal_activated     !action_group 
0000_0000_1011_1011	action,signal_completion    !action_group !inhibit_ibuff_fill 
0000_0000_1011_1010	action,initiate_delay       !action_group !inhibit_ibuff_fill 
0000_0000_1011_1001	action,get_priority         !other_group 
0000_0000_1011_1000	action,set_priority         !declare_group 

0000_0000_1011_0111	action,make_self            !other_group 
0000_0000_1011_0110	action,make_scope           !other_group 
0000_0000_1011_0101	action,make_parent          !other_group 
0000_0000_1011_0100	action,name_partner         !other_group 
0000_0000_1011_0011	action,increase_priority    !declare_group 
0000_0000_1011_0010	unused
0000_0000_1011_0001	unused
0000_0000_1011_0000	unused

0000_0000_1010_1111	unused
0000_0000_1010_1110	unused
0000_0000_1010_1101	unused
0000_0000_1010_1100	unused
0000_0000_1010_1011	unused
0000_0000_1010_1010	unused
0000_0000_1010_1001	unused
0000_0000_1010_1000	unused

\f



0000_0000_1010_0111	action,jump_extended	         !jump_group !5
0000_0000_1010_0110	action,jump_zero_extended        !jump_group !5/6
0000_0000_1010_0101	action,jump_nonzero_extended     !jump_group !5/6
0000_0000_1010_0100	action,loop_increasing_extended  !jump_group !5/7
0000_0000_1010_0011	action,loop_decreasing_extended  !jump_group !5/7
0000_0000_1010_0010	action,push_discrete_extended    !other_group !5
0000_0000_1010_0001	action,push_float_extended       !other_group !5
0000_0000_1010_0000	action,push_structure_extended   !other_group 

0000_0000_1001_1111	action,jump_dynamic              !jump_group !inhibit_ibuff_fill !4
0000_0000_1001_1110	action,jump_zero_dynamic         !jump_group !3/4
0000_0000_1001_1101	action,jump_nonzero_dynamic      !jump_group !3/4
0000_0000_1001_1100	action,load_dynamic            !other_group  !2++
0000_0000_1001_1011	action,store_dynamic           !store_group 
0000_0000_1001_1010	action,call_dynamic            !frame_group 
0000_0000_1001_1001	action,reference_dynamic       !declare_group  !2++

0000_0000_1001_1000	execute,package,field_read_dynamic   !other_group  !4
0000_0000_1001_0111	execute,package,field_write_dynamic  !store_group 
0000_0000_1001_0110	execute,package,field_execute_dynamic    !frame_group 
0000_0000_1001_0101	execute,package,field_reference_dynamic  !other_group  !6
		        
0000_0000_1001_0100	unused
0000_0000_1001_0011	unused
0000_0000_1001_0010	action,push_string_extended  !declare_group
0000_0000_1001_0001	action,push_string_extended_indexed  !declare_group
0000_0000_1001_0000	action,store_string_extended  !declare_group


\- Yet more miscellaneous operations

0000_0000_1000_1111	execute,discrete,diana_map_kind_to_vci     !other_group
0000_0000_1000_1110	execute,discrete,diana_arity_for_kind      !other_group
0000_0000_1000_1101	execute,heap_access,diana_allocate_tree_node   !other_group
0000_0000_1000_1100	execute,heap_access,diana_put_node_on_seq_type !other_group
0000_0000_1000_1011	execute,heap_access,diana_seq_type_get_head    !other_group
\- execute,discrete,diana_is_id_node  !other_group
0000_0000_1000_1010	execute,discrete,diana_spare0  !other_group
\- execute,discrete,diana_translate_sm_ptr  !other_group
0000_0000_1000_1001	execute,discrete,diana_spare1  !other_group
\- execute,heap_access,diana_module_table_lookup  !other_group
0000_0000_1000_1000	execute,heap_access,diana_spare2  !other_group

0000_0000_1000_0111	unused
0000_0000_1000_0110	unused
0000_0000_1000_0101	unused
0000_0000_1000_0100	unused
0000_0000_1000_0011	unused
0000_0000_1000_0010	unused
0000_0000_1000_0001	unused

\- TEMPORARILY BEING USED FOR COLLECTION_RESET -- DO NOT REUSE
0000_0000_1000_0000	unused


\f



0000_0000_0111_1111	unused
0000_0000_0111_1110	unused
0000_0000_0111_1101	unused
0000_0000_0111_1100	unused
0000_0000_0111_1011	unused
0000_0000_0111_1010	unused
0000_0000_0111_1001	unused
0000_0000_0111_1000	unused

0000_0000_0111_0111	unused
0000_0000_0111_0110	unused
0000_0000_0111_0101	unused
0000_0000_0111_0100	unused
0000_0000_0111_0011	unused
0000_0000_0111_0010	unused
0000_0000_0111_0001	unused
0000_0000_0111_0000	unused

0000_0000_0110_1111	action,break_unconditional    !no_group
0000_0000_0110_1110	action,exit_break             !no_group !inhibit_ibuff_fill 
0000_0000_0110_1101	action,query_break_cause      !no_group 
0000_0000_0110_1100	action,query_break_mask       !no_group 
0000_0000_0110_1011	action,query_break_address    !no_group 
0000_0000_0110_1010	action,alter_break_mask       !no_group 
0000_0000_0110_1001	action,query_frame            !no_group 
0000_0000_0110_1000	action,establish_frame        !no_group 

0000_0000_0110_0111	unused
0000_0000_0110_0110	unused
0000_0000_0110_0101	unused
0000_0000_0110_0100	unused
0000_0000_0110_0011	unused
0000_0000_0110_0010	unused
0000_0000_0110_0001	unused
0000_0000_0110_0000	unused

0000_0000_0101_1111	unused
0000_0000_0101_1110	store_top,discrete,at_offset_6	!store_group  !3
0000_0000_0101_1101	store_top,discrete,at_offset_5	!store_group  !3
0000_0000_0101_1100	store_top,discrete,at_offset_4	!store_group  !3
0000_0000_0101_1011	store_top,discrete,at_offset_3	!store_group  !3
0000_0000_0101_1010	store_top,discrete,at_offset_2	!store_group  !3
0000_0000_0101_1001	store_top,discrete,at_offset_1	!store_group  !3
0000_0000_0101_1000	unused

0000_0000_0101_0111	unused
0000_0000_0101_0110	store_top_unchecked,discrete,at_offset_6  !store_group !1
0000_0000_0101_0101	store_top_unchecked,discrete,at_offset_5  !store_group !1
0000_0000_0101_0100	store_top_unchecked,discrete,at_offset_4  !store_group !1
0000_0000_0101_0011	store_top_unchecked,discrete,at_offset_3  !store_group !1
0000_0000_0101_0010	store_top_unchecked,discrete,at_offset_2  !store_group !1
0000_0000_0101_0001	store_top_unchecked,discrete,at_offset_1  !store_group !1
0000_0000_0101_0000	unused

0000_0000_0100_1111	unused
0000_0000_0100_1110	store_top,float,at_offset_6	!store_group  !3/4
0000_0000_0100_1101	store_top,float,at_offset_5	!store_group  !3/4
0000_0000_0100_1100	store_top,float,at_offset_4	!store_group  !3/4
0000_0000_0100_1011	store_top,float,at_offset_3	!store_group  !3/4
0000_0000_0100_1010	store_top,float,at_offset_2	!store_group  !3/4
0000_0000_0100_1001	store_top,float,at_offset_1	!store_group  !3/4
0000_0000_0100_1000	unused

0000_0000_0100_0111	unused
0000_0000_0100_0110	store_top_unchecked,float,at_offset_6  !store_group  !1
0000_0000_0100_0101	store_top_unchecked,float,at_offset_5  !store_group  !1
0000_0000_0100_0100	store_top_unchecked,float,at_offset_4  !store_group  !1
0000_0000_0100_0011	store_top_unchecked,float,at_offset_3  !store_group  !1
0000_0000_0100_0010	store_top_unchecked,float,at_offset_2  !store_group  !1
0000_0000_0100_0001	store_top_unchecked,float,at_offset_1  !store_group  !1
0000_0000_0100_0000	unused


0000_0000_0011_1111	unused
0000_0000_0011_1110	store_top,access,at_offset_6	!store_group  !1
0000_0000_0011_1101	store_top,access,at_offset_5	!store_group  !1
0000_0000_0011_1100	store_top,access,at_offset_4	!store_group  !1
0000_0000_0011_1011	store_top,access,at_offset_3	!store_group  !1
0000_0000_0011_1010	store_top,access,at_offset_2	!store_group  !1
0000_0000_0011_1001	store_top,access,at_offset_1	!store_group  !1
0000_0000_0011_1000	unused

0000_0000_0011_0111	unused
0000_0000_0011_0110	store_top,heap_access,at_offset_6   !store_group  !1
0000_0000_0011_0101	store_top,heap_access,at_offset_5   !store_group  !1
0000_0000_0011_0100	store_top,heap_access,at_offset_4   !store_group  !1
0000_0000_0011_0011	store_top,heap_access,at_offset_3   !store_group  !1
0000_0000_0011_0010	store_top,heap_access,at_offset_2   !store_group  !1
0000_0000_0011_0001	store_top,heap_access,at_offset_1   !store_group  !1
0000_0000_0011_0000	unused

0000_0000_0010_1111	unused
0000_0000_0010_1110	unused
0000_0000_0010_1101	unused
0000_0000_0010_1100	unused
0000_0000_0010_1011	unused
0000_0000_0010_1010	unused
0000_0000_0010_1001	unused
0000_0000_0010_1000	unused

0000_0000_0010_0111	unused
0000_0000_0010_0110	unused
0000_0000_0010_0101	unused
0000_0000_0010_0100	unused
0000_0000_0010_0011	unused
0000_0000_0010_0010	unused
0000_0000_0010_0001	unused
0000_0000_0010_0000	unused

\f



\- temporarily being used for performance analysis
0000_0000_0001_xxxx	unused

0000_0000_0000_1111	unused
0000_0000_0000_1110	unused
0000_0000_0000_1101	unused
0000_0000_0000_1100	unused
0000_0000_0000_1011	unused
0000_0000_0000_1010	unused
0000_0000_0000_1001	unused
0000_0000_0000_1000	action,idle            !other_group  
0000_0000_0000_0111	action,break_optional  !option_group !1
0000_0000_0000_0110	unused
0000_0000_0000_0101	unused
0000_0000_0000_0100	unused
0000_0000_0000_0011	unused
0000_0000_0000_0010	unused
0000_0000_0000_0001	unused

0000_0000_0000_0000	action,illegal  !no_group