10c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen /* 20c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen * File: OP_SUB_DOUBLE_2ADDR.S 30c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen */ 40c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen 50c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen movzx rINSTbl,%ecx # ecx<- A+ 60c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen andb $$0xf,%cl # ecx<- A 70c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen sarl $$4,rINST # rINST<- B 80c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen # TODO: movsd? 90c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen movq (rFP, rINST, 4), %xmm1 # %xmm1<- vB 100c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen movq (rFP, %ecx, 4), %xmm0 # %xmm0<- vA 110c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen FETCH_INST_OPCODE 1 %eax 120c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen subsd %xmm1, %xmm0 # %xmm0<- vA op vB 130c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen ADVANCE_PC 1 140c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen movq %xmm0, (rFP, %ecx, 4) # vA<- %xmm0; result 150c2dc522d0e120f346cf0a40c8cf0c93346131c2Dong-Yuan Chen GOTO_NEXT_R %eax 16