diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0e9ae33..92c13619 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,23 @@ on: [push, pull_request] # May require a special support for build-only mode in btest jobs: + ubuntu-aarch64-host: + runs-on: ubuntu-24.04-arm + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install Rust + run: rustup toolchain install stable --no-self-update --profile minimal + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install -qq -y clang make + - name: Build Toolchain + run: | + make -B + - name: Run Tests + run: | + ./build/btest -t gas-aarch64-linux ubuntu-linux-windows: runs-on: ubuntu-latest steps: diff --git a/src/codegen/mos6502.rs b/src/codegen/mos6502.rs index 57114c8b..e877e88f 100644 --- a/src/codegen/mos6502.rs +++ b/src/codegen/mos6502.rs @@ -505,10 +505,10 @@ pub unsafe fn parse_addr_or_label(line_begin: *const c_char, mut line: *const c_ asm: *mut Assembler) -> (Address, *const c_char) { while isspace(*line as i32) != 0 {line = line.add(1);} - let (v, mut end) = match *line as u8 { - c if is_identifier_start(c as i8) => { + let (v, mut end) = match *line { + c if is_identifier_start(c) => { let start = line; - while is_identifier(*line as i8) {line = line.add(1);} + while is_identifier(*line) {line = line.add(1);} let len = line as isize - start as isize; let label = arena::sprintf(&mut (*asm).string_arena, c!("%.*s"), len, start); @@ -557,7 +557,7 @@ pub unsafe fn assemble_statement(out: *mut String_Builder, } for i in 0..len { - *name.add(i) = toupper(*name.add(i) as i32) as i8; + *name.add(i) = toupper(*name.add(i) as i32) as c_char; } let instr = match instr_from_string(name) { Some(v) => v,