13b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee%default {} 23b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee /*: 33b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee * Generic 32-bit floating-point operation. 43b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee * 53b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee * For: add-float, sub-float, mul-float, div-float 63b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee * form: <op> s0, s0, s1 73b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee */ 83b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee /* floatop vAA, vBB, vCC */ 93b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee FETCH w0, 1 // r0<- CCBB 103b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee lsr w1, w0, #8 // r2<- CC 113b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee and w0, w0, #255 // r1<- BB 123b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee GET_VREG s1, w1 133b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee GET_VREG s0, w0 143b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee $instr // s0<- op 153b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee lsr w1, wINST, #8 // r1<- AA 163b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee FETCH_ADVANCE_INST 2 // advance rPC, load rINST 173b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee GET_INST_OPCODE ip // extract opcode from rINST 183b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee SET_VREG s0, w1 193b0b4b9d09baae7234fc26b7970b3ec55560735eBill Buzbee GOTO_OPCODE ip // jump to next instruction 20