Fix short-circuit || for small integer types
This commit is contained in:
parent
13a9ba24f2
commit
cb433d87bf
2 changed files with 6 additions and 4 deletions
|
|
@ -1,9 +1,9 @@
|
|||
func g() -> u32:
|
||||
func g() -> u16:
|
||||
return g()
|
||||
|
||||
func h() -> bool:
|
||||
return h()
|
||||
|
||||
func test() -> u32:
|
||||
return (!1u) || g()
|
||||
func test() -> u16:
|
||||
return 65535us || g()
|
||||
|
||||
|
|
|
|||
|
|
@ -480,7 +480,9 @@ namespace pslang::jit::aarch64
|
|||
break;
|
||||
case ast::binary_operation_type::logical_or:
|
||||
{
|
||||
builder.or_not_reg(31, 0, 1);
|
||||
set_m1(1);
|
||||
extend(1, arg1_type);
|
||||
builder.xor_reg(0, 1, 1);
|
||||
std::int32_t start = pcontext.code.size();
|
||||
builder.cbz(1, 0);
|
||||
push(0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue