Commit Graph

59973 Commits

Author SHA1 Message Date
nickysn
936df34f5e + added wasm regdat regeneration to the compiler makefile
git-svn-id: branches/wasm@46205 -
2020-08-03 19:14:03 +00:00
yury
0000682043 * i8086: When a ref points to the 32-bit data, preload the ref base to a temp register to reduce spilling.
git-svn-id: trunk@46204 -
2020-08-03 18:52:17 +00:00
yury
ddea929923 * For 8 and 16 bit CPUs preload the ref base and index to a separate temp register in the generic implementation of a_load64_reg_ref() and a_load64_ref_reg().
This reduces spilling and produces a better code.

git-svn-id: trunk@46203 -
2020-08-03 18:45:38 +00:00
nickysn
08af87cde2 + also build wasmtool
git-svn-id: branches/wasm@46202 -
2020-08-03 17:25:42 +00:00
nickysn
63ecdcffd1 * mode objfpc, h+ in wasmlinkchange.pas and wasmtoolutils.pas
git-svn-id: branches/wasm@46201 -
2020-08-03 17:19:12 +00:00
yury
e70c898503 * Removed the i8086 specific hack. Since r46199 the register allocator is able to handle the problem code.
git-svn-id: trunk@46200 -
2020-08-03 16:51:20 +00:00
yury
ff820247c3 * Early during register allocation, spill registers which interfere with all usable real registers.
It is pointless to keep them for further processing. Also it may
  cause endless spilling.
  This can happen when compiling for very constrained CPUs such as
  i8086 where indexed memory access instructions allow only
  few registers as arguments and additionally the calling convention
  provides no general purpose volatile registers.

git-svn-id: trunk@46199 -
2020-08-03 16:46:25 +00:00
nickysn
39e7f9b87f * lazarus application name changed to ppcwasm (was: ppcjvm)
git-svn-id: branches/wasm@46198 -
2020-08-03 16:36:03 +00:00
yury
601e05f17f * Count only usable real registers.
git-svn-id: trunk@46197 -
2020-08-03 16:24:14 +00:00
yury
0daba07246 * Enhanced the debug output of spilling statistics. Now it includes efficiency of the spilling which is based on
weight and usage count of registers. Range 0-100%. Such statistics are very handy when you modify the register allocator.
  

git-svn-id: trunk@46196 -
2020-08-03 16:18:32 +00:00
nickysn
bf8a06f43b + added comment with the WebAssembly define
git-svn-id: branches/wasm@46195 -
2020-08-03 15:57:31 +00:00
nickysn
67d5eba6fc + added wasmbin fpmake files
git-svn-id: branches/wasm@46194 -
2020-08-03 15:40:05 +00:00
nickysn
dbffac46cb * mode objfpc, h+ in wasmnormalize.pas
git-svn-id: branches/wasm@46193 -
2020-08-03 15:35:59 +00:00
nickysn
6b5719879a * mode objfpc, h+ in wasmmodule
git-svn-id: branches/wasm@46192 -
2020-08-03 15:28:26 +00:00
nickysn
8d5ddbf33f * mode objfpc, h+ in wasmlink
git-svn-id: branches/wasm@46191 -
2020-08-03 15:22:57 +00:00
nickysn
05c5e28bca * mode objfpc, h+ in wasmtest.pas
git-svn-id: branches/wasm@46190 -
2020-08-03 15:16:44 +00:00
nickysn
c97a244a3d * mode objfpc, h+ in wasmbincode.pas
git-svn-id: branches/wasm@46189 -
2020-08-03 15:12:54 +00:00
nickysn
7809dde9d5 + added mode objfpc and ansistrings ON directive to unit lebutils
git-svn-id: branches/wasm@46188 -
2020-08-03 15:07:48 +00:00
nickysn
f6a15342c7 + makefile for utils/wasmbin (but no fpmake.pp yet)
git-svn-id: branches/wasm@46187 -
2020-08-03 14:07:25 +00:00
nickysn
0df78c9128 * regenerated makefiles
git-svn-id: branches/wasm@46186 -
2020-08-03 13:49:15 +00:00
nickysn
17057abaf1 * applied the GPL license with Dmitry's permission
git-svn-id: branches/wasm@46185 -
2020-08-03 13:07:03 +00:00
nickysn
34460a9fae [PATCH 188/188] fix offset reference within the code section, when
writing relocation info

From ad32136edcdc2c4df42f5a305358aa01b90755b9 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Mon, 13 Apr 2020 10:13:06 -0400

git-svn-id: branches/wasm@46184 -
2020-08-03 13:02:19 +00:00
nickysn
c2abf3e14b [PATCH 187/188] removing function code reference as unneeded
From edd3628ed9d2302b50ec590dfeb76eb929f5748b Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Mon, 13 Apr 2020 10:11:58 -0400

git-svn-id: branches/wasm@46183 -
2020-08-03 13:02:18 +00:00
nickysn
cd6eed38c1 [PATCH 186/188] removed debug lines
From a2ba033b28c82808f5c0074d6b4d3c62f965417a Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Mon, 13 Apr 2020 09:32:51 -0400

git-svn-id: branches/wasm@46182 -
2020-08-03 13:02:17 +00:00
nickysn
9d235d92bf [PATCH 185/188] changing relocation to use actual wasmmodule objects,
instead of indexes. As the actual symbol index is only known when after
 linking section was written

From 32f96b6a7da19db001b62481e860df5757f0867c Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Mon, 13 Apr 2020 09:32:18 -0400

git-svn-id: branches/wasm@46181 -
2020-08-03 13:02:16 +00:00
nickysn
addfbaf889 [PATCH 184/188] update writing binary import section for entities
other than function update table normalization to hard-code the element type

From 545def919260e7d90ec3b948f242022378607079 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Thu, 9 Apr 2020 14:08:42 -0400

git-svn-id: branches/wasm@46180 -
2020-08-03 13:02:15 +00:00
nickysn
0e4e94dfe2 [PATCH 183/188] wasa relocation to be off by default
From 29bc72b3e6d157b88ea1df59f171b8cd019c3254 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Thu, 9 Apr 2020 13:19:40 -0400

git-svn-id: branches/wasm@46179 -
2020-08-03 13:02:14 +00:00
nickysn
6af6930763 [PATCH 182/188] updating file output to use absolute path
From 538eac2f8d9ba8737d1840b85864a6921204a167 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 15:37:30 -0400

git-svn-id: branches/wasm@46178 -
2020-08-03 13:02:13 +00:00
nickysn
ba7661e6f2 [PATCH 181/188] using assembler parameters
From 351ab862f931830be30643473e2d073092e1de40 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 13:15:49 -0400

git-svn-id: branches/wasm@46177 -
2020-08-03 13:02:12 +00:00
nickysn
dbde36f012 [PATCH 180/188] starting wasa project to be the assembler
From 86e4726f85ee8aad811c9c4b6b6cfe63946a80fb Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 12:56:59 -0400

git-svn-id: branches/wasm@46176 -
2020-08-03 13:02:11 +00:00
nickysn
db6caf4496 [PATCH 179/188] normalizing elements after normalizing functions
From 3b77d251ecf0d52ded887dc2fed593b2ae70db5a Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 12:11:46 -0400

git-svn-id: branches/wasm@46175 -
2020-08-03 13:02:09 +00:00
nickysn
6a08f41442 [PATCH 178/188] update normalization and binary output for the new
table.id

From 3910ff460510bab5f4ec615abdb6d989cc909b04 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 11:59:26 -0400

git-svn-id: branches/wasm@46174 -
2020-08-03 13:02:09 +00:00
nickysn
cdc7401d91 [PATCH 177/188] update parsing of module level elements
From ee529729a987fda74c312a4e49e8246f127920ce Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 11:58:48 -0400

git-svn-id: branches/wasm@46173 -
2020-08-03 13:02:08 +00:00
nickysn
2168969b3f [PATCH 176/188] changing tableNum (int) to tableId (str/int)
From 0f55d00cf556112c36bbd4b84970fc989cd38125 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 11:58:12 -0400

git-svn-id: branches/wasm@46172 -
2020-08-03 13:02:07 +00:00
nickysn
e13fb1fd1b [PATCH 175/188] update normalization of imported units
From b2e45d583af68ff11052b29125b00331ad7a4359 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 10:32:10 -0400

git-svn-id: branches/wasm@46171 -
2020-08-03 13:02:06 +00:00
nickysn
50b84edd27 [PATCH 174/188] update parsing of import entity
From ce1266c4fb4a1c99ca4c8463989cdb7b4baeaacd Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 8 Apr 2020 10:25:27 -0400

git-svn-id: branches/wasm@46170 -
2020-08-03 13:02:05 +00:00
nickysn
b710b84191 [PATCH 173/188] changed from using textual format of operand to
binary

From e855f0b9ce6fe4c156bb48c41d76d588c3caf987 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Thu, 2 Apr 2020 11:45:18 -0400

git-svn-id: branches/wasm@46169 -
2020-08-03 13:02:04 +00:00
nickysn
87958882c3 [PATCH 172/188] text to float. todo: need to rewrite the module and
instruction. Text parsing is not something wasmbinwriter should be doing

From 38408d6de531a76f3b7a29ad0bc96361f57268a2 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 1 Apr 2020 17:15:56 -0400

git-svn-id: branches/wasm@46168 -
2020-08-03 13:02:03 +00:00
nickysn
d881c155b1 [PATCH 171/188] adding float hex format
From b70802cffbdda9ac30dc772ba1be7ea62656880d Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 14:25:54 -0400

git-svn-id: branches/wasm@46167 -
2020-08-03 13:02:01 +00:00
nickysn
4a4a024eb6 [PATCH 170/188] using FPC built int function to do arithmetical
shift-right.

From 888bece97b8bb2ba160638e56ab00f21dccd0a93 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 14:24:47 -0400

git-svn-id: branches/wasm@46166 -
2020-08-03 13:02:00 +00:00
nickysn
771db4114c [PATCH 169/188] removing debugging message
From 18b88ebb982fff52ac6ee63a636e92ddda3ffe3f Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 13:44:56 -0400

git-svn-id: branches/wasm@46165 -
2020-08-03 13:02:00 +00:00
nickysn
a8a0308e48 [PATCH 168/188] update scanning for additional WAT numeric formats
From 7467c8670fbfe4c2793f323a89091ee8a59c0bda Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 13:23:26 -0400

git-svn-id: branches/wasm@46164 -
2020-08-03 13:01:59 +00:00
nickysn
8030e5f439 [PATCH 167/188] binary writing for alignment
From ae1bf5c39b7258fe244391400a65cfd84c1ef12f Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 11:34:02 -0400

git-svn-id: branches/wasm@46163 -
2020-08-03 13:01:58 +00:00
nickysn
41d67dc630 [PATCH 166/188] normalizing memory instructions
From 0a62c804cae96479ec427da585e873acd35adeb9 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 11:33:33 -0400

git-svn-id: branches/wasm@46162 -
2020-08-03 13:01:57 +00:00
nickysn
8f9f2f706f [PATCH 165/188] adding direct properties for align and offset of
memory instructions

From 772f6f796de261f2f4e6bb4a6b52be02d57cfd65 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 11:33:04 -0400

git-svn-id: branches/wasm@46161 -
2020-08-03 13:01:56 +00:00
nickysn
fca7ea87f3 [PATCH 164/188] adding alignment flag for memory instructions
From b8d1c19e855c183ddf9dbfb700a42fabdbcaf636 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 11:32:12 -0400

git-svn-id: branches/wasm@46160 -
2020-08-03 13:01:55 +00:00
nickysn
c7832853af [PATCH 163/188] fix instruction code declaration
From 12f7a76ddf368819d111d8d6333438dabb8dfd1c Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 10:26:00 -0400

git-svn-id: branches/wasm@46159 -
2020-08-03 13:01:54 +00:00
nickysn
b737cc6cbe [PATCH 162/188] always write signed operator for i32
From 1ac59a5f09dfcecfd0a3e25917399716b5326042 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 10:15:06 -0400

git-svn-id: branches/wasm@46158 -
2020-08-03 13:01:53 +00:00
nickysn
34e5a15752 [PATCH 161/188] fix writing local variables
From 0af39269ab1988d36606b5da7d958afce583357c Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 09:54:00 -0400

git-svn-id: branches/wasm@46157 -
2020-08-03 13:01:52 +00:00
nickysn
1631be00c8 [PATCH 160/188] normalizing global variables
From 1fab7f9018a9551ea28489dbcb87bb5b8fd25b2b Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Fri, 27 Mar 2020 09:33:39 -0400

git-svn-id: branches/wasm@46156 -
2020-08-03 13:01:51 +00:00