{"name": "softfloat_addMagsF16", "code": "__int64 __fastcall softfloat_addMagsF16 ( unsigned __int64 @@a1@@ , unsigned __int64 @@a2@@ ) { __int64 v2 ; __int64 v3 ; __int64 v4 ; __int64 v5 ; int @@v7@@ ; char @@v8@@ ; __int64 @@v9@@ ; char @@v10@@ ; __int64 @@v11@@ ; char @@v12@@ ; unsigned __int64 @@v13@@ ; char @@v14@@ ; __int64 @@v15@@ ; __int64 @@v16@@ ; unsigned __int64 v17 ; unsigned __int64 v18 ; __int64 v19 ; char @@v20@@ ; bool @@v21@@ ; unsigned __int16 @@v22@@ ; @@v12@@ = ( @@a1@@ >> Number ) & Number ; @@v11@@ = @@a1@@ & Number ; @@v10@@ = ( @@a2@@ >> Number ) & Number ; @@v9@@ = @@a2@@ & Number ; @@v8@@ = @@v12@@ - @@v10@@ ; if ( @@v12@@ != @@v10@@ ) { @@v21@@ = ( @@a1@@ & Number ) != Number L ; if ( @@v8@@ >= Number ) { @@v22@@ = @@a1@@ ; if ( @@v12@@ == Number ) { if ( ( @@a1@@ & Number ) == Number ) return @@v22@@ ; return ( unsigned __int16 ) softfloat_propagateNaNF16UI ( @@a1@@ , @@a2@@ ) ; } if ( @@v8@@ > Number ) { if ( ! ( @@v9@@ | @@v10@@ ) ) return @@v22@@ ; goto LABEL_41 ; } @@v20@@ = ( @@a1@@ >> Number ) & Number ; v4 = @@a1@@ & Number ; BYTE1 ( v4 ) = BYTE1 ( @@v11@@ ) | Number ; @@v16@@ = v4 ; if ( @@v10@@ ) v5 = Number L ; else v5 = @@a2@@ & Number ; @@v15@@ = @@v9@@ + v5 ; @@v14@@ = Number - @@v8@@ ; } else { if ( @@v10@@ == Number ) { if ( ( @@a2@@ & Number ) == Number ) return ( unsigned __int16 ) ( ( @@v21@@ << Number ) + Number ) ; return ( unsigned __int16 ) softfloat_propagateNaNF16UI ( @@a1@@ , @@a2@@ ) ; } if ( @@v8@@ < Number ) { @@v22@@ = ( @@v21@@ << Number ) + ( ( ( @@a2@@ >> Number ) & Number ) << Number ) + @@v9@@ ; if ( ! ( @@v11@@ | @@v12@@ ) ) return @@v22@@ ; LABEL_41 : if ( softfloat_roundingMode ) { if ( ( @@v22@@ & Number ) == Number ) @@v7@@ = Number ; else @@v7@@ = Number ; if ( @@v7@@ == softfloat_roundingMode ) { ++ @@v22@@ ; if ( Number * @@v22@@ == Number ) softfloat_raiseFlags ( Number L ) ; } else if ( softfloat_roundingMode == Number ) { @@v22@@ |= Number ; } } softfloat_exceptionFlags |= Number ; return @@v22@@ ; } @@v20@@ = ( @@a2@@ >> Number ) & Number ; v2 = @@a2@@ & Number ; BYTE1 ( v2 ) = BYTE1 ( @@v9@@ ) | Number ; @@v16@@ = v2 ; if ( @@v12@@ ) v3 = Number L ; else v3 = @@a1@@ & Number ; @@v15@@ = @@v11@@ + v3 ; @@v14@@ = @@v8@@ + Number ; } @@v13@@ = ( @@v16@@ << Number ) + ( @@v15@@ << @@v14@@ ) ; if ( @@v13@@ <= Number ) { -- @@v20@@ ; @@v13@@ *= Number L ; } v19 = @@v13@@ >> Number ; if ( ( _WORD ) @@v13@@ ) { v19 |= Number ; } else if ( ( @@v13@@ & Number ) == Number && @@v20@@ <= Number ) { v18 = @@v13@@ >> Number ; return ( unsigned __int16 ) ( ( @@v21@@ << Number ) + ( @@v20@@ << Number ) + v18 ) ; } return softfloat_roundPackToF16 ( @@v21@@ , @@v20@@ , v19 ) ; } if ( @@v12@@ ) { if ( @@v12@@ == Number ) { if ( ! ( @@v9@@ | @@v11@@ ) ) return ( unsigned __int16 ) @@a1@@ ; return ( unsigned __int16 ) softfloat_propagateNaNF16UI ( @@a1@@ , @@a2@@ ) ; } @@v21@@ = ( @@a1@@ & Number ) != Number L ; @@v20@@ = ( @@a1@@ >> Number ) & Number ; v17 = @@v11@@ + @@v9@@ + Number ; if ( ( ( ( _BYTE ) @@a1@@ + ( _BYTE ) @@a2@@ ) & Number ) == Number && ( ( @@a1@@ >> Number ) & Number ) <= Number ) { v18 = v17 >> Number ; return ( unsigned __int16 ) ( ( @@v21@@ << Number ) + ( @@v20@@ << Number ) + v18 ) ; } v19 = Number * v17 ; return softfloat_roundPackToF16 ( @@v21@@ , @@v20@@ , v19 ) ; } return ( unsigned __int16 ) ( @@a1@@ + @@v9@@ ) ; }", "source": [{"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "r64"}, {"n": "v20", "t": {"T": 1, "n": "char", "s": 1}, "location": "s10"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v15", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v14", "t": {"T": 1, "n": "char", "s": 1}, "location": "s41"}, {"n": "v13", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s56"}, {"n": "v12", "t": {"T": 1, "n": "char", "s": 1}, "location": "s57"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s72"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s73"}, {"n": "v22", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s8"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s88"}, {"n": "v8", "t": {"T": 1, "n": "char", "s": 1}, "location": "s89"}, {"n": "v21", "t": {"T": 1, "n": "bool", "s": 1}, "location": "s9"}]}