rbdc 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/dyncall/CMakeLists.txt +3 -3
  3. data/dyncall/ChangeLog +33 -0
  4. data/dyncall/ChangeLog.orig +274 -0
  5. data/dyncall/LICENSE +1 -1
  6. data/dyncall/README +3 -5
  7. data/dyncall/ToDo +27 -18
  8. data/dyncall/ToDo.orig +201 -0
  9. data/dyncall/autovar/autovar_ARCH.h +1 -1
  10. data/dyncall/buildsys/vs2005/vs2005.sln +0 -9
  11. data/dyncall/cconv.lang +36 -0
  12. data/dyncall/configure +17 -9
  13. data/dyncall/configure.bat +1 -1
  14. data/dyncall/dyncall/dyncall.h +2 -1
  15. data/dyncall/dyncall/dyncall_call.S +9 -1
  16. data/dyncall/dyncall/dyncall_call_mips_n32.S +192 -0
  17. data/dyncall/dyncall/dyncall_call_mips_n64.S +197 -0
  18. data/dyncall/dyncall/dyncall_call_mips_n64.h +2 -0
  19. data/dyncall/dyncall/{dyncall_call_mips_o32_gas.s → dyncall_call_mips_o32.S} +44 -42
  20. data/dyncall/dyncall/dyncall_call_mips_o32.h +8 -3
  21. data/dyncall/dyncall/dyncall_call_ppc32.S +3 -1
  22. data/dyncall/dyncall/dyncall_call_ppc32.h +4 -3
  23. data/dyncall/dyncall/dyncall_call_ppc64.S +1 -1
  24. data/dyncall/dyncall/dyncall_call_ppc64.h +3 -0
  25. data/dyncall/dyncall/dyncall_call_x64.S +27 -2
  26. data/dyncall/dyncall/dyncall_call_x64.h +2 -1
  27. data/dyncall/dyncall/dyncall_call_x64_generic_masm.asm +13 -2
  28. data/dyncall/dyncall/dyncall_call_x86.S +6 -6
  29. data/dyncall/dyncall/dyncall_call_x86.h +7 -7
  30. data/dyncall/dyncall/dyncall_call_x86_generic_masm.asm +6 -7
  31. data/dyncall/dyncall/dyncall_callvm_mips_n64.c +27 -9
  32. data/dyncall/dyncall/dyncall_callvm_mips_o32.c +38 -31
  33. data/dyncall/dyncall/dyncall_callvm_mips_o32.c.orig +247 -0
  34. data/dyncall/dyncall/dyncall_callvm_x64.c +57 -3
  35. data/dyncall/dyncall/dyncall_callvm_x86.c +32 -32
  36. data/dyncall/dyncall/dyncall_macros.h +11 -8
  37. data/dyncall/dyncall/dyncall_struct.c +12 -6
  38. data/dyncall/dyncall/dyncall_struct.h +1 -1
  39. data/dyncall/dyncall/dyncall_vector.c +13 -12
  40. data/dyncall/dyncall/dyncall_vector.c.orig +53 -0
  41. data/dyncall/dyncall/gen-masm.sh +4 -5
  42. data/dyncall/dyncallback/dyncall_args_mips.h +24 -6
  43. data/dyncall/dyncallback/dyncall_args_mips64.c +3 -3
  44. data/dyncall/dyncallback/dyncall_args_mips_o32.c +19 -6
  45. data/dyncall/dyncallback/dyncall_callback_arch.S +11 -1
  46. data/dyncall/dyncallback/{dyncall_callback_mips_n32_gas.s → dyncall_callback_mips_n32.S} +1 -1
  47. data/dyncall/dyncallback/{dyncall_callback_mips_n64_gas.s → dyncall_callback_mips_n64.S} +39 -25
  48. data/dyncall/dyncallback/{dyncall_callback_mips_o32_gas.s → dyncall_callback_mips_o32.S} +29 -13
  49. data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +0 -1
  50. data/dyncall/dyncallback/dyncall_thunk.h +1 -1
  51. data/dyncall/dyncallback/gen-masm.sh +3 -5
  52. data/dyncall/dynload/dynload.3 +16 -4
  53. data/dyncall/dynload/dynload_unix.c +101 -53
  54. data/dyncall/dynload/dynload_windows.c +76 -3
  55. data/dyncall/portasm/README.txt +1 -1
  56. data/dyncall/portasm/gen-masm.sh +5 -1
  57. metadata +14 -13
  58. data/dyncall/buildsys/vs2005/test_plain/test_plain.vcproj +0 -202
  59. data/dyncall/dyncall/dyncall_call_mips_gas.S +0 -37
  60. data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +0 -192
  61. data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +0 -192
  62. data/dyncall/dyncallback/dyncall_callback_mips_gas.S +0 -38
@@ -1,192 +0,0 @@
1
- /*
2
-
3
- Package: dyncall
4
- Library: dyncall
5
- File: dyncall/dyncall_call_mips_n32_gas.s
6
- Description: mips64 "n32" abi call kernel implementation in GNU Assembler
7
- License:
8
-
9
- Copyright (c) 2007-2016 Daniel Adler <dadler@uni-goettingen.de>,
10
- Tassilo Philipp <tphilipp@potion-studios.com>
11
-
12
- Permission to use, copy, modify, and distribute this software for any
13
- purpose with or without fee is hereby granted, provided that the above
14
- copyright notice and this permission notice appear in all copies.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
-
24
- */
25
-
26
- .section .mdebug.abiN32
27
- .previous
28
- .abicalls
29
- .text
30
- .align 2
31
- .globl dcCall_mips_n32
32
- .ent dcCall_mips_n32
33
- dcCall_mips_n32:
34
-
35
- /* Stack-frame prolog */
36
-
37
- .frame $fp,64,$31 /* vars=16, regs=3/0, args=0, extra=16 */
38
- .mask 0xd0000000,-8
39
- .fmask 0x00000000,0
40
- subu $sp,$sp,64
41
- sd $31,48($sp) /* save return address register (ra) */
42
- sd $30,40($sp) /* save frame pointer register (fp) */
43
- sd $28,32($sp) /* save global pointer register (gp) */
44
- move $fp,$sp
45
-
46
-
47
- /* arguments: */
48
-
49
- /* $4 target function */
50
- /* $5 register data */
51
- /* $6 stack size */
52
- /* $7 stack data */
53
-
54
-
55
- /* allocate argument stack space */
56
-
57
- subu $sp, $sp, $6
58
-
59
- /* copy stack data */
60
-
61
- /* n64 abi call assumptions:
62
- - stack data is 16-byte aligned.
63
- - no extra-storage for arguments passed via registers.
64
- */
65
-
66
- /* $12 source pointer (parameter stack data) */
67
- /* $14 destination (stack pointer) */
68
- /* $6 byte count */
69
-
70
- move $12, $7
71
- move $14, $sp
72
-
73
- .next:
74
- beq $6, $0, .skip
75
- nop
76
- daddiu $6, $6, -8
77
- ld $2, 0($12)
78
- sd $2, 0($14)
79
- daddiu $12,$12, 8
80
- daddiu $14,$14, 8
81
- b .next
82
- .skip:
83
- move $25, $4
84
-
85
- /* load registers */
86
-
87
- /* locals: */
88
- /* $13 = register data */
89
- /* $14 = useDouble flags */
90
- move $13, $5
91
- ld $14, 128($13)
92
-
93
- /* load integer parameter registers */
94
-
95
- ld $4 , 0($13)
96
- ld $5 , 8($13)
97
- ld $6 ,16($13)
98
- ld $7 ,24($13)
99
- ld $8 ,32($13)
100
- ld $9 ,40($13)
101
- ld $10,48($13)
102
- ld $11,56($13)
103
-
104
- /* load float-or-double floating pointer parameter registers
105
- a 64-bit bitmask given at byte offset 128 of regdata indicates
106
- if loading a float (bit cleared) or double (bit set), starting
107
- at bit position 0 in bitmask.
108
- */
109
- .t0:
110
- and $15, $14, 1
111
- bgtz $15, .d0
112
- .f0:
113
- l.s $f12, 64($13)
114
- j .t1
115
- .d0:
116
- l.d $f12, 64($13)
117
-
118
- .t1:
119
- and $15, $14, 2
120
- bgtz $15, .d1
121
- .f1:
122
- l.s $f13, 72($13)
123
- j .t2
124
- .d1:
125
- l.d $f13, 72($13)
126
- .t2:
127
- and $15, $14, 4
128
- bgtz $15, .d2
129
- .f2:
130
- l.s $f14, 80($13)
131
- j .t3
132
- .d2:
133
- l.d $f14, 80($13)
134
- .t3:
135
- and $15, $14, 8
136
- bgtz $15, .d3
137
- .f3:
138
- l.s $f15, 88($13)
139
- j .t4
140
- .d3:
141
- l.d $f15, 88($13)
142
- .t4:
143
- and $15, $14, 16
144
- bgtz $15, .d4
145
- .f4:
146
- l.s $f16, 96($13)
147
- j .t5
148
- .d4:
149
- l.d $f16, 96($13)
150
- .t5:
151
- and $15, $14, 32
152
- bgtz $15, .d5
153
- .f5:
154
- l.s $f17,104($13)
155
- j .t6
156
- .d5:
157
- l.d $f17,104($13)
158
- .t6:
159
- and $15, $14, 64
160
- bgtz $15, .d6
161
- .f6:
162
- l.s $f18,112($13)
163
- j .t7
164
- .d6:
165
- l.d $f18,112($13)
166
- .t7:
167
- and $15, $14, 128
168
- bgtz $15, .d7
169
- .f7:
170
- l.s $f19,120($13)
171
- j .fregend
172
- .d7:
173
- l.d $f19,120($13)
174
-
175
- .fregend:
176
-
177
- /* jump-and-link to register $25 */
178
-
179
- jal $31, $25
180
- nop /* branch-delay slot - no nop according to gcc assembly */
181
- /* output, but let's play safe */
182
-
183
- /* Stack-frame epilog */
184
- move $sp,$fp
185
- ld $31,48($sp) /* restore ra register */
186
- ld $fp,40($sp) /* restore fp register */
187
- ld $28,32($sp) /* restore gp register */
188
- daddu $sp,$sp,64
189
- j $31
190
- .end dcCall_mips_n64
191
- .size dcCall_mips_n64, .-dcCall_mips_n64
192
-
@@ -1,192 +0,0 @@
1
- /*
2
-
3
- Package: dyncall
4
- Library: dyncall
5
- File: dyncall/dyncall_call_mips_n64_gas.s
6
- Description: mips "n64" abi call kernel implementation in GNU Assembler
7
- License:
8
-
9
- Copyright (c) 2007-2011 Daniel Adler <dadler@uni-goettingen.de>,
10
- Tassilo Philipp <tphilipp@potion-studios.com>
11
-
12
- Permission to use, copy, modify, and distribute this software for any
13
- purpose with or without fee is hereby granted, provided that the above
14
- copyright notice and this permission notice appear in all copies.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
-
24
- */
25
-
26
- .section .mdebug.abi64
27
- .previous
28
- .abicalls
29
- .text
30
- .align 2
31
- .globl dcCall_mips_n64
32
- .ent dcCall_mips_n64
33
- dcCall_mips_n64:
34
-
35
- /* Stack-frame prolog */
36
-
37
- # .frame $fp,64,$31 /* vars=16, regs=3/0, args=0, extra=16 */
38
- # .mask 0xd0000000,-8
39
- # .fmask 0x00000000,0
40
- dsubu $sp,$sp,64
41
- sd $31,48($sp) /* save return address register (ra) */
42
- sd $30,40($sp) /* save frame pointer register (fp) */
43
- sd $28,32($sp) /* save global pointer register (gp) */
44
- move $fp,$sp
45
-
46
-
47
- /* arguments: */
48
-
49
- /* $4 target function */
50
- /* $5 register data */
51
- /* $6 stack size */
52
- /* $7 stack data */
53
-
54
-
55
- /* allocate argument stack space */
56
-
57
- dsubu $sp, $sp, $6
58
-
59
- /* copy stack data */
60
-
61
- /* n64 abi call assumptions:
62
- - stack data is 16-byte aligned.
63
- - no extra-storage for arguments passed via registers.
64
- */
65
-
66
- /* $12 source pointer (parameter stack data) */
67
- /* $14 destination (stack pointer) */
68
- /* $6 byte count */
69
-
70
- move $12, $7
71
- move $14, $sp
72
-
73
- .next:
74
- beq $6, $0, .skip
75
- # nop
76
- daddiu $6, $6, -8
77
- ld $2, 0($12)
78
- sd $2, 0($14)
79
- daddiu $12,$12, 8
80
- daddiu $14,$14, 8
81
- b .next
82
- .skip:
83
- move $25, $4
84
-
85
- /* load registers */
86
-
87
- /* locals: */
88
- /* $13 = register data */
89
- /* $14 = useDouble flags */
90
- move $13, $5
91
- ld $14, 128($13)
92
-
93
- /* load integer parameter registers */
94
-
95
- ld $4 , 0($13)
96
- ld $5 , 8($13)
97
- ld $6 ,16($13)
98
- ld $7 ,24($13)
99
- ld $8 ,32($13)
100
- ld $9 ,40($13)
101
- ld $10,48($13)
102
- ld $11,56($13)
103
-
104
- /* load float-or-double floating pointer parameter registers
105
- a 64-bit bitmask given at byte offset 128 of regdata indicates
106
- if loading a float (bit cleared) or double (bit set), starting
107
- at bit position 0 in bitmask.
108
- */
109
- .t0:
110
- and $15, $14, 1
111
- bgtz $15, .d0
112
- .f0:
113
- l.s $f12, 64($13)
114
- j .t1
115
- .d0:
116
- l.d $f12, 64($13)
117
-
118
- .t1:
119
- and $15, $14, 2
120
- bgtz $15, .d1
121
- .f1:
122
- l.s $f13, 72($13)
123
- j .t2
124
- .d1:
125
- l.d $f13, 72($13)
126
- .t2:
127
- and $15, $14, 4
128
- bgtz $15, .d2
129
- .f2:
130
- l.s $f14, 80($13)
131
- j .t3
132
- .d2:
133
- l.d $f14, 80($13)
134
- .t3:
135
- and $15, $14, 8
136
- bgtz $15, .d3
137
- .f3:
138
- l.s $f15, 88($13)
139
- j .t4
140
- .d3:
141
- l.d $f15, 88($13)
142
- .t4:
143
- and $15, $14, 16
144
- bgtz $15, .d4
145
- .f4:
146
- l.s $f16, 96($13)
147
- j .t5
148
- .d4:
149
- l.d $f16, 96($13)
150
- .t5:
151
- and $15, $14, 32
152
- bgtz $15, .d5
153
- .f5:
154
- l.s $f17,104($13)
155
- j .t6
156
- .d5:
157
- l.d $f17,104($13)
158
- .t6:
159
- and $15, $14, 64
160
- bgtz $15, .d6
161
- .f6:
162
- l.s $f18,112($13)
163
- j .t7
164
- .d6:
165
- l.d $f18,112($13)
166
- .t7:
167
- and $15, $14, 128
168
- bgtz $15, .d7
169
- .f7:
170
- l.s $f19,120($13)
171
- j .fregend
172
- .d7:
173
- l.d $f19,120($13)
174
-
175
- .fregend:
176
-
177
- /* jump-and-link to register $25 */
178
-
179
- jal $31, $25
180
- nop /* branch-delay slot - no nop according to gcc assembly */
181
- /* output, but let's play safe */
182
-
183
- /* Stack-frame epilog */
184
- move $sp,$fp
185
- ld $ra,48($sp) /* restore ra register */
186
- ld $fp,40($sp) /* restore fp register */
187
- ld $gp,32($sp) /* restore gp register */
188
- daddu $sp,$sp,64
189
- j $ra
190
- .end dcCall_mips_n64
191
- .size dcCall_mips_n64, .-dcCall_mips_n64
192
-
@@ -1,38 +0,0 @@
1
- /*
2
-
3
- Package: dyncall
4
- Library: dyncallback
5
- File: dyncallback/dyncall_callback_mips_gas.S
6
- Description: auto-select (via C preprocessor) mips abi callback implementation
7
- License:
8
-
9
- Copyright (c) 2016-2018 Tassilo Philipp <tphilipp@potion-studios.com>
10
-
11
- Permission to use, copy, modify, and distribute this software for any
12
- purpose with or without fee is hereby granted, provided that the above
13
- copyright notice and this permission notice appear in all copies.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
16
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
18
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
21
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22
-
23
- */
24
-
25
-
26
-
27
- #if defined(DC__ABI_MIPS_EABI)
28
- # include "dyncall_callback_mips_eabi_gas.s"
29
- #elif defined(DC__ABI_MIPS_O32)
30
- # include "dyncall_callback_mips_o32_gas.s"
31
- #elif defined(DC__ABI_MIPS_N64)
32
- # include "dyncall_callback_mips_n64_gas.s"
33
- #elif defined(DC__ABI_MIPS_N32)
34
- # include "dyncall_callback_mips_n32_gas.s"
35
- #else
36
- # error Unknown MIPS ABI.
37
- #endif
38
-