aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/softfloat_arm.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2016-06-29 15:20:48 -0400
committerCherry Zhang <cherryyz@google.com>2016-07-20 18:15:37 +0000
commit7b9873b9b9daba332be582cf8a9249b7430311f8 (patch)
tree983800f50dc1b2e963be3dee7fe0f8f70aa89aa8 /src/runtime/softfloat_arm.go
parent4a33af6bb63eaa69a4a2cc0d4f222d37d7531b9c (diff)
downloadgo-7b9873b9b9daba332be582cf8a9249b7430311f8.tar.xz
[dev.ssa] cmd/internal/obj, etc.: add and use NEGF, NEGD instructions on ARM
Updates #15365. Change-Id: I372a5617c2c7d91de545cac0464809b96711b63a Reviewed-on: https://go-review.googlesource.com/24646 Run-TryBot: Cherry Zhang <cherryyz@google.com> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/runtime/softfloat_arm.go')
-rw-r--r--src/runtime/softfloat_arm.go17
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)