.globl vp_branchafvt[DS] .csect vp_branchafvt[DS] .long .vp_branchafvt[PR] .long 0 .long 0 #------------------------------------------------------------------------------# # Main Routine... # #------------------------------------------------------------------------------# .globl .vp_branchafvt[PR] vp_branchafvt: .csect .vp_branchafvt[PR] #------------------------------------------------------------------------------# # End Prolog # #------------------------------------------------------------------------------# ##################### # # # CODE START # # # ##################### #@& Branch conditional - less than =========================================== BLT: lwz 5,labelc(3) # Load less than CR bit setting into r5 mtcrf 0x80,5 # Set CR0 field with r5 contents bcla 0xc,lt,BLT1 # Test branch if less than (should branch) bla fail # Did not work BLT1: addi 4,4,0x0001 # Worked - increment branch taken count lwz 5,labele(3) # Turn off less than CR0 bit mtcrf 0x80,5 # Set CR0 field with r5 contents bcla 0xc,lt,fail # Test branch if less than (should not branch) addi 4,4,0x0001 # Worked - increment branch taken count b pass fail: nop pass: # .org $+220 bla .vp_branchafvt[PR] # NEXT_CODE(compfvt) .globl .vp_branchafvt_data[RW] .csect .vp_branchafvt_data[RW] labela: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000 labelb: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000 labelc: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000 .align 4 labeld: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000 labele: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000 labelf: .long 0x00000000, 0x00000000, 0x00000000, 0x000000000