summaryrefslogtreecommitdiff
path: root/Source/TestSuite/ASM/source/asm_integer.cpp
diff options
context:
space:
mode:
authorSonicadvance1 <sonicadvance1@gmail.com>2010-03-29 09:26:19 +0000
committerSonicadvance1 <sonicadvance1@gmail.com>2010-03-29 09:26:19 +0000
commit85a1b2af455157e38a40faa427909f950e9d41d2 (patch)
treeab8b482a6330f79d362d74e929f49565cc4d7daf /Source/TestSuite/ASM/source/asm_integer.cpp
parenta8865d21b32f50b45f48cd1f8e4d1cafc5486585 (diff)
This should largely go unnoticed
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5251 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/TestSuite/ASM/source/asm_integer.cpp')
-rw-r--r--Source/TestSuite/ASM/source/asm_integer.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/Source/TestSuite/ASM/source/asm_integer.cpp b/Source/TestSuite/ASM/source/asm_integer.cpp
new file mode 100644
index 0000000000..2f7891c40b
--- /dev/null
+++ b/Source/TestSuite/ASM/source/asm_integer.cpp
@@ -0,0 +1,55 @@
+#include "asm_tables.h"
+#include "Defines.h"
+void subfc(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "subfc %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ );
+}
+void subfcRC(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "subfc. %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ : "cc"
+ );
+}
+
+void divw(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "divw %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ );
+}
+void divwRC(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "divw. %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ : "cc"
+ );
+}
+
+void divwo(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "divwo %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ );
+}
+void divwoRC(u32 *a, u32 *b, u32 *c, u32 *d)
+{
+ asm(
+ "divwo. %0,%1,%2"
+ : "=r"(*a)
+ : "r"(*b), "r"(*c)
+ : "cc"
+ );
+} \ No newline at end of file