diff options
Diffstat (limited to 'src/runtime/softfloat_arm.go')
| -rw-r--r-- | src/runtime/softfloat_arm.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/runtime/softfloat_arm.go b/src/runtime/softfloat_arm.go index 802a151fbf..3cbb4b3fc0 100644 --- a/src/runtime/softfloat_arm.go +++ b/src/runtime/softfloat_arm.go @@ -446,6 +446,23 @@ execute: } return 1 + case 0xeeb10b40: // D[regd] = neg D[regm] + m.freglo[regd] = m.freglo[regm] + m.freghi[regd] = m.freghi[regm] ^ 1<<31 + + if fptrace > 0 { + print("*** D[", regd, "] = neg D[", regm, "] ", hex(m.freghi[regd]), "-", hex(m.freglo[regd]), "\n") + } + return 1 + + case 0xeeb10a40: // F[regd] = neg F[regm] + m.freglo[regd] = m.freglo[regm] ^ 1<<31 + + if fptrace > 0 { + print("*** F[", regd, "] = neg F[", regm, "] ", hex(m.freglo[regd]), "\n") + } + return 1 + case 0xeeb40bc0: // D[regd] :: D[regm] (CMPD) cmp, nan := fcmp64(fgetd(regd), fgetd(regm)) m.fflag = fstatus(nan, cmp) |
