summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2011-10-16 22:16:45 -0400
committerMatt Turner <mattst88@gmail.com>2011-10-16 22:16:45 -0400
commitbb3c7c26a878f620d09821ff6a8246db41974198 (patch)
tree4c338b2967173cf94a9d549c190ef504ed8b9bb9 /arch
parentRe-add MD5 until handbook is updated. (diff)
downloadcatalyst-bb3c7c26a878f620d09821ff6a8246db41974198.tar.gz
catalyst-bb3c7c26a878f620d09821ff6a8246db41974198.tar.bz2
catalyst-bb3c7c26a878f620d09821ff6a8246db41974198.zip
mips.py: add mips32 softfloat targets
softfloat targets are for producing a userland (ie glibc, gcc) that handles software floating-point emulation in userspace. The alternative is configuring your kernel to emulate floating-point math, which is slower but allows you to use a standard "hard float" userland.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/mips.py b/arch/mips.py
index a0f0fede..ca8e828c 100644
--- a/arch/mips.py
+++ b/arch/mips.py
@@ -42,12 +42,26 @@ class arch_mips32(generic_mips):
generic_mips.__init__(self,myspec)
self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
+class arch_mips32_softfloat(generic_mips):
+ "Builder class for MIPS 32 [Big-endian softfloat]"
+ def __init__(self,myspec):
+ generic_mips.__init__(self,myspec)
+ self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
+ self.settings["CHOST"]="mips-softfloat-linux-gnu"
+
class arch_mips32r2(generic_mips):
"Builder class for MIPS 32r2 [Big-endian]"
def __init__(self,myspec):
generic_mips.__init__(self,myspec)
self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
+class arch_mips32r2_softfloat(generic_mips):
+ "Builder class for MIPS 32r2 [Big-endian softfloat]"
+ def __init__(self,myspec):
+ generic_mips.__init__(self,myspec)
+ self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
+ self.settings["CHOST"]="mips-softfloat-linux-gnu"
+
class arch_mips3(generic_mips):
"Builder class for MIPS III [Big-endian]"
def __init__(self,myspec):
@@ -180,12 +194,26 @@ class arch_mips32el(generic_mipsel):
generic_mipsel.__init__(self,myspec)
self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
+class arch_mips32el_softfloat(generic_mipsel):
+ "Builder class for MIPS 32 [Little-endian softfloat]"
+ def __init__(self,myspec):
+ generic_mipsel.__init__(self,myspec)
+ self.settings["CFLAGS"]="-O2 -march=mips32 -mabi=32 -pipe"
+ self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
+
class arch_mips32r2el(generic_mipsel):
"Builder class for MIPS 32r2 [Little-endian]"
def __init__(self,myspec):
generic_mipsel.__init__(self,myspec)
self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
+class arch_mips32r2el_softfloat(generic_mipsel):
+ "Builder class for MIPS 32r2 [Little-endian softfloat]"
+ def __init__(self,myspec):
+ generic_mipsel.__init__(self,myspec)
+ self.settings["CFLAGS"]="-O2 -march=mips32r2 -mabi=32 -pipe"
+ self.settings["CHOST"]="mipsel-softfloat-linux-gnu"
+
class arch_mipsel3(generic_mipsel):
"Builder class for MIPS III [Little-endian]"
def __init__(self,myspec):
@@ -328,7 +356,9 @@ def register():
"mips" : arch_mips1,
"mips1" : arch_mips1,
"mips32" : arch_mips32,
+ "mips32_softfloat" : arch_mips32_softfloat,
"mips32r2" : arch_mips32r2,
+ "mips32r2_softfloat" : arch_mips32r2_softfloat,
"mips3" : arch_mips3,
"mips3_n32" : arch_mips3_n32,
"mips3_n64" : arch_mips3_n64,
@@ -352,7 +382,9 @@ def register():
"mipsel" : arch_mipsel1,
"mipsel1" : arch_mipsel1,
"mips32el" : arch_mips32el,
+ "mips32el_softfloat" : arch_mips32el_softfloat,
"mips32r2el" : arch_mips32r2el,
+ "mips32r2el_softfloat" : arch_mips32r2el_softfloat,
"mipsel3" : arch_mipsel3,
"mipsel3_n32" : arch_mipsel3_n32,
"mipsel3_n64" : arch_mipsel3_n64,