Skip to content

Commit 9989a4d

Browse files
committed
add some branch prediction hints
1 parent 6892ac5 commit 9989a4d

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

impl.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
(((rvm_u64)(a) > (rvm_u64)(b)) << RVM_FABBP) | \
2424
(((rvm_i64)(a) > (rvm_i64)(b)) << RVM_FGTBP) );
2525
#define util_checkpc() do { \
26-
if (pc >= codesz) { \
26+
if (RVM_UNLIKELY(pc >= codesz)) { \
2727
inst = RVM_TRAP_EMEMV; \
2828
__RVM_DISPATCH; \
2929
} \
@@ -124,31 +124,31 @@ DEF(xori) {
124124
}
125125

126126
DEF(div) {
127-
if (rgC == 0) {
127+
if (RVM_UNLIKELY(rgC == 0)) {
128128
vmbrk -RVM_EDIVZ;
129129
}
130130
rgA = rgB / rgC;
131131
vmnext;
132132
}
133133

134134
DEF(divi) {
135-
if (imm15u == 0) {
135+
if (RVM_UNLIKELY(imm15u == 0)) {
136136
vmbrk -RVM_EDIVZ;
137137
}
138138
rgA = rgB / imm15u;
139139
vmnext;
140140
}
141141

142142
DEF(mod) {
143-
if (rgC == 0) {
143+
if (RVM_UNLIKELY(rgC == 0)) {
144144
vmbrk -RVM_EDIVZ;
145145
}
146146
rgA = rgB % rgC;
147147
vmnext;
148148
}
149149

150150
DEF(modi) {
151-
if (imm15u == 0) {
151+
if (RVM_UNLIKELY(imm15u == 0)) {
152152
vmbrk -RVM_EDIVZ;
153153
}
154154
rgA = rgB % imm15u;
@@ -166,15 +166,15 @@ DEF(mulsi) {
166166
}
167167

168168
DEF(divs) {
169-
if (rgC == 0) {
169+
if (RVM_UNLIKELY(rgC == 0)) {
170170
vmbrk -RVM_EDIVZ;
171171
}
172172
rgA = (rvm_i64)rgB / (rvm_i64)rgC;
173173
vmnext;
174174
}
175175

176176
DEF(divsi) {
177-
if (imm15u == 0) {
177+
if (RVM_UNLIKELY(imm15u == 0)) {
178178
vmbrk -RVM_EDIVZ;
179179
}
180180
rgA = (rvm_i64)rgB / (rvm_i64)imm15s;
@@ -240,7 +240,7 @@ DEF(jr) {
240240
}
241241

242242
DEF(loop) {
243-
if (rgA != 0) {
243+
if (RVM_LIKELY(rgA != 0)) {
244244
rgA--;
245245
pc += imm19s;
246246
util_checkpc();

0 commit comments

Comments
 (0)