Commit Graph

2280 Commits

Author SHA1 Message Date
Michael Munday
102d848577 Minor instruction changes. 2017-01-10 11:58:24 -05:00
Michael Munday
d44390a2d3 Use tm{,y} instructions where possible. 2017-01-10 11:44:27 -05:00
Michael Munday
a038a08189 Fix SI (tm) action parsing. 2017-01-10 11:37:25 -05:00
Michael Munday
a8562b7f34 Allow displacements to be used directly without register values.
Allows sllg r1, r1, 3(r0,r0) to be written as sllg r1, r1, 3.
2017-01-10 10:50:41 -05:00
Michael Munday
dae61f59d6 Delete some unused function stubs. 2017-01-09 15:57:37 -05:00
Michael Munday
4c738134df Improve ins_NEXT performance.
Prioritise critical path and reduce number of instructions. About
10% improvement on md5 benchmark.
2017-01-09 14:16:44 -05:00
Michael Munday
99b3668995 Add stub dis_s390x.lua file to allow make install to work. 2017-01-09 11:20:13 -05:00
Michael Munday
bb98985db3 Add partial FFI support.
Interestingly, enough to pass all the FFI tests. So s390x now
passes all the tests in LuaJIT-test-cleanup.
2017-01-06 16:19:56 -05:00
Michael Munday
5dec8c2211 Fix vm_tsetr (needed by table.remove).
The A argument was being loaded as 2-bytes instead of 1.
2017-01-06 13:54:28 -05:00
Michael Munday
ed2d43d73c Fix VARG. 2017-01-06 11:47:56 -05:00
Michael Munday
2e05e7ca67 Implement math.floor/math.ceil. 2017-01-06 11:16:33 -05:00
Michael Munday
443814b6b3 Add more convert to/from fixed instructions to DynASM. 2017-01-06 11:16:04 -05:00
Michael Munday
a3501b062d Various fixes for coroutines.
Now passing the tests.
2017-01-05 23:39:25 -05:00
Michael Munday
d90293f55e Implement coroutines.
TODO: delete LREG, caused problems while implementing this (x64
doesn't have LREG).
2017-01-05 23:39:25 -05:00
Michael Munday
60fb35cb68 Implement rawget. 2017-01-05 23:39:25 -05:00
ketank-new
c08fa1c119 Enabled math.pow ,math.min and math.max 2017-01-06 10:01:36 +05:30
Michael Munday
1b16e7ce3c Fix math.pow.
The second floating point argument is placed into f2, not f1.
Use the macros FARG{1,2} instead of using the registers directly.
2017-01-05 10:52:27 -05:00
ketank-new
3da26860b7 Updated file to display table contents 2017-01-05 14:50:23 +05:30
niravthakkar
206c650689 Updated the memory parsing
The order matters here, so just moved displacement check to end
2017-01-05 14:48:09 +05:30
ketank-new
dcb1dd74ed Added table Manipulation Functions 2017-01-05 14:40:19 +05:30
ketank-new
fe42519c16 Added String processing Functions 2017-01-05 13:53:18 +05:30
Michael Munday
dfb95646f8 Implement call_tail. 2017-01-04 16:05:55 -05:00
Michael Munday
faef0fb092 Fix for __newindex metamethod. 2017-01-04 15:54:21 -05:00
Michael Munday
80191dcab7 Implement cont_cat.
Required to pass cat tests.
2017-01-04 15:34:30 -05:00
Michael Munday
e598c067c3 Fixes for negative string.sub arguments and __index metamethod calls. 2017-01-04 14:50:19 -05:00
Michael Munday
705784a4f9 Implement math.min and math.max.
Replicates the standard Lua behaviour in the presence of NaNs.
2017-01-04 11:48:07 -05:00
niravthakkar
7aae451d93 Reverting the changes, as its breaking the build
The above expression works on CLI, but its failing here, not sure whats going wrong , Please let me know your comments on it
2017-01-04 18:15:57 +05:30
ketank-new
b92584b497 Added test for OS based functions 2017-01-04 17:45:19 +05:30
niravthakkar
1fe2176241 Updated memory parsing
The values of base and index registers have been passed as 0, if only displacement is passed
the displacement is assumed to be alphanumeric (since label might be used)
2017-01-04 17:43:53 +05:30
ketank-new
8b20a0eae2 Added some math function tests 2017-01-04 17:25:13 +05:30
niravthakkar
6bbfa48b93 Updated the memory parsing
It accepts 2 registers, without the displacement
2017-01-04 16:20:56 +05:30
Michael Munday
86e5e57f4c Add emptystr implementation and stub out co-routine functions. 2017-01-03 16:44:36 -05:00
Michael Munday
e739ffedce Implement string.byte and string.char. 2017-01-03 16:36:34 -05:00
Michael Munday
65af21e2ed Implement more math functions.
Everything apart from min/max should now be working.
2017-01-03 16:12:22 -05:00
Michael Munday
8e747c5406 Implement metamethod support.
Allows metamethod tables to be get and set.
2017-01-03 12:17:34 -05:00
ketank-new
47012cea2f Added example for RX-f based instruction mode 2017-01-03 17:08:30 +05:30
niravthakkar
b84dd8e65d Added couple of instructions required by test-case
maeb(RXF) and cegbra(RRF-e)  have been added
2017-01-03 16:16:29 +05:30
niravthakkar
d02e076507 Minor fix, for arguments in shift operations 2017-01-03 15:55:25 +05:30
niravthakkar
dd6ecfa73d Added SIY addressing mode support
Added SIY add mode, and Updated the number of parameters for few of the instructions of RS-a mode
2017-01-03 15:51:23 +05:30
ketank-new
a13e120fd5 Added definition to function 'twice()' 2017-01-02 17:13:05 +05:30
ketank-new
bc065ce2bf Added switch case and while loop test 2017-01-02 17:05:47 +05:30
ketank-new
5dd0c245b7 Updated with ipairs & table based example 2017-01-02 14:29:43 +05:30
ketank-new
700f0e75c1 Updated test.lua withe more tests 2017-01-02 13:56:40 +05:30
ketank-new
703398877b Added test.lua file
file consist of code snippets which execute successfully on luajit v2.1
2017-01-02 11:19:52 +05:30
Michael Munday
39c37a1a1a Remove debug code from tostring. 2016-12-30 16:33:35 -05:00
Michael Munday
4f1c4dc514 Implement pairs (including ISNEXT and ITERN).
Allows use of the pairs iterator, for example:

t = { alpha = 1, beta = 2 }
for k,v in pairs(t)
  print(k, v)
end

-- prints:
-- alpha	1
-- beta	2
2016-12-30 14:51:30 -05:00
Michael Munday
6fbe356507 Implement USETN, USETP and USETS.
Allows constant numbers, primitives (nil, true, false) and strings
to be assigned to upvalues in closures.
2016-12-30 13:33:31 -05:00
Michael Munday
a5d9604419 Implement USETV.
Allows upvalues to be set in closures, for example:

function f(x)
  local y = x
  local j = function(z)
    y = y + z
  end
  for i=1,3 do
    j(i)
    print(y)
  end
end

f(2) -- prints: 3 5 8
2016-12-30 13:00:38 -05:00
Michael Munday
21073df0dc Add FORL implementation (just fallthrough). 2016-12-30 12:27:08 -05:00
Michael Munday
5e7121c625 Implement ipairs.
Allows the use of the ipairs iterator, for example:

t = { "i", "robot" }
for i,v in ipairs(t) do
  print(i, v)
end
-- prints:
-- 1	i
-- 2	robot
2016-12-30 11:40:39 -05:00