diff options
author | Mike Pall <mike> | 2023-09-09 20:52:02 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2023-09-09 20:52:02 +0200 |
commit | ba2b34f5e82baec5f925fa89b7bf4f88ae376da9 (patch) | |
tree | a4898e3e1b8f83505f381b53b096fc0f82594595 /src/jit | |
parent | f442432ecb09d9326b769f1f1d4a43689f27a9e1 (diff) | |
download | luajit-ba2b34f5e82baec5f925fa89b7bf4f88ae376da9.tar.gz luajit-ba2b34f5e82baec5f925fa89b7bf4f88ae376da9.tar.bz2 luajit-ba2b34f5e82baec5f925fa89b7bf4f88ae376da9.zip |
ARM64: Disassemble rotates on logical operands.
Thanks to Peter Cawley. #1076
Diffstat (limited to 'src/jit')
-rw-r--r-- | src/jit/dis_arm64.lua | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/src/jit/dis_arm64.lua b/src/jit/dis_arm64.lua index b10e2fb1..3d199bf2 100644 --- a/src/jit/dis_arm64.lua +++ b/src/jit/dis_arm64.lua | |||
@@ -107,24 +107,20 @@ local map_logsr = { -- Logical, shifted register. | |||
107 | [0] = { | 107 | [0] = { |
108 | shift = 29, mask = 3, | 108 | shift = 29, mask = 3, |
109 | [0] = { | 109 | [0] = { |
110 | shift = 21, mask = 7, | 110 | shift = 21, mask = 1, |
111 | [0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", | 111 | [0] = "andDNMSg", "bicDNMSg" |
112 | "andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg" | ||
113 | }, | 112 | }, |
114 | { | 113 | { |
115 | shift = 21, mask = 7, | 114 | shift = 21, mask = 1, |
116 | [0] ="orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", | 115 | [0] = "orr|movDN0MSg", "orn|mvnDN0MSg" |
117 | "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg" | ||
118 | }, | 116 | }, |
119 | { | 117 | { |
120 | shift = 21, mask = 7, | 118 | shift = 21, mask = 1, |
121 | [0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", | 119 | [0] = "eorDNMSg", "eonDNMSg" |
122 | "eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg" | ||
123 | }, | 120 | }, |
124 | { | 121 | { |
125 | shift = 21, mask = 7, | 122 | shift = 21, mask = 1, |
126 | [0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", | 123 | [0] = "ands|tstD0NMSg", "bicsDNMSg" |
127 | "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg" | ||
128 | } | 124 | } |
129 | }, | 125 | }, |
130 | false -- unallocated | 126 | false -- unallocated |
@@ -132,24 +128,20 @@ local map_logsr = { -- Logical, shifted register. | |||
132 | { | 128 | { |
133 | shift = 29, mask = 3, | 129 | shift = 29, mask = 3, |
134 | [0] = { | 130 | [0] = { |
135 | shift = 21, mask = 7, | 131 | shift = 21, mask = 1, |
136 | [0] = "andDNMSg", "bicDNMSg", "andDNMSg", "bicDNMSg", | 132 | [0] = "andDNMSg", "bicDNMSg" |
137 | "andDNMSg", "bicDNMSg", "andDNMg", "bicDNMg" | ||
138 | }, | 133 | }, |
139 | { | 134 | { |
140 | shift = 21, mask = 7, | 135 | shift = 21, mask = 1, |
141 | [0] = "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0MSg", "orn|mvnDN0MSg", | 136 | [0] = "orr|movDN0MSg", "orn|mvnDN0MSg" |
142 | "orr|movDN0MSg", "orn|mvnDN0MSg", "orr|movDN0Mg", "orn|mvnDN0Mg" | ||
143 | }, | 137 | }, |
144 | { | 138 | { |
145 | shift = 21, mask = 7, | 139 | shift = 21, mask = 1, |
146 | [0] = "eorDNMSg", "eonDNMSg", "eorDNMSg", "eonDNMSg", | 140 | [0] = "eorDNMSg", "eonDNMSg" |
147 | "eorDNMSg", "eonDNMSg", "eorDNMg", "eonDNMg" | ||
148 | }, | 141 | }, |
149 | { | 142 | { |
150 | shift = 21, mask = 7, | 143 | shift = 21, mask = 1, |
151 | [0] = "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMSg", "bicsDNMSg", | 144 | [0] = "ands|tstD0NMSg", "bicsDNMSg" |
152 | "ands|tstD0NMSg", "bicsDNMSg", "ands|tstD0NMg", "bicsDNMg" | ||
153 | } | 145 | } |
154 | } | 146 | } |
155 | } | 147 | } |
@@ -735,7 +727,7 @@ local map_cond = { | |||
735 | "hi", "ls", "ge", "lt", "gt", "le", "al", | 727 | "hi", "ls", "ge", "lt", "gt", "le", "al", |
736 | } | 728 | } |
737 | 729 | ||
738 | local map_shift = { [0] = "lsl", "lsr", "asr", } | 730 | local map_shift = { [0] = "lsl", "lsr", "asr", "ror"} |
739 | 731 | ||
740 | local map_extend = { | 732 | local map_extend = { |
741 | [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", | 733 | [0] = "uxtb", "uxth", "uxtw", "uxtx", "sxtb", "sxth", "sxtw", "sxtx", |